From 228428dca5db93f504eaf38117c52fd4fb6953af Mon Sep 17 00:00:00 2001 From: Dmytro Stebaiev Date: Thu, 19 Sep 2024 18:48:41 +0300 Subject: [PATCH 01/66] Bump version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index ccbccc3dc..276cbf9e2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.0 +2.3.0 From 5edc2977a7f0eda42601080c71e30d2f8f86082b Mon Sep 17 00:00:00 2001 From: Dmytro Stebaiev Date: Thu, 19 Sep 2024 19:17:36 +0300 Subject: [PATCH 02/66] Remove proxy folder --- proxy/.eslintrc.cjs => .eslintrc.cjs | 0 .eslintrc.js | 69 - .githooks/commit-msg | 10 + .githooks/pre-commit | 17 + .../mainnet.json | 0 proxy/.solcover.js => .solcover.js | 0 proxy/.solhint.json => .solhint.json | 0 proxy/.solhintignore => .solhintignore | 0 proxy/DEPLOYED => DEPLOYED | 0 README.md | 133 +- .../contracts => contracts}/MessageProxy.sol | 0 {proxy/contracts => contracts}/Messages.sol | 0 .../ERC721ReferenceMintAndMetadataMainnet.sol | 0 .../ERC721ReferenceMintAndMetadataSchain.sol | 0 .../interfaces/MessageProxyClient.sol | 0 .../extensions/interfaces/MessageReceiver.sol | 0 .../extensions/interfaces/MessageSender.sol | 0 .../mainnet/CommunityPool.sol | 0 .../mainnet/DepositBox.sol | 0 .../DepositBoxes/DepositBoxERC1155.sol | 0 .../mainnet/DepositBoxes/DepositBoxERC20.sol | 0 .../mainnet/DepositBoxes/DepositBoxERC721.sol | 0 .../DepositBoxERC721WithMetadata.sol | 0 .../mainnet/DepositBoxes/DepositBoxEth.sol | 0 .../mainnet/Linker.sol | 0 .../mainnet/MessageProxyForMainnet.sol | 0 .../mainnet/SkaleManagerClient.sol | 0 .../contracts => contracts}/mainnet/Twin.sol | 0 .../schain/CommunityLocker.sol | 0 .../schain/DefaultAddresses.sol | 0 .../schain/KeyStorage.sol | 0 .../schain/MessageProxyForSchain.sol | 0 .../schain/TokenManager.sol | 0 .../schain/TokenManagerLinker.sol | 0 .../TokenManagers/TokenManagerERC1155.sol | 0 .../TokenManagers/TokenManagerERC20.sol | 0 .../TokenManagers/TokenManagerERC721.sol | 0 .../TokenManagerERC721WithMetadata.sol | 0 .../schain/TokenManagers/TokenManagerEth.sol | 0 .../schain/bls/FieldOperations.sol | 0 .../schain/bls/Precompiled.sol | 0 .../schain/bls/SkaleVerifier.sol | 0 .../schain/tokens/ERC1155OnChain.sol | 0 .../schain/tokens/ERC20OnChain.sol | 0 .../schain/tokens/ERC721OnChain.sol | 0 .../schain/tokens/EthErc20.sol | 0 .../test/ConfigReader.sol | 0 .../test/EtherbaseMock.sol | 0 .../test/FallbackEthTester.sol | 0 .../test/KeyStorageMock.sol | 0 .../contracts => contracts}/test/Logger.sol | 0 .../test/MessageProxyCaller.sol | 0 .../test/MessageProxyForMainnetTester.sol | 0 .../test/MessageProxyForSchainTester.sol | 0 .../MessageProxyForSchainWithoutSignature.sol | 0 .../test/MessagesTester.sol | 0 .../test/PrecompiledMock.sol | 0 .../test/ReceiverGasLimitMainnetMock.sol | 0 .../test/ReceiverGasLimitSchainMock.sol | 0 .../test/ReceiverMock.sol | 0 .../contracts => contracts}/test/SafeMock.sol | 0 .../test/SkaleVerifierMock.sol | 0 .../test/TestCallReceiverContract.sol | 0 .../test/TestContractManager.sol | 0 .../test/TestNodes.sol | 0 .../test/TestSchains.sol | 0 .../test/TestSchainsInternal.sol | 0 .../test/TestWallets.sol | 0 .../test/erc20/ERC20IncorrectTransfer.sol | 0 .../erc20/ERC20TransferWithFalseReturn.sol | 0 .../test/erc20/ERC20TransferWithoutReturn.sol | 0 .../test/erc20/ERC20WithoutTransfer.sol | 0 .../test/erc20/RevertableERC20.sol | 0 .../ERC1155ReceiverUpgradeableWithoutGap.sol | 0 {proxy/data => data}/.keep | 0 {proxy/gas => gas}/calculateGas.ts | 0 proxy/hardhat.config.ts => hardhat.config.ts | 0 .../changeManifest.ts | 0 .../deployMainnet.ts | 0 .../migrations => migrations}/deploySchain.ts | 0 .../deploySkaleManagerComponents.ts | 0 .../generateManifest.ts | 0 .../hotfixUpgrade.ts | 0 .../submitTransactions.ts | 0 .../transferOwnership.ts | 0 .../upgradeMainnet.ts | 0 .../upgradeSchain.ts | 0 package.json | 67 +- {proxy/predeployed => predeployed}/LICENSE | 0 .../predeployed => predeployed}/MANIFEST.in | 0 {proxy/predeployed => predeployed}/README.md | 0 .../build/lib}/ima_predeployed/__init__.py | 0 .../build/lib/ima_predeployed/addresses.py | 17 + .../artifacts/AdminUpgradeabilityProxy.json | 142 + .../artifacts/CommunityLocker.dbg.json | 4 + .../artifacts/CommunityLocker.json | 432 + .../artifacts/ERC1155OnChain.dbg.json | 4 + .../artifacts/ERC1155OnChain.json | 677 ++ .../artifacts/ERC20OnChain.dbg.json | 4 + .../artifacts/ERC20OnChain.json | 587 ++ .../artifacts/ERC721OnChain.dbg.json | 4 + .../artifacts/ERC721OnChain.json | 722 ++ .../artifacts/EthErc20.dbg.json | 4 + .../ima_predeployed/artifacts/EthErc20.json | 615 ++ .../artifacts/Fp2Operations.dbg.json | 4 + .../artifacts/Fp2Operations.json | 24 + .../artifacts/G1Operations.dbg.json | 4 + .../artifacts/G1Operations.json | 10 + .../artifacts/G2Operations.dbg.json | 4 + .../artifacts/G2Operations.json | 10 + .../IContractReceiverForSchain.dbg.json | 4 + .../artifacts/IContractReceiverForSchain.json | 40 + .../artifacts/KeyStorage.dbg.json | 4 + .../ima_predeployed/artifacts/KeyStorage.json | 321 + .../artifacts/MessageProxyForSchain.dbg.json | 4 + .../artifacts/MessageProxyForSchain.json | 743 ++ .../artifacts/Precompiled.dbg.json | 4 + .../artifacts/Precompiled.json | 10 + .../ima_predeployed/artifacts/ProxyAdmin.json | 160 + .../artifacts/SkaleVerifier.dbg.json | 4 + .../artifacts/SkaleVerifier.json | 10 + .../artifacts/TokenManager.dbg.json | 4 + .../artifacts/TokenManager.json | 527 ++ .../artifacts/TokenManagerERC1155.dbg.json | 4 + .../artifacts/TokenManagerERC1155.json | 788 ++ .../artifacts/TokenManagerERC20.dbg.json | 4 + .../artifacts/TokenManagerERC20.json | 730 ++ .../artifacts/TokenManagerERC721.dbg.json | 4 + .../artifacts/TokenManagerERC721.json | 711 ++ .../artifacts/TokenManagerEth.dbg.json | 4 + .../artifacts/TokenManagerEth.json | 632 ++ .../artifacts/TokenManagerLinker.dbg.json | 4 + .../artifacts/TokenManagerLinker.json | 491 ++ .../lib/ima_predeployed/contract_generator.py | 99 + .../ima_predeployed/contracts/__init__.py | 0 .../contracts/admin_upgradeability_proxy.py | 0 .../contracts/community_locker.py | 50 + .../ima_predeployed/contracts/eth_erc20.py | 62 + .../ima_predeployed/contracts/key_storage.py | 33 + .../contracts/message_proxy_for_schain.py | 49 + .../ima_predeployed/contracts/proxy_admin.py | 0 .../contracts/token_manager.py | 58 + .../contracts/token_manager_erc20.py | 31 + .../contracts/token_manager_erc721.py | 30 + .../contracts/token_manager_erc_20.py | 35 + .../contracts/token_manager_eth.py | 40 + .../contracts/token_manager_linker.py | 50 + .../build/lib/ima_predeployed/generator.py | 124 + .../upgradeable_contract_generator.py | 0 predeployed/dist/ima-predeployed-0.0.1.tar.gz | Bin 0 -> 137378 bytes .../dist/ima-predeployed-1.3.4a12.tar.gz | Bin 0 -> 1524703 bytes .../ima_predeployed-0.0.1-py3-none-any.whl | Bin 0 -> 159517 bytes .../ima_predeployed-1.3.4a12-py3-none-any.whl | Bin 0 -> 1563972 bytes .../pyproject.toml | 0 .../scripts/build_package.sh | 0 .../scripts/generate_abi.py | 0 .../scripts/generate_package_version.py | 0 .../scripts/prepare_artifacts.py | 0 .../scripts/publish_package.sh | 0 {proxy/predeployed => predeployed}/setup.cfg | 0 .../src/ima_predeployed/__init__.py | 0 .../src/ima_predeployed/addresses.py | 0 .../src/ima_predeployed/artifacts/.gitkeep | 0 .../artifacts/AdminUpgradeabilityProxy.json | 142 + .../artifacts/CommunityLocker.dbg.json | 4 + .../artifacts/CommunityLocker.json | 671 ++ .../artifacts/CommunityLocker.meta.json | 410 + .../artifacts/ERC1155OnChain.dbg.json | 4 + .../artifacts/ERC1155OnChain.json | 690 ++ .../artifacts/ERC1155OnChain.meta.json | 410 + .../artifacts/ERC20OnChain.dbg.json | 4 + .../artifacts/ERC20OnChain.json | 619 ++ .../artifacts/ERC20OnChain.meta.json | 410 + .../artifacts/ERC721OnChain.dbg.json | 4 + .../artifacts/ERC721OnChain.json | 666 ++ .../artifacts/ERC721OnChain.meta.json | 410 + .../artifacts/EthErc20.dbg.json | 4 + .../ima_predeployed/artifacts/EthErc20.json | 647 ++ .../artifacts/EthErc20.meta.json | 410 + .../artifacts/Fp2Operations.dbg.json | 4 + .../artifacts/Fp2Operations.json | 24 + .../artifacts/G1Operations.dbg.json | 4 + .../artifacts/G1Operations.json | 10 + .../artifacts/G2Operations.dbg.json | 4 + .../artifacts/G2Operations.json | 10 + .../IContractReceiverForSchain.dbg.json | 4 + .../artifacts/IContractReceiverForSchain.json | 40 + .../artifacts/KeyStorage.dbg.json | 4 + .../ima_predeployed/artifacts/KeyStorage.json | 366 + .../artifacts/KeyStorage.meta.json | 410 + .../artifacts/MessageProxyForSchain.dbg.json | 4 + .../artifacts/MessageProxyForSchain.json | 1100 +++ .../artifacts/MessageProxyForSchain.meta.json | 410 + .../artifacts/Precompiled.dbg.json | 4 + .../artifacts/Precompiled.json | 10 + .../ima_predeployed/artifacts/ProxyAdmin.json | 160 + .../artifacts/SkaleVerifier.dbg.json | 4 + .../artifacts/SkaleVerifier.json | 10 + .../artifacts/TokenManager.dbg.json | 4 + .../artifacts/TokenManager.json | 572 ++ .../artifacts/TokenManager.meta.json | 410 + .../artifacts/TokenManagerERC1155.dbg.json | 4 + .../artifacts/TokenManagerERC1155.json | 1017 +++ .../artifacts/TokenManagerERC1155.meta.json | 410 + .../artifacts/TokenManagerERC20.dbg.json | 4 + .../artifacts/TokenManagerERC20.json | 880 ++ .../artifacts/TokenManagerERC20.meta.json | 410 + .../artifacts/TokenManagerERC721.dbg.json | 4 + .../artifacts/TokenManagerERC721.json | 861 ++ .../artifacts/TokenManagerERC721.meta.json | 410 + .../TokenManagerERC721WithMetadata.json | 861 ++ .../TokenManagerERC721WithMetadata.meta.json | 410 + .../artifacts/TokenManagerEth.dbg.json | 4 + .../artifacts/TokenManagerEth.json | 649 ++ .../artifacts/TokenManagerEth.meta.json | 410 + .../artifacts/TokenManagerLinker.dbg.json | 4 + .../artifacts/TokenManagerLinker.json | 463 ++ .../artifacts/TokenManagerLinker.meta.json | 410 + .../src/ima_predeployed/contract_generator.py | 0 .../src/ima_predeployed/contracts/__init__.py | 0 .../contracts/admin_upgradeability_proxy.py | 17 + .../contracts/community_locker.py | 0 .../contracts/erc1155_on_chain.py | 0 .../contracts/erc20_on_chain.py | 0 .../contracts/erc721_on_chain.py | 0 .../ima_predeployed/contracts/eth_erc20.py | 0 .../ima_predeployed/contracts/key_storage.py | 0 .../contracts/message_proxy_for_schain.py | 0 .../ima_predeployed/contracts/proxy_admin.py | 14 + .../contracts/token_manager.py | 0 .../contracts/token_manager_erc1155.py | 0 .../contracts/token_manager_erc20.py | 0 .../contracts/token_manager_erc721.py | 0 .../token_manager_erc721_with_metadata.py | 0 .../contracts/token_manager_eth.py | 0 .../contracts/token_manager_linker.py | 0 .../src/ima_predeployed/generator.py | 0 .../upgradeable_contract_generator.py | 13 + .../test/base_genesis.json | 0 .../test/config.json | 0 .../contracts/admin_upgradeability_proxy.py | 0 .../test/contracts/community_locker.py | 0 .../test/contracts/eth_erc20.py | 0 .../test/contracts/key_storage.py | 0 .../contracts/message_proxy_for_schain.py | 0 .../test/contracts/token_manager_erc1155.py | 0 .../test/contracts/token_manager_erc20.py | 0 .../test/contracts/token_manager_erc721.py | 0 .../token_manager_erc721_with_metadata.py | 0 .../test/contracts/token_manager_eth.py | 0 .../test/contracts/token_manager_linker.py | 0 .../test/generate_genesis.py | 0 predeployed/test/genesis.json | 353 + .../test/prepare_environment.sh | 0 .../test/requirements.txt | 0 .../predeployed => predeployed}/test/test.py | 0 .../predeployed => predeployed}/test/test.sh | 0 .../test/test_generator.py | 0 .../predeployed => predeployed}/test/tools.py | 0 predeployed/version.txt | 1 + proxy/.githooks/pre-commit | 7 - proxy/.openzeppelin/project.json | 30 - proxy/README.md | 124 - proxy/package.json | 63 - proxy/yarn.lock | 7321 ----------------- {proxy/scripts => scripts}/generateAbi.ts | 0 {proxy => scripts}/ima_datafile_generator.py | 0 {proxy/scripts => scripts}/magic_upgrade.sh | 0 {proxy/scripts => scripts}/prepare-docs.sh | 0 {proxy/scripts => scripts}/requirements.txt | 0 {proxy/scripts => scripts}/test_deploy.sh | 0 .../scripts => scripts}/test_predeployed.sh | 0 {proxy/scripts => scripts}/test_upgrade.sh | 0 {proxy/scripts => scripts}/updateManifest.py | 0 .../upgrade-instruction.md | 0 ...slither.config.json => slither.config.json | 0 {proxy/test => test}/CommunityLocker.ts | 0 {proxy/test => test}/CommunityPool.ts | 0 {proxy/test => test}/DepositBoxERC1155.ts | 0 {proxy/test => test}/DepositBoxERC20.ts | 0 {proxy/test => test}/DepositBoxERC721.ts | 0 .../DepositBoxERC721WithMetadata.ts | 0 {proxy/test => test}/DepositBoxEth.ts | 0 {proxy/test => test}/ERC20OnChain.ts | 0 {proxy/test => test}/ERC721OnChain.ts | 0 {proxy/test => test}/Linker.ts | 0 {proxy/test => test}/MessageProxy.ts | 0 {proxy/test => test}/TokenManagerERC1155.ts | 0 {proxy/test => test}/TokenManagerERC20.ts | 0 {proxy/test => test}/TokenManagerERC721.ts | 0 .../TokenManagerERC721WithMetadata.ts | 0 {proxy/test => test}/TokenManagerEth.ts | 0 {proxy/test => test}/TokenManagerLinker.ts | 0 .../ERC721MintingFromSchainToMainnet.ts | 0 {proxy/test => test}/utils/command_line.ts | 0 .../utils/deploy/erc1155OnChain.ts | 0 .../utils/deploy/erc20OnChain.ts | 0 .../utils/deploy/erc721OnChain.ts | 0 .../utils/deploy/mainnet/communityPool.ts | 0 .../utils/deploy/mainnet/depositBoxERC1155.ts | 0 .../utils/deploy/mainnet/depositBoxERC20.ts | 0 .../utils/deploy/mainnet/depositBoxERC721.ts | 0 .../mainnet/depositBoxERC721WithMetadata.ts | 0 .../utils/deploy/mainnet/depositBoxEth.ts | 0 .../utils/deploy/mainnet/linker.ts | 0 .../deploy/mainnet/messageProxyForMainnet.ts | 0 {proxy/test => test}/utils/deploy/messages.ts | 0 .../utils/deploy/schain/communityLocker.ts | 0 .../utils/deploy/schain/ethErc20.ts | 0 .../deploy/schain/messageProxyForSchain.ts | 0 .../deploy/schain/tokenManagerERC1155.ts | 0 .../utils/deploy/schain/tokenManagerERC20.ts | 0 .../utils/deploy/schain/tokenManagerERC721.ts | 0 .../schain/tokenManagerERC721WithMetadata.ts | 0 .../utils/deploy/schain/tokenManagerEth.ts | 0 .../utils/deploy/schain/tokenManagerLinker.ts | 0 .../utils/deploy/test/communityPoolTester.ts | 0 .../utils/deploy/test/fallbackEthTester.ts | 0 .../utils/deploy/test/keyStorageMock.ts | 0 .../utils/deploy/test/messageProxyCaller.ts | 0 .../test/messageProxyForMainnetTester.ts | 0 .../test/messageProxyForSchainTester.ts | 0 {proxy/test => test}/utils/helper.ts | 0 .../skale-manager-utils/contractManager.ts | 0 .../utils/skale-manager-utils/keyStorage.ts | 0 .../utils/skale-manager-utils/nodes.ts | 0 .../skale-manager-utils/schainsInternal.ts | 0 .../utils/skale-manager-utils/wallets.ts | 0 {proxy/test => test}/utils/time.ts | 0 proxy/tsconfig.json => tsconfig.json | 0 yarn.lock | 6639 ++++++++++++++- 331 files changed, 32217 insertions(+), 8081 deletions(-) rename proxy/.eslintrc.cjs => .eslintrc.cjs (100%) delete mode 100644 .eslintrc.js create mode 100755 .githooks/commit-msg create mode 100755 .githooks/pre-commit rename {proxy/.openzeppelin => .openzeppelin}/mainnet.json (100%) rename proxy/.solcover.js => .solcover.js (100%) rename proxy/.solhint.json => .solhint.json (100%) rename proxy/.solhintignore => .solhintignore (100%) rename proxy/DEPLOYED => DEPLOYED (100%) rename {proxy/contracts => contracts}/MessageProxy.sol (100%) rename {proxy/contracts => contracts}/Messages.sol (100%) rename {proxy/contracts => contracts}/extensions/ERC721ReferenceMintAndMetadataMainnet.sol (100%) rename {proxy/contracts => contracts}/extensions/ERC721ReferenceMintAndMetadataSchain.sol (100%) rename {proxy/contracts => contracts}/extensions/interfaces/MessageProxyClient.sol (100%) rename {proxy/contracts => contracts}/extensions/interfaces/MessageReceiver.sol (100%) rename {proxy/contracts => contracts}/extensions/interfaces/MessageSender.sol (100%) rename {proxy/contracts => contracts}/mainnet/CommunityPool.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBox.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBoxes/DepositBoxERC1155.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBoxes/DepositBoxERC20.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBoxes/DepositBoxERC721.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBoxes/DepositBoxERC721WithMetadata.sol (100%) rename {proxy/contracts => contracts}/mainnet/DepositBoxes/DepositBoxEth.sol (100%) rename {proxy/contracts => contracts}/mainnet/Linker.sol (100%) rename {proxy/contracts => contracts}/mainnet/MessageProxyForMainnet.sol (100%) rename {proxy/contracts => contracts}/mainnet/SkaleManagerClient.sol (100%) rename {proxy/contracts => contracts}/mainnet/Twin.sol (100%) rename {proxy/contracts => contracts}/schain/CommunityLocker.sol (100%) rename {proxy/contracts => contracts}/schain/DefaultAddresses.sol (100%) rename {proxy/contracts => contracts}/schain/KeyStorage.sol (100%) rename {proxy/contracts => contracts}/schain/MessageProxyForSchain.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManager.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagerLinker.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagers/TokenManagerERC1155.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagers/TokenManagerERC20.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagers/TokenManagerERC721.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagers/TokenManagerERC721WithMetadata.sol (100%) rename {proxy/contracts => contracts}/schain/TokenManagers/TokenManagerEth.sol (100%) rename {proxy/contracts => contracts}/schain/bls/FieldOperations.sol (100%) rename {proxy/contracts => contracts}/schain/bls/Precompiled.sol (100%) rename {proxy/contracts => contracts}/schain/bls/SkaleVerifier.sol (100%) rename {proxy/contracts => contracts}/schain/tokens/ERC1155OnChain.sol (100%) rename {proxy/contracts => contracts}/schain/tokens/ERC20OnChain.sol (100%) rename {proxy/contracts => contracts}/schain/tokens/ERC721OnChain.sol (100%) rename {proxy/contracts => contracts}/schain/tokens/EthErc20.sol (100%) rename {proxy/contracts => contracts}/test/ConfigReader.sol (100%) rename {proxy/contracts => contracts}/test/EtherbaseMock.sol (100%) rename {proxy/contracts => contracts}/test/FallbackEthTester.sol (100%) rename {proxy/contracts => contracts}/test/KeyStorageMock.sol (100%) rename {proxy/contracts => contracts}/test/Logger.sol (100%) rename {proxy/contracts => contracts}/test/MessageProxyCaller.sol (100%) rename {proxy/contracts => contracts}/test/MessageProxyForMainnetTester.sol (100%) rename {proxy/contracts => contracts}/test/MessageProxyForSchainTester.sol (100%) rename {proxy/contracts => contracts}/test/MessageProxyForSchainWithoutSignature.sol (100%) rename {proxy/contracts => contracts}/test/MessagesTester.sol (100%) rename {proxy/contracts => contracts}/test/PrecompiledMock.sol (100%) rename {proxy/contracts => contracts}/test/ReceiverGasLimitMainnetMock.sol (100%) rename {proxy/contracts => contracts}/test/ReceiverGasLimitSchainMock.sol (100%) rename {proxy/contracts => contracts}/test/ReceiverMock.sol (100%) rename {proxy/contracts => contracts}/test/SafeMock.sol (100%) rename {proxy/contracts => contracts}/test/SkaleVerifierMock.sol (100%) rename {proxy/contracts => contracts}/test/TestCallReceiverContract.sol (100%) rename {proxy/contracts => contracts}/test/TestContractManager.sol (100%) rename {proxy/contracts => contracts}/test/TestNodes.sol (100%) rename {proxy/contracts => contracts}/test/TestSchains.sol (100%) rename {proxy/contracts => contracts}/test/TestSchainsInternal.sol (100%) rename {proxy/contracts => contracts}/test/TestWallets.sol (100%) rename {proxy/contracts => contracts}/test/erc20/ERC20IncorrectTransfer.sol (100%) rename {proxy/contracts => contracts}/test/erc20/ERC20TransferWithFalseReturn.sol (100%) rename {proxy/contracts => contracts}/test/erc20/ERC20TransferWithoutReturn.sol (100%) rename {proxy/contracts => contracts}/test/erc20/ERC20WithoutTransfer.sol (100%) rename {proxy/contracts => contracts}/test/erc20/RevertableERC20.sol (100%) rename {proxy/contracts => contracts}/thirdparty/ERC1155ReceiverUpgradeableWithoutGap.sol (100%) rename {proxy/data => data}/.keep (100%) rename {proxy/gas => gas}/calculateGas.ts (100%) rename proxy/hardhat.config.ts => hardhat.config.ts (100%) rename {proxy/migrations => migrations}/changeManifest.ts (100%) rename {proxy/migrations => migrations}/deployMainnet.ts (100%) rename {proxy/migrations => migrations}/deploySchain.ts (100%) rename {proxy/migrations => migrations}/deploySkaleManagerComponents.ts (100%) rename {proxy/migrations => migrations}/generateManifest.ts (100%) rename {proxy/migrations => migrations}/hotfixUpgrade.ts (100%) rename {proxy/migrations => migrations}/submitTransactions.ts (100%) rename {proxy/migrations => migrations}/transferOwnership.ts (100%) rename {proxy/migrations => migrations}/upgradeMainnet.ts (100%) rename {proxy/migrations => migrations}/upgradeSchain.ts (100%) rename {proxy/predeployed => predeployed}/LICENSE (100%) rename {proxy/predeployed => predeployed}/MANIFEST.in (100%) rename {proxy/predeployed => predeployed}/README.md (100%) rename {proxy/predeployed/src => predeployed/build/lib}/ima_predeployed/__init__.py (100%) create mode 100644 predeployed/build/lib/ima_predeployed/addresses.py create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/AdminUpgradeabilityProxy.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/EthErc20.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/EthErc20.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/G1Operations.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/G1Operations.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/G2Operations.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/G2Operations.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/Precompiled.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/Precompiled.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/ProxyAdmin.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManager.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManager.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.dbg.json create mode 100644 predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.json create mode 100644 predeployed/build/lib/ima_predeployed/contract_generator.py rename {proxy/predeployed/src => predeployed/build/lib}/ima_predeployed/contracts/__init__.py (100%) rename {proxy/predeployed/src => predeployed/build/lib}/ima_predeployed/contracts/admin_upgradeability_proxy.py (100%) create mode 100644 predeployed/build/lib/ima_predeployed/contracts/community_locker.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/eth_erc20.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/key_storage.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/message_proxy_for_schain.py rename {proxy/predeployed/src => predeployed/build/lib}/ima_predeployed/contracts/proxy_admin.py (100%) create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager_erc20.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager_erc721.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager_erc_20.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager_eth.py create mode 100644 predeployed/build/lib/ima_predeployed/contracts/token_manager_linker.py create mode 100644 predeployed/build/lib/ima_predeployed/generator.py rename {proxy/predeployed/src => predeployed/build/lib}/ima_predeployed/upgradeable_contract_generator.py (100%) create mode 100644 predeployed/dist/ima-predeployed-0.0.1.tar.gz create mode 100644 predeployed/dist/ima-predeployed-1.3.4a12.tar.gz create mode 100644 predeployed/dist/ima_predeployed-0.0.1-py3-none-any.whl create mode 100644 predeployed/dist/ima_predeployed-1.3.4a12-py3-none-any.whl rename {proxy/predeployed => predeployed}/pyproject.toml (100%) rename {proxy/predeployed => predeployed}/scripts/build_package.sh (100%) rename {proxy/predeployed => predeployed}/scripts/generate_abi.py (100%) rename {proxy/predeployed => predeployed}/scripts/generate_package_version.py (100%) rename {proxy/predeployed => predeployed}/scripts/prepare_artifacts.py (100%) rename {proxy/predeployed => predeployed}/scripts/publish_package.sh (100%) rename {proxy/predeployed => predeployed}/setup.cfg (100%) rename proxy/predeployed/src/ima_predeployed/artifacts/.gitkeep => predeployed/src/ima_predeployed/__init__.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/addresses.py (100%) create mode 100644 predeployed/src/ima_predeployed/artifacts/.gitkeep create mode 100644 predeployed/src/ima_predeployed/artifacts/AdminUpgradeabilityProxy.json create mode 100644 predeployed/src/ima_predeployed/artifacts/CommunityLocker.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/CommunityLocker.json create mode 100644 predeployed/src/ima_predeployed/artifacts/CommunityLocker.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC1155OnChain.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC1155OnChain.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC1155OnChain.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC20OnChain.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC20OnChain.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC20OnChain.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC721OnChain.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC721OnChain.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ERC721OnChain.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/EthErc20.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/EthErc20.json create mode 100644 predeployed/src/ima_predeployed/artifacts/EthErc20.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/Fp2Operations.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/Fp2Operations.json create mode 100644 predeployed/src/ima_predeployed/artifacts/G1Operations.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/G1Operations.json create mode 100644 predeployed/src/ima_predeployed/artifacts/G2Operations.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/G2Operations.json create mode 100644 predeployed/src/ima_predeployed/artifacts/IContractReceiverForSchain.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/IContractReceiverForSchain.json create mode 100644 predeployed/src/ima_predeployed/artifacts/KeyStorage.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/KeyStorage.json create mode 100644 predeployed/src/ima_predeployed/artifacts/KeyStorage.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/MessageProxyForSchain.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/MessageProxyForSchain.json create mode 100644 predeployed/src/ima_predeployed/artifacts/MessageProxyForSchain.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/Precompiled.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/Precompiled.json create mode 100644 predeployed/src/ima_predeployed/artifacts/ProxyAdmin.json create mode 100644 predeployed/src/ima_predeployed/artifacts/SkaleVerifier.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/SkaleVerifier.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManager.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManager.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManager.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC1155.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC1155.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC1155.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC20.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC20.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC20.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC721.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC721.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC721.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC721WithMetadata.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerERC721WithMetadata.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerEth.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerEth.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerEth.meta.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerLinker.dbg.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerLinker.json create mode 100644 predeployed/src/ima_predeployed/artifacts/TokenManagerLinker.meta.json rename {proxy/predeployed => predeployed}/src/ima_predeployed/contract_generator.py (100%) create mode 100644 predeployed/src/ima_predeployed/contracts/__init__.py create mode 100644 predeployed/src/ima_predeployed/contracts/admin_upgradeability_proxy.py rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/community_locker.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/erc1155_on_chain.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/erc20_on_chain.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/erc721_on_chain.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/eth_erc20.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/key_storage.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/message_proxy_for_schain.py (100%) create mode 100644 predeployed/src/ima_predeployed/contracts/proxy_admin.py rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_erc1155.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_erc20.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_erc721.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_erc721_with_metadata.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_eth.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/contracts/token_manager_linker.py (100%) rename {proxy/predeployed => predeployed}/src/ima_predeployed/generator.py (100%) create mode 100644 predeployed/src/ima_predeployed/upgradeable_contract_generator.py rename {proxy/predeployed => predeployed}/test/base_genesis.json (100%) rename {proxy/predeployed => predeployed}/test/config.json (100%) rename {proxy/predeployed => predeployed}/test/contracts/admin_upgradeability_proxy.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/community_locker.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/eth_erc20.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/key_storage.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/message_proxy_for_schain.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_erc1155.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_erc20.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_erc721.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_erc721_with_metadata.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_eth.py (100%) rename {proxy/predeployed => predeployed}/test/contracts/token_manager_linker.py (100%) rename {proxy/predeployed => predeployed}/test/generate_genesis.py (100%) create mode 100644 predeployed/test/genesis.json rename {proxy/predeployed => predeployed}/test/prepare_environment.sh (100%) rename {proxy/predeployed => predeployed}/test/requirements.txt (100%) rename {proxy/predeployed => predeployed}/test/test.py (100%) rename {proxy/predeployed => predeployed}/test/test.sh (100%) rename {proxy/predeployed => predeployed}/test/test_generator.py (100%) rename {proxy/predeployed => predeployed}/test/tools.py (100%) create mode 100644 predeployed/version.txt delete mode 100755 proxy/.githooks/pre-commit delete mode 100644 proxy/.openzeppelin/project.json delete mode 100644 proxy/README.md delete mode 100644 proxy/package.json delete mode 100644 proxy/yarn.lock rename {proxy/scripts => scripts}/generateAbi.ts (100%) rename {proxy => scripts}/ima_datafile_generator.py (100%) rename {proxy/scripts => scripts}/magic_upgrade.sh (100%) rename {proxy/scripts => scripts}/prepare-docs.sh (100%) rename {proxy/scripts => scripts}/requirements.txt (100%) rename {proxy/scripts => scripts}/test_deploy.sh (100%) rename {proxy/scripts => scripts}/test_predeployed.sh (100%) rename {proxy/scripts => scripts}/test_upgrade.sh (100%) rename {proxy/scripts => scripts}/updateManifest.py (100%) rename {proxy/scripts => scripts}/upgrade-instruction.md (100%) rename proxy/slither.config.json => slither.config.json (100%) rename {proxy/test => test}/CommunityLocker.ts (100%) rename {proxy/test => test}/CommunityPool.ts (100%) rename {proxy/test => test}/DepositBoxERC1155.ts (100%) rename {proxy/test => test}/DepositBoxERC20.ts (100%) rename {proxy/test => test}/DepositBoxERC721.ts (100%) rename {proxy/test => test}/DepositBoxERC721WithMetadata.ts (100%) rename {proxy/test => test}/DepositBoxEth.ts (100%) rename {proxy/test => test}/ERC20OnChain.ts (100%) rename {proxy/test => test}/ERC721OnChain.ts (100%) rename {proxy/test => test}/Linker.ts (100%) rename {proxy/test => test}/MessageProxy.ts (100%) rename {proxy/test => test}/TokenManagerERC1155.ts (100%) rename {proxy/test => test}/TokenManagerERC20.ts (100%) rename {proxy/test => test}/TokenManagerERC721.ts (100%) rename {proxy/test => test}/TokenManagerERC721WithMetadata.ts (100%) rename {proxy/test => test}/TokenManagerEth.ts (100%) rename {proxy/test => test}/TokenManagerLinker.ts (100%) rename {proxy/test => test}/extensions/ERC721MintingFromSchainToMainnet.ts (100%) rename {proxy/test => test}/utils/command_line.ts (100%) rename {proxy/test => test}/utils/deploy/erc1155OnChain.ts (100%) rename {proxy/test => test}/utils/deploy/erc20OnChain.ts (100%) rename {proxy/test => test}/utils/deploy/erc721OnChain.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/communityPool.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/depositBoxERC1155.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/depositBoxERC20.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/depositBoxERC721.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/depositBoxERC721WithMetadata.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/depositBoxEth.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/linker.ts (100%) rename {proxy/test => test}/utils/deploy/mainnet/messageProxyForMainnet.ts (100%) rename {proxy/test => test}/utils/deploy/messages.ts (100%) rename {proxy/test => test}/utils/deploy/schain/communityLocker.ts (100%) rename {proxy/test => test}/utils/deploy/schain/ethErc20.ts (100%) rename {proxy/test => test}/utils/deploy/schain/messageProxyForSchain.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerERC1155.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerERC20.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerERC721.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerERC721WithMetadata.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerEth.ts (100%) rename {proxy/test => test}/utils/deploy/schain/tokenManagerLinker.ts (100%) rename {proxy/test => test}/utils/deploy/test/communityPoolTester.ts (100%) rename {proxy/test => test}/utils/deploy/test/fallbackEthTester.ts (100%) rename {proxy/test => test}/utils/deploy/test/keyStorageMock.ts (100%) rename {proxy/test => test}/utils/deploy/test/messageProxyCaller.ts (100%) rename {proxy/test => test}/utils/deploy/test/messageProxyForMainnetTester.ts (100%) rename {proxy/test => test}/utils/deploy/test/messageProxyForSchainTester.ts (100%) rename {proxy/test => test}/utils/helper.ts (100%) rename {proxy/test => test}/utils/skale-manager-utils/contractManager.ts (100%) rename {proxy/test => test}/utils/skale-manager-utils/keyStorage.ts (100%) rename {proxy/test => test}/utils/skale-manager-utils/nodes.ts (100%) rename {proxy/test => test}/utils/skale-manager-utils/schainsInternal.ts (100%) rename {proxy/test => test}/utils/skale-manager-utils/wallets.ts (100%) rename {proxy/test => test}/utils/time.ts (100%) rename proxy/tsconfig.json => tsconfig.json (100%) diff --git a/proxy/.eslintrc.cjs b/.eslintrc.cjs similarity index 100% rename from proxy/.eslintrc.cjs rename to .eslintrc.cjs diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 177dd8e5e..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,69 +0,0 @@ -module.exports = { - "env": { - "browser": false, - "es6": true - }, - "extends": "standard", - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, - "rules": { - "indent": [ "error", 4 ], - "linebreak-style": [ "error", "unix" ], - "quotes": [ "error", "double" ], - "semi": [ "error", "always" ], - "camelcase": "off", - // "no-unused-vars": "off", - "eqeqeq": "off", - "comma-dangle": [ "error", "never" ], - "comma-style": [ "error", "last" ], - "comma-spacing": "off", - "space-before-function-paren": [ "error", "never" ], - "space-in-parens": [ "error", "always" ], - "keyword-spacing": [ "error", { - "overrides": { - "if": { "before": false, "after": false }, - "else": { "before": true, "after": true }, - "for": { "before": false, "after": false }, - "while": { "before": false, "after": false } - } - } ], - "space-before-blocks": [ "error", "always" ], - "array-bracket-spacing": [ "error", "always" ], - "object-curly-spacing": [ "error", "always" ], - "space-unary-ops": "off", - "spaced-comment": "off", - "curly": [ "error", "multi-or-nest" ], - "nonblock-statement-body-position": [ "error", "below" ], - "one-var": "off", - "no-unneeded-ternary": "off", - "no-cond-assign": [ "error", "always" ], - "no-console": "off", - "new-cap": "off", - "no-tabs": "off", - "no-mixed-spaces-and-tabs": "off", - "no-prototype-builtins": "off", - "quote-props": "off", - "no-undef": "off", - "no-useless-return": "off", - "no-new": "off", - "no-useless-constructor": "off", - "no-lone-blocks": "off", - "no-fallthrough": "off", - "no-useless-catch": "off", - "padded-blocks": "off", - "no-use-before-define": "off", // [ "error", { "variables": false, "functions": false } ], - "lines-between-class-members": [ "error", "never" ], - "no-var": "error", - "no-unused-vars": "error", - "object-shorthand": 0, - "multiline-ternary": "off", - "max-len": [ "error", { "code": 100, "tabWidth": 4 } ], - "max-lines-per-function": [ "error", { "max": 200, "skipBlankLines": false } ] - } -}; diff --git a/.githooks/commit-msg b/.githooks/commit-msg new file mode 100755 index 000000000..8bb66f6a2 --- /dev/null +++ b/.githooks/commit-msg @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +if [[ $(npx cspell -- --no-summary $1 2> /dev/null) ]] +then + echo "It looks like you have spell-checking errors in your commit message." + npx cspell -- --no-summary $1 + exit 1 +fi diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 000000000..d091c348c --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,17 @@ +#!/bin/bash + +# cSpell:words gpgsign + +set -e + +GPG_SIGN_ENABLED=$(git config commit.gpgsign || true) +if ! [[ "$GPG_SIGN_ENABLED" == "true" ]] +then + echo "Enable GPG signature for new commits"; + exit 1; +fi + +files=$(git diff --cached --name-only) +npx cspell -- --no-summary $files + +yarn fullCheck diff --git a/proxy/.openzeppelin/mainnet.json b/.openzeppelin/mainnet.json similarity index 100% rename from proxy/.openzeppelin/mainnet.json rename to .openzeppelin/mainnet.json diff --git a/proxy/.solcover.js b/.solcover.js similarity index 100% rename from proxy/.solcover.js rename to .solcover.js diff --git a/proxy/.solhint.json b/.solhint.json similarity index 100% rename from proxy/.solhint.json rename to .solhint.json diff --git a/proxy/.solhintignore b/.solhintignore similarity index 100% rename from proxy/.solhintignore rename to .solhintignore diff --git a/proxy/DEPLOYED b/DEPLOYED similarity index 100% rename from proxy/DEPLOYED rename to DEPLOYED diff --git a/README.md b/README.md index 1fd45b15a..245bb9380 100644 --- a/README.md +++ b/README.md @@ -15,24 +15,139 @@ Please see [SECURITY.md](.github/SECURITY.md) for audit reports and reporting po IMA consists of the following three parts: -1) `Mainnet` smart contracts. -2) `SKALE Chain` smart contracts. -3) A containerized [IMA Agent](https://github.com/skalenetwork/ima-agent) application. +1) `Mainnet` smart contracts. +2) `SKALE Chain` smart contracts. +3) A containerized [IMA Agent](https://github.com/skalenetwork/ima-agent) application. Smart contracts are interfaces for any software working with `Mainnet` and `SKALE Chain` like other smart contracts deployed there or software connecting these Ethereum networks. The Agent is a Node JS application connecting the smart contracts on Mainnet with SKALE Chains. -## Components Structure +## SKALE IMA Proxy -### Proxy +SKALE Interchain Messaging Smart Contracts -IMA proxy is the Solidity part of IMA containing `Mainnet` and `SKALE Chain` smart contracts. +Proxy is a library with smart contracts for the SKALE Interchain Messaging Agent. This system allows transferring ETH, ERC20 and ERC721 and is based on the Message Proxy system. + +Smart contract language - Solidity 0.5.10 +NodeJS version - 10.16.0 +NPM version - 6.9.0 + +### Message Proxy system + +This system allows sending and receiving messages from other chains. `MessageProxy.sol` contract needs to be deployed to Mainnet, and deployed to each SKALE chain to use it with the SKALE Interchain Messaging Agent. +You can use MessageProxy contract separately by Interchain Messaging Smart Contracts: + +1) Add interface: + + ```solidity + interface Proxy { + function postOutgoingMessage( + string calldata targetSchainName, + address targetContract, + uint256 amount, + address to, + bytes calldata data + ) + external; + } + ``` + +2) Write `postMessage` function, which will receive and process messages from other chains: + + ```solidity + function postMessage( + address sender, + string memory fromSchainName, + address payable to, + uint256 amount, + bytes memory data + ) + public + { + ... + } + ``` + +3) Add the address of MessageProxy on some chain: + Data of Smart contracts stores in `data` folder + +4) Then continue developing your dApp + +### Ether clone on SKALE chain + +There is a Wrapped Ether clone(EthERC20.sol) on SKALE chains - it is an ERC20 token and inherits the known ERC-20 approve issue. Please find more details here + +### Interchain Messaging Agent system + +This system sends and receives ETH, ERC20, and ERC721 tokens from other chains. +It consists of 3 additional smart contracts (not including MessageProxy contract): + +1) `DepositBox.sol` - contract only on a mainnet: DepositBox can transfer ETH and ERC20, ERC721 tokens to other chains. \- `deposit(string memory schainName, address to)` - transfer ETH. ... +2) `TokenManager.sol` +3) `TokenFactory.sol` + +### Install + +1) Clone this repo +2) run `npm install` +3) run `npm start`, this command will compile contracts + +### Deployment + +Configure your networks for SKALE chain and mainnet in `truffle-config.js` + +There are several example networks in comments. + +The `.env` file should include the following variables: + +```bash +URL_W3_ETHEREUM="your mainnet RPC url, it also can be an infura endpoint" +URL_W3_S_CHAIN="your SKALE chain RPC url, it also can be an infura endpoint" +CHAIN_NAME_SCHAIN="your SKALE chain name" +PRIVATE_KEY_FOR_ETHEREUM="your private key for mainnet" +PRIVATE_KEY_FOR_SCHAIN="your private key for SKALE chain" +ACCOUNT_FOR_ETHEREUM="your account for mainnet" +ACCOUNT_FOR_SCHAIN="your account for SKALE chain" +NETWORK_FOR_ETHEREUM="your created network for mainnet" +NETWORK_FOR_SCHAIN="your created network for SKALE chain" +``` + +- deploy only to your mainnet: + +```bash +npm run deploy-to-mainnet +``` + +- deploy only to your schain: + +```bash +npm run deploy-to-schain +``` + +- deploy only to your mainnet and to schain: + +```bash +npm run deploy-to-both +``` + +#### Generate IMA data file for skale-node + +Results will be saved to `[RESULTS_FOLDER]/ima_data.json` + +- `ARTIFACTS_FOLDER` - path to `build/contracts` folder +- `RESULTS_FOLDER` - path to the folder where `ima_data.json` will be saved + +```bash +cd proxy +npm run compile +python ima_datafile_generator.py [ARTIFACTS_FOLDER] [RESULTS_FOLDER] +``` ## For more information -- [SKALE Network Website](https://skale.network) -- [SKALE Network Twitter](https://twitter.com/SkaleNetwork) -- [SKALE Network Blog](https://skale.network/blog) +- [SKALE Network Website](https://skale.network) +- [SKALE Network Twitter](https://twitter.com/SkaleNetwork) +- [SKALE Network Blog](https://skale.network/blog) Learn more about the SKALE community over on [Discord](https://discord.gg/vvUtWJB). diff --git a/proxy/contracts/MessageProxy.sol b/contracts/MessageProxy.sol similarity index 100% rename from proxy/contracts/MessageProxy.sol rename to contracts/MessageProxy.sol diff --git a/proxy/contracts/Messages.sol b/contracts/Messages.sol similarity index 100% rename from proxy/contracts/Messages.sol rename to contracts/Messages.sol diff --git a/proxy/contracts/extensions/ERC721ReferenceMintAndMetadataMainnet.sol b/contracts/extensions/ERC721ReferenceMintAndMetadataMainnet.sol similarity index 100% rename from proxy/contracts/extensions/ERC721ReferenceMintAndMetadataMainnet.sol rename to contracts/extensions/ERC721ReferenceMintAndMetadataMainnet.sol diff --git a/proxy/contracts/extensions/ERC721ReferenceMintAndMetadataSchain.sol b/contracts/extensions/ERC721ReferenceMintAndMetadataSchain.sol similarity index 100% rename from proxy/contracts/extensions/ERC721ReferenceMintAndMetadataSchain.sol rename to contracts/extensions/ERC721ReferenceMintAndMetadataSchain.sol diff --git a/proxy/contracts/extensions/interfaces/MessageProxyClient.sol b/contracts/extensions/interfaces/MessageProxyClient.sol similarity index 100% rename from proxy/contracts/extensions/interfaces/MessageProxyClient.sol rename to contracts/extensions/interfaces/MessageProxyClient.sol diff --git a/proxy/contracts/extensions/interfaces/MessageReceiver.sol b/contracts/extensions/interfaces/MessageReceiver.sol similarity index 100% rename from proxy/contracts/extensions/interfaces/MessageReceiver.sol rename to contracts/extensions/interfaces/MessageReceiver.sol diff --git a/proxy/contracts/extensions/interfaces/MessageSender.sol b/contracts/extensions/interfaces/MessageSender.sol similarity index 100% rename from proxy/contracts/extensions/interfaces/MessageSender.sol rename to contracts/extensions/interfaces/MessageSender.sol diff --git a/proxy/contracts/mainnet/CommunityPool.sol b/contracts/mainnet/CommunityPool.sol similarity index 100% rename from proxy/contracts/mainnet/CommunityPool.sol rename to contracts/mainnet/CommunityPool.sol diff --git a/proxy/contracts/mainnet/DepositBox.sol b/contracts/mainnet/DepositBox.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBox.sol rename to contracts/mainnet/DepositBox.sol diff --git a/proxy/contracts/mainnet/DepositBoxes/DepositBoxERC1155.sol b/contracts/mainnet/DepositBoxes/DepositBoxERC1155.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBoxes/DepositBoxERC1155.sol rename to contracts/mainnet/DepositBoxes/DepositBoxERC1155.sol diff --git a/proxy/contracts/mainnet/DepositBoxes/DepositBoxERC20.sol b/contracts/mainnet/DepositBoxes/DepositBoxERC20.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBoxes/DepositBoxERC20.sol rename to contracts/mainnet/DepositBoxes/DepositBoxERC20.sol diff --git a/proxy/contracts/mainnet/DepositBoxes/DepositBoxERC721.sol b/contracts/mainnet/DepositBoxes/DepositBoxERC721.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBoxes/DepositBoxERC721.sol rename to contracts/mainnet/DepositBoxes/DepositBoxERC721.sol diff --git a/proxy/contracts/mainnet/DepositBoxes/DepositBoxERC721WithMetadata.sol b/contracts/mainnet/DepositBoxes/DepositBoxERC721WithMetadata.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBoxes/DepositBoxERC721WithMetadata.sol rename to contracts/mainnet/DepositBoxes/DepositBoxERC721WithMetadata.sol diff --git a/proxy/contracts/mainnet/DepositBoxes/DepositBoxEth.sol b/contracts/mainnet/DepositBoxes/DepositBoxEth.sol similarity index 100% rename from proxy/contracts/mainnet/DepositBoxes/DepositBoxEth.sol rename to contracts/mainnet/DepositBoxes/DepositBoxEth.sol diff --git a/proxy/contracts/mainnet/Linker.sol b/contracts/mainnet/Linker.sol similarity index 100% rename from proxy/contracts/mainnet/Linker.sol rename to contracts/mainnet/Linker.sol diff --git a/proxy/contracts/mainnet/MessageProxyForMainnet.sol b/contracts/mainnet/MessageProxyForMainnet.sol similarity index 100% rename from proxy/contracts/mainnet/MessageProxyForMainnet.sol rename to contracts/mainnet/MessageProxyForMainnet.sol diff --git a/proxy/contracts/mainnet/SkaleManagerClient.sol b/contracts/mainnet/SkaleManagerClient.sol similarity index 100% rename from proxy/contracts/mainnet/SkaleManagerClient.sol rename to contracts/mainnet/SkaleManagerClient.sol diff --git a/proxy/contracts/mainnet/Twin.sol b/contracts/mainnet/Twin.sol similarity index 100% rename from proxy/contracts/mainnet/Twin.sol rename to contracts/mainnet/Twin.sol diff --git a/proxy/contracts/schain/CommunityLocker.sol b/contracts/schain/CommunityLocker.sol similarity index 100% rename from proxy/contracts/schain/CommunityLocker.sol rename to contracts/schain/CommunityLocker.sol diff --git a/proxy/contracts/schain/DefaultAddresses.sol b/contracts/schain/DefaultAddresses.sol similarity index 100% rename from proxy/contracts/schain/DefaultAddresses.sol rename to contracts/schain/DefaultAddresses.sol diff --git a/proxy/contracts/schain/KeyStorage.sol b/contracts/schain/KeyStorage.sol similarity index 100% rename from proxy/contracts/schain/KeyStorage.sol rename to contracts/schain/KeyStorage.sol diff --git a/proxy/contracts/schain/MessageProxyForSchain.sol b/contracts/schain/MessageProxyForSchain.sol similarity index 100% rename from proxy/contracts/schain/MessageProxyForSchain.sol rename to contracts/schain/MessageProxyForSchain.sol diff --git a/proxy/contracts/schain/TokenManager.sol b/contracts/schain/TokenManager.sol similarity index 100% rename from proxy/contracts/schain/TokenManager.sol rename to contracts/schain/TokenManager.sol diff --git a/proxy/contracts/schain/TokenManagerLinker.sol b/contracts/schain/TokenManagerLinker.sol similarity index 100% rename from proxy/contracts/schain/TokenManagerLinker.sol rename to contracts/schain/TokenManagerLinker.sol diff --git a/proxy/contracts/schain/TokenManagers/TokenManagerERC1155.sol b/contracts/schain/TokenManagers/TokenManagerERC1155.sol similarity index 100% rename from proxy/contracts/schain/TokenManagers/TokenManagerERC1155.sol rename to contracts/schain/TokenManagers/TokenManagerERC1155.sol diff --git a/proxy/contracts/schain/TokenManagers/TokenManagerERC20.sol b/contracts/schain/TokenManagers/TokenManagerERC20.sol similarity index 100% rename from proxy/contracts/schain/TokenManagers/TokenManagerERC20.sol rename to contracts/schain/TokenManagers/TokenManagerERC20.sol diff --git a/proxy/contracts/schain/TokenManagers/TokenManagerERC721.sol b/contracts/schain/TokenManagers/TokenManagerERC721.sol similarity index 100% rename from proxy/contracts/schain/TokenManagers/TokenManagerERC721.sol rename to contracts/schain/TokenManagers/TokenManagerERC721.sol diff --git a/proxy/contracts/schain/TokenManagers/TokenManagerERC721WithMetadata.sol b/contracts/schain/TokenManagers/TokenManagerERC721WithMetadata.sol similarity index 100% rename from proxy/contracts/schain/TokenManagers/TokenManagerERC721WithMetadata.sol rename to contracts/schain/TokenManagers/TokenManagerERC721WithMetadata.sol diff --git a/proxy/contracts/schain/TokenManagers/TokenManagerEth.sol b/contracts/schain/TokenManagers/TokenManagerEth.sol similarity index 100% rename from proxy/contracts/schain/TokenManagers/TokenManagerEth.sol rename to contracts/schain/TokenManagers/TokenManagerEth.sol diff --git a/proxy/contracts/schain/bls/FieldOperations.sol b/contracts/schain/bls/FieldOperations.sol similarity index 100% rename from proxy/contracts/schain/bls/FieldOperations.sol rename to contracts/schain/bls/FieldOperations.sol diff --git a/proxy/contracts/schain/bls/Precompiled.sol b/contracts/schain/bls/Precompiled.sol similarity index 100% rename from proxy/contracts/schain/bls/Precompiled.sol rename to contracts/schain/bls/Precompiled.sol diff --git a/proxy/contracts/schain/bls/SkaleVerifier.sol b/contracts/schain/bls/SkaleVerifier.sol similarity index 100% rename from proxy/contracts/schain/bls/SkaleVerifier.sol rename to contracts/schain/bls/SkaleVerifier.sol diff --git a/proxy/contracts/schain/tokens/ERC1155OnChain.sol b/contracts/schain/tokens/ERC1155OnChain.sol similarity index 100% rename from proxy/contracts/schain/tokens/ERC1155OnChain.sol rename to contracts/schain/tokens/ERC1155OnChain.sol diff --git a/proxy/contracts/schain/tokens/ERC20OnChain.sol b/contracts/schain/tokens/ERC20OnChain.sol similarity index 100% rename from proxy/contracts/schain/tokens/ERC20OnChain.sol rename to contracts/schain/tokens/ERC20OnChain.sol diff --git a/proxy/contracts/schain/tokens/ERC721OnChain.sol b/contracts/schain/tokens/ERC721OnChain.sol similarity index 100% rename from proxy/contracts/schain/tokens/ERC721OnChain.sol rename to contracts/schain/tokens/ERC721OnChain.sol diff --git a/proxy/contracts/schain/tokens/EthErc20.sol b/contracts/schain/tokens/EthErc20.sol similarity index 100% rename from proxy/contracts/schain/tokens/EthErc20.sol rename to contracts/schain/tokens/EthErc20.sol diff --git a/proxy/contracts/test/ConfigReader.sol b/contracts/test/ConfigReader.sol similarity index 100% rename from proxy/contracts/test/ConfigReader.sol rename to contracts/test/ConfigReader.sol diff --git a/proxy/contracts/test/EtherbaseMock.sol b/contracts/test/EtherbaseMock.sol similarity index 100% rename from proxy/contracts/test/EtherbaseMock.sol rename to contracts/test/EtherbaseMock.sol diff --git a/proxy/contracts/test/FallbackEthTester.sol b/contracts/test/FallbackEthTester.sol similarity index 100% rename from proxy/contracts/test/FallbackEthTester.sol rename to contracts/test/FallbackEthTester.sol diff --git a/proxy/contracts/test/KeyStorageMock.sol b/contracts/test/KeyStorageMock.sol similarity index 100% rename from proxy/contracts/test/KeyStorageMock.sol rename to contracts/test/KeyStorageMock.sol diff --git a/proxy/contracts/test/Logger.sol b/contracts/test/Logger.sol similarity index 100% rename from proxy/contracts/test/Logger.sol rename to contracts/test/Logger.sol diff --git a/proxy/contracts/test/MessageProxyCaller.sol b/contracts/test/MessageProxyCaller.sol similarity index 100% rename from proxy/contracts/test/MessageProxyCaller.sol rename to contracts/test/MessageProxyCaller.sol diff --git a/proxy/contracts/test/MessageProxyForMainnetTester.sol b/contracts/test/MessageProxyForMainnetTester.sol similarity index 100% rename from proxy/contracts/test/MessageProxyForMainnetTester.sol rename to contracts/test/MessageProxyForMainnetTester.sol diff --git a/proxy/contracts/test/MessageProxyForSchainTester.sol b/contracts/test/MessageProxyForSchainTester.sol similarity index 100% rename from proxy/contracts/test/MessageProxyForSchainTester.sol rename to contracts/test/MessageProxyForSchainTester.sol diff --git a/proxy/contracts/test/MessageProxyForSchainWithoutSignature.sol b/contracts/test/MessageProxyForSchainWithoutSignature.sol similarity index 100% rename from proxy/contracts/test/MessageProxyForSchainWithoutSignature.sol rename to contracts/test/MessageProxyForSchainWithoutSignature.sol diff --git a/proxy/contracts/test/MessagesTester.sol b/contracts/test/MessagesTester.sol similarity index 100% rename from proxy/contracts/test/MessagesTester.sol rename to contracts/test/MessagesTester.sol diff --git a/proxy/contracts/test/PrecompiledMock.sol b/contracts/test/PrecompiledMock.sol similarity index 100% rename from proxy/contracts/test/PrecompiledMock.sol rename to contracts/test/PrecompiledMock.sol diff --git a/proxy/contracts/test/ReceiverGasLimitMainnetMock.sol b/contracts/test/ReceiverGasLimitMainnetMock.sol similarity index 100% rename from proxy/contracts/test/ReceiverGasLimitMainnetMock.sol rename to contracts/test/ReceiverGasLimitMainnetMock.sol diff --git a/proxy/contracts/test/ReceiverGasLimitSchainMock.sol b/contracts/test/ReceiverGasLimitSchainMock.sol similarity index 100% rename from proxy/contracts/test/ReceiverGasLimitSchainMock.sol rename to contracts/test/ReceiverGasLimitSchainMock.sol diff --git a/proxy/contracts/test/ReceiverMock.sol b/contracts/test/ReceiverMock.sol similarity index 100% rename from proxy/contracts/test/ReceiverMock.sol rename to contracts/test/ReceiverMock.sol diff --git a/proxy/contracts/test/SafeMock.sol b/contracts/test/SafeMock.sol similarity index 100% rename from proxy/contracts/test/SafeMock.sol rename to contracts/test/SafeMock.sol diff --git a/proxy/contracts/test/SkaleVerifierMock.sol b/contracts/test/SkaleVerifierMock.sol similarity index 100% rename from proxy/contracts/test/SkaleVerifierMock.sol rename to contracts/test/SkaleVerifierMock.sol diff --git a/proxy/contracts/test/TestCallReceiverContract.sol b/contracts/test/TestCallReceiverContract.sol similarity index 100% rename from proxy/contracts/test/TestCallReceiverContract.sol rename to contracts/test/TestCallReceiverContract.sol diff --git a/proxy/contracts/test/TestContractManager.sol b/contracts/test/TestContractManager.sol similarity index 100% rename from proxy/contracts/test/TestContractManager.sol rename to contracts/test/TestContractManager.sol diff --git a/proxy/contracts/test/TestNodes.sol b/contracts/test/TestNodes.sol similarity index 100% rename from proxy/contracts/test/TestNodes.sol rename to contracts/test/TestNodes.sol diff --git a/proxy/contracts/test/TestSchains.sol b/contracts/test/TestSchains.sol similarity index 100% rename from proxy/contracts/test/TestSchains.sol rename to contracts/test/TestSchains.sol diff --git a/proxy/contracts/test/TestSchainsInternal.sol b/contracts/test/TestSchainsInternal.sol similarity index 100% rename from proxy/contracts/test/TestSchainsInternal.sol rename to contracts/test/TestSchainsInternal.sol diff --git a/proxy/contracts/test/TestWallets.sol b/contracts/test/TestWallets.sol similarity index 100% rename from proxy/contracts/test/TestWallets.sol rename to contracts/test/TestWallets.sol diff --git a/proxy/contracts/test/erc20/ERC20IncorrectTransfer.sol b/contracts/test/erc20/ERC20IncorrectTransfer.sol similarity index 100% rename from proxy/contracts/test/erc20/ERC20IncorrectTransfer.sol rename to contracts/test/erc20/ERC20IncorrectTransfer.sol diff --git a/proxy/contracts/test/erc20/ERC20TransferWithFalseReturn.sol b/contracts/test/erc20/ERC20TransferWithFalseReturn.sol similarity index 100% rename from proxy/contracts/test/erc20/ERC20TransferWithFalseReturn.sol rename to contracts/test/erc20/ERC20TransferWithFalseReturn.sol diff --git a/proxy/contracts/test/erc20/ERC20TransferWithoutReturn.sol b/contracts/test/erc20/ERC20TransferWithoutReturn.sol similarity index 100% rename from proxy/contracts/test/erc20/ERC20TransferWithoutReturn.sol rename to contracts/test/erc20/ERC20TransferWithoutReturn.sol diff --git a/proxy/contracts/test/erc20/ERC20WithoutTransfer.sol b/contracts/test/erc20/ERC20WithoutTransfer.sol similarity index 100% rename from proxy/contracts/test/erc20/ERC20WithoutTransfer.sol rename to contracts/test/erc20/ERC20WithoutTransfer.sol diff --git a/proxy/contracts/test/erc20/RevertableERC20.sol b/contracts/test/erc20/RevertableERC20.sol similarity index 100% rename from proxy/contracts/test/erc20/RevertableERC20.sol rename to contracts/test/erc20/RevertableERC20.sol diff --git a/proxy/contracts/thirdparty/ERC1155ReceiverUpgradeableWithoutGap.sol b/contracts/thirdparty/ERC1155ReceiverUpgradeableWithoutGap.sol similarity index 100% rename from proxy/contracts/thirdparty/ERC1155ReceiverUpgradeableWithoutGap.sol rename to contracts/thirdparty/ERC1155ReceiverUpgradeableWithoutGap.sol diff --git a/proxy/data/.keep b/data/.keep similarity index 100% rename from proxy/data/.keep rename to data/.keep diff --git a/proxy/gas/calculateGas.ts b/gas/calculateGas.ts similarity index 100% rename from proxy/gas/calculateGas.ts rename to gas/calculateGas.ts diff --git a/proxy/hardhat.config.ts b/hardhat.config.ts similarity index 100% rename from proxy/hardhat.config.ts rename to hardhat.config.ts diff --git a/proxy/migrations/changeManifest.ts b/migrations/changeManifest.ts similarity index 100% rename from proxy/migrations/changeManifest.ts rename to migrations/changeManifest.ts diff --git a/proxy/migrations/deployMainnet.ts b/migrations/deployMainnet.ts similarity index 100% rename from proxy/migrations/deployMainnet.ts rename to migrations/deployMainnet.ts diff --git a/proxy/migrations/deploySchain.ts b/migrations/deploySchain.ts similarity index 100% rename from proxy/migrations/deploySchain.ts rename to migrations/deploySchain.ts diff --git a/proxy/migrations/deploySkaleManagerComponents.ts b/migrations/deploySkaleManagerComponents.ts similarity index 100% rename from proxy/migrations/deploySkaleManagerComponents.ts rename to migrations/deploySkaleManagerComponents.ts diff --git a/proxy/migrations/generateManifest.ts b/migrations/generateManifest.ts similarity index 100% rename from proxy/migrations/generateManifest.ts rename to migrations/generateManifest.ts diff --git a/proxy/migrations/hotfixUpgrade.ts b/migrations/hotfixUpgrade.ts similarity index 100% rename from proxy/migrations/hotfixUpgrade.ts rename to migrations/hotfixUpgrade.ts diff --git a/proxy/migrations/submitTransactions.ts b/migrations/submitTransactions.ts similarity index 100% rename from proxy/migrations/submitTransactions.ts rename to migrations/submitTransactions.ts diff --git a/proxy/migrations/transferOwnership.ts b/migrations/transferOwnership.ts similarity index 100% rename from proxy/migrations/transferOwnership.ts rename to migrations/transferOwnership.ts diff --git a/proxy/migrations/upgradeMainnet.ts b/migrations/upgradeMainnet.ts similarity index 100% rename from proxy/migrations/upgradeMainnet.ts rename to migrations/upgradeMainnet.ts diff --git a/proxy/migrations/upgradeSchain.ts b/migrations/upgradeSchain.ts similarity index 100% rename from proxy/migrations/upgradeSchain.ts rename to migrations/upgradeSchain.ts diff --git a/package.json b/package.json index 9c973e494..45dd74230 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,63 @@ { - "name": "skale-ima", + "name": "skale-ima-proxy", "private": true, "license": "AGPL-3.0", "author": "SKALE Labs and contributors", "scripts": { - "lint-check": "eslint ./test/*.*js", - "lint-fix": "eslint ./test/*.*js --fix", - "postinstall": "./postinstall.sh", - "check-outdated": "yarn outdated", - "upgrade-to-latest": "yarn upgrade --latest" + "compile": "npx hardhat compile", + "cleanCompile": "npx hardhat clean && yarn compile", + "deploy-to-both-chains": "yarn deploy-to-mainnet && yarn deploy-to-schain", + "deploy-to-mainnet": "VERSION=$(cat ../VERSION) npx hardhat run migrations/deployMainnet.ts --network mainnet", + "deploy-to-schain": "VERSION=$(cat ../VERSION) npx hardhat run migrations/deploySchain.ts --network schain", + "deploy-skale-manager-components": "npx hardhat run migrations/deploySkaleManagerComponents.ts --network mainnet", + "eslint": "npx eslint .", + "lint": "npx solhint \"contracts/**/*.sol\"", + "prepare": "yarn cleanCompile", + "test": "yarn tsc && npx hardhat test", + "tsc": "tsc --noEmit", + "slither": "slither .", + "fullcheck": "yarn lint && yarn tsc && yarn eslint && yarn slither", + "hooks": "git config core.hooksPath proxy/.githooks", + "no-hooks": "git config core.hooksPath .git/hooks" + }, + "dependencies": { + "@nomiclabs/hardhat-ethers": "^2.1.0", + "@openzeppelin/contracts-upgradeable": "^4.7.1", + "@openzeppelin/hardhat-upgrades": "^1.14.0", + "@skalenetwork/etherbase-interfaces": "^0.0.1-develop.20", + "@skalenetwork/ima-interfaces": "2.0.0", + "@skalenetwork/skale-manager-interfaces": "2.0.0", + "@skalenetwork/upgrade-tools": "^2.0.2", + "axios": "^0.21.4", + "dotenv": "^16.0.0", + "ethers": "^5.7.2", + "hardhat": "2.11.0 - 2.16.1" }, - "dependencies": {}, "devDependencies": { - "eslint": "^6.8.0", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.20.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1" + "@nomiclabs/hardhat-etherscan": "^3.1.0", + "@nomiclabs/hardhat-waffle": "^2.0.2", + "@typechain/ethers-v5": "^11.1.1", + "@typechain/hardhat": "^7.0.0", + "@types/chai": "^4.2.12", + "@types/chai-almost": "^1.0.1", + "@types/chai-as-promised": "^7.1.3", + "@types/elliptic": "^6.4.14", + "@types/minimist": "^1.2.0", + "@types/mocha": "^9.1.0", + "@types/sinon-chai": "^3.2.5", + "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/parser": "^6.2.1", + "chai": "^4.2.0", + "chai-almost": "^1.0.1", + "chai-as-promised": "^7.1.1", + "eslint": "^8.46.0", + "ethereum-waffle": "^4.0.10", + "ganache": "7.9.2", + "solhint": "3.3.6", + "solidity-coverage": "^0.8.4", + "ts-generator": "^0.1.1", + "ts-node": "^8.10.2", + "typechain": "^8.3.1", + "typescript": "^5.1.6" } } diff --git a/proxy/predeployed/LICENSE b/predeployed/LICENSE similarity index 100% rename from proxy/predeployed/LICENSE rename to predeployed/LICENSE diff --git a/proxy/predeployed/MANIFEST.in b/predeployed/MANIFEST.in similarity index 100% rename from proxy/predeployed/MANIFEST.in rename to predeployed/MANIFEST.in diff --git a/proxy/predeployed/README.md b/predeployed/README.md similarity index 100% rename from proxy/predeployed/README.md rename to predeployed/README.md diff --git a/proxy/predeployed/src/ima_predeployed/__init__.py b/predeployed/build/lib/ima_predeployed/__init__.py similarity index 100% rename from proxy/predeployed/src/ima_predeployed/__init__.py rename to predeployed/build/lib/ima_predeployed/__init__.py diff --git a/predeployed/build/lib/ima_predeployed/addresses.py b/predeployed/build/lib/ima_predeployed/addresses.py new file mode 100644 index 000000000..dd22bf6c0 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/addresses.py @@ -0,0 +1,17 @@ +PROXY_ADMIN_ADDRESS = '0xd2aAa00000000000000000000000000000000000' +MESSAGE_PROXY_FOR_SCHAIN_ADDRESS = '0xd2AAa00100000000000000000000000000000000' +MESSAGE_PROXY_FOR_SCHAIN_IMPLEMENTATION_ADDRESS = '0xD2AAa001D2000000000000000000000000000000' +KEY_STORAGE_ADDRESS = '0xd2aaa00200000000000000000000000000000000' +KEY_STORAGE_IMPLEMENTATION_ADDRESS = '0xD2AAa002d2000000000000000000000000000000' +COMMUNITY_LOCKER_ADDRESS = '0xD2aaa00300000000000000000000000000000000' +COMMUNITY_LOCKER_IMPLEMENTATION_ADDRESS = '0xD2aaA003d2000000000000000000000000000000' +TOKEN_MANAGER_ETH_ADDRESS = '0xd2AaA00400000000000000000000000000000000' +TOKEN_MANAGER_ETH_IMPLEMENTATION_ADDRESS = '0xd2AaA004d2000000000000000000000000000000' +TOKEN_MANAGER_ERC20_ADDRESS = '0xD2aAA00500000000000000000000000000000000' +TOKEN_MANAGER_ERC20_IMPLEMENTATION_ADDRESS = '0xd2aAa005d2000000000000000000000000000000' +TOKEN_MANAGER_ERC721_ADDRESS = '0xD2aaa00600000000000000000000000000000000' +TOKEN_MANAGER_ERC721_IMPLEMENTATION_ADDRESS = '0xd2AAa006d2000000000000000000000000000000' +ETH_ERC20_ADDRESS = '0xD2Aaa00700000000000000000000000000000000' +ETH_ERC20_IMPLEMENTATION_ADDRESS = '0xD2aaA007d2000000000000000000000000000000' +TOKEN_MANAGER_LINKER_ADDRESS = '0xD2aAA00800000000000000000000000000000000' +TOKEN_MANAGER_LINKER_IMPLEMENTATION_ADDRESS = '0xd2aAA008D2000000000000000000000000000000' diff --git a/predeployed/build/lib/ima_predeployed/artifacts/AdminUpgradeabilityProxy.json b/predeployed/build/lib/ima_predeployed/artifacts/AdminUpgradeabilityProxy.json new file mode 100644 index 000000000..cda26649a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/AdminUpgradeabilityProxy.json @@ -0,0 +1,142 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AdminUpgradeabilityProxy", + "sourceName": "contracts/proxy/AdminUpgradeabilityProxy.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "changeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x60806040526040516108d23803806108d28339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b815260200180610897603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61062d8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220249c822daf23a4c4105d411560ffa6c4b3a5d68c227c3a6354de449e0b177f2264736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373", + "deployedBytecode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220249c822daf23a4c4105d411560ffa6c4b3a5d68c227c3a6354de449e0b177f2264736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.json b/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.json new file mode 100644 index 000000000..bde638388 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/CommunityLocker.json @@ -0,0 +1,432 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CommunityLocker", + "sourceName": "contracts/schain/CommunityLocker.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "schainHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "UserUnfrozed", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "checkAllowedToSendMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "communityPool", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newTokenManagerLinker", + "type": "address" + }, + { + "internalType": "address", + "name": "newCommunityPool", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newTimeLimitPerMessage", + "type": "uint256" + } + ], + "name": "setTimeLimitPerMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "timeLimitPerMessage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611494806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806350f44280116100ad57806391d148541161007157806391d1485414610222578063a217fddf14610235578063ca15c8731461023d578063d547741f14610250578063f34822b41461026357610121565b806350f44280146101ca5780635573b8b6146101df57806382fd8c96146101e7578063884cee5a146101ef5780639010d07c1461020f57610121565b80632dc151de116100f45780632dc151de146101815780632f2ff15d1461018957806336568abe1461019c5780633b690b6b146101af57806348ed32ef146101b757610121565b806314d140b014610126578063237c667a14610144578063248a9ca31461015957806328c5e18214610179575b600080fd5b61012e610276565b60405161013b9190610fb5565b60405180910390f35b610157610152366004610d1d565b610285565b005b61016c610167366004610d5c565b61039f565b60405161013b9190610fd4565b61016c6103b4565b61012e6103fd565b610157610197366004610d74565b61040c565b6101576101aa366004610d74565b610454565b61016c610496565b6101576101c5366004610d5c565b61049c565b6101d26104c8565b60405161013b9190610ff4565b61012e6104eb565b61016c6104fa565b6102026101fd366004610da3565b610500565b60405161013b9190610fc9565b61012e61021d366004610e27565b6106d3565b610202610230366004610d74565b6106f4565b61016c61070c565b61016c61024b366004610d5c565b610711565b61015761025e366004610d74565b610728565b610157610271366004610e63565b610762565b6067546001600160a01b031681565b6066546040516374a9e4c960e11b81526001600160a01b039091169063e953c992906102b5903390600401610fb5565b60206040518083038186803b1580156102cd57600080fd5b505afa1580156102e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103059190610d40565b506001600160a01b0381166000908152606a602052604090205460ff166103475760405162461bcd60e51b815260040161033e90611171565b60405180910390fd5b6069546001600160a01b0382166000908152606b6020526040902054429101106103835760405162461bcd60e51b815260040161033e906112c6565b6001600160a01b03166000908152606b60205260409020429055565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016103e49190610f99565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b60008281526033602052604090206002015461042a90610230610879565b6104465760405162461bcd60e51b815260040161033e90611069565b610450828261087d565b5050565b61045c610879565b6001600160a01b0316816001600160a01b03161461048c5760405162461bcd60e51b815260040161033e9061136d565b61045082826108e6565b60685481565b6104a76000336106f4565b6104c35760405162461bcd60e51b815260040161033e90611307565b606955565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b60695481565b6065546000906001600160a01b0316331461052d5760405162461bcd60e51b815260040161033e90611336565b6067546001600160a01b0385811691161461055a5760405162461bcd60e51b815260040161033e906111a8565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200161058a9190610f99565b6040516020818303038152906040528051906020012085146105be5760405162461bcd60e51b815260040161033e906110f9565b60006105ca848461094f565b9050600781600c8111156105da57fe5b146105f75760405162461bcd60e51b815260040161033e906111df565b6105ff610cca565b6106098585610990565b6040818101516020808401516001600160a01b03166000908152606a9091529190912054919250151560ff909116151514156106575760405162461bcd60e51b815260040161033e906110b8565b604081810151602080840180516001600160a01b03166000908152606a90925290839020805460ff191692151592909217909155606854905191517f9b5ddb8096e31e93e8cd35890fad3bf2e0f04807e5dfc83591847d5f08ffe1ce926106be9291610fdd565b60405180910390a15060019695505050505050565b60008281526033602052604081206106eb90836109d8565b90505b92915050565b60008281526033602052604081206106eb90836109e4565b600081565b60008181526033602052604081206106ee906109f9565b60008281526033602052604090206002015461074690610230610879565b61048c5760405162461bcd60e51b815260040161033e90611228565b600054610100900460ff168061077b575061077b610a04565b80610789575060005460ff16155b6107a55760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff161580156107d0576000805460ff1961ff0019909116610100171660011790555b6107d8610a15565b6107e3600033610446565b606580546001600160a01b038087166001600160a01b0319928316179092556066805492861692909116919091179055604051610824908690602001610f99565b60408051808303601f19018152919052805160209091012060685561012c606955606780546001600160a01b0319166001600160a01b0384161790558015610872576000805461ff00191690555b5050505050565b3390565b60008281526033602052604090206108959082610aa8565b15610450576108a2610879565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206108fe9082610abd565b156104505761090b610879565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008061095e83850185610d5c565b9050602081066109845761097c610977848381886113e3565b61094f565b9150506106ee565b61097c83850185610e48565b610998610cca565b60076109a4848461094f565b600c8111156109af57fe5b146109cc5760405162461bcd60e51b815260040161033e9061113a565b6106eb82840184610f21565b60006106eb8383610ad2565b60006106eb836001600160a01b038416610b17565b60006106ee82610b2f565b6000610a0f30610b33565b15905090565b600054610100900460ff1680610a2e5750610a2e610a04565b80610a3c575060005460ff16155b610a585760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff16158015610a83576000805460ff1961ff0019909116610100171660011790555b610a8b610b39565b610a93610b39565b8015610aa5576000805461ff00191690555b50565b60006106eb836001600160a01b038416610bba565b60006106eb836001600160a01b038416610c04565b81546000908210610af55760405162461bcd60e51b815260040161033e90611027565b826000018281548110610b0457fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b3b151590565b600054610100900460ff1680610b525750610b52610a04565b80610b60575060005460ff16155b610b7c5760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff16158015610a93576000805460ff1961ff0019909116610100171660011790558015610aa5576000805461ff001916905550565b6000610bc68383610b17565b610bfc575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106ee565b5060006106ee565b60008181526001830160205260408120548015610cc05783546000198083019190810190600090879083908110610c3757fe5b9060005260206000200154905080876000018481548110610c5457fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610c8457fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506106ee565b60009150506106ee565b6040518060600160405280610cdd610cf1565b815260006020820181905260409091015290565b60408051602081019091526000815290565b80356106ee8161143b565b8035600d81106106ee57600080fd5b600060208284031215610d2e578081fd5b8135610d398161143b565b9392505050565b600060208284031215610d51578081fd5b8151610d3981611450565b600060208284031215610d6d578081fd5b5035919050565b60008060408385031215610d86578081fd5b823591506020830135610d988161143b565b809150509250929050565b60008060008060608587031215610db8578182fd5b843593506020850135610dca8161143b565b9250604085013567ffffffffffffffff80821115610de6578384fd5b818701915087601f830112610df9578384fd5b813581811115610e07578485fd5b886020828501011115610e18578485fd5b95989497505060200194505050565b60008060408385031215610e39578182fd5b50508035926020909101359150565b600060208284031215610e59578081fd5b6106eb8383610d0e565b60008060008060808587031215610e78578384fd5b843567ffffffffffffffff80821115610e8f578586fd5b818701915087601f830112610ea2578586fd5b813581811115610eb0578687fd5b60209150610ec6601f8201601f191683016113bc565b8181528983838601011115610ed9578788fd5b8183850184830137908101820196909652610ef688888301610d03565b94505050610f078660408701610d03565b9150610f168660608701610d03565b905092959194509250565b60008183036060811215610f33578182fd5b610f3d60606113bc565b6020821215610f4a578283fd5b610f5460206113bc565b9150610f608585610d0e565b8252908152602083013590610f748261143b565b81602082015260408401359150610f8a82611450565b60408101919091529392505050565b60008251610fab81846020870161140b565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9182526001600160a01b0316602082015260400190565b600060208252825180602084015261101381604085016020870161140b565b601f01601f19169190910160400192915050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526021908201527f467265657a696e6720737461746573206d75737420626520646966666572656e6040820152601d60fa1b606082015260800190565b60208082526021908201527f536f7572636520636861696e206e616d65206d757374206265204d61696e6e656040820152601d60fa1b606082015260800190565b6020808252601f908201527f4d6573736167652074797065206973206e6f7420467265657a65205573657200604082015260600190565b6020808252601a908201527f526563697069656e74206d75737420626520756e66726f7a656e000000000000604082015260600190565b6020808252601c908201527f53656e646572206d75737420626520436f6d6d756e697479506f6f6c00000000604082015260600190565b60208082526029908201527f546865206d6573736167652073686f756c6420636f6e7461696e20612066726f6040820152687a656e20737461746560b81b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f547279696e6720746f2073656e64206d6573736167657320746f6f206f6674656040820152603760f91b606082015260800190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b6020808252601d908201527f53656e646572206973206e6f742061206d6573736167652070726f7879000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60405181810167ffffffffffffffff811182821017156113db57600080fd5b604052919050565b600080858511156113f2578182fd5b838611156113fe578182fd5b5050820193919092039150565b60005b8381101561142657818101518382015260200161140e565b83811115611435576000848401525b50505050565b6001600160a01b0381168114610aa557600080fd5b8015158114610aa557600080fdfea2646970667358221220a16be2dcea165d37c26d9bebb8c6ad17976baccf1a7ed1cbd6dc1de613a875bf64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806350f44280116100ad57806391d148541161007157806391d1485414610222578063a217fddf14610235578063ca15c8731461023d578063d547741f14610250578063f34822b41461026357610121565b806350f44280146101ca5780635573b8b6146101df57806382fd8c96146101e7578063884cee5a146101ef5780639010d07c1461020f57610121565b80632dc151de116100f45780632dc151de146101815780632f2ff15d1461018957806336568abe1461019c5780633b690b6b146101af57806348ed32ef146101b757610121565b806314d140b014610126578063237c667a14610144578063248a9ca31461015957806328c5e18214610179575b600080fd5b61012e610276565b60405161013b9190610fb5565b60405180910390f35b610157610152366004610d1d565b610285565b005b61016c610167366004610d5c565b61039f565b60405161013b9190610fd4565b61016c6103b4565b61012e6103fd565b610157610197366004610d74565b61040c565b6101576101aa366004610d74565b610454565b61016c610496565b6101576101c5366004610d5c565b61049c565b6101d26104c8565b60405161013b9190610ff4565b61012e6104eb565b61016c6104fa565b6102026101fd366004610da3565b610500565b60405161013b9190610fc9565b61012e61021d366004610e27565b6106d3565b610202610230366004610d74565b6106f4565b61016c61070c565b61016c61024b366004610d5c565b610711565b61015761025e366004610d74565b610728565b610157610271366004610e63565b610762565b6067546001600160a01b031681565b6066546040516374a9e4c960e11b81526001600160a01b039091169063e953c992906102b5903390600401610fb5565b60206040518083038186803b1580156102cd57600080fd5b505afa1580156102e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103059190610d40565b506001600160a01b0381166000908152606a602052604090205460ff166103475760405162461bcd60e51b815260040161033e90611171565b60405180910390fd5b6069546001600160a01b0382166000908152606b6020526040902054429101106103835760405162461bcd60e51b815260040161033e906112c6565b6001600160a01b03166000908152606b60205260409020429055565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016103e49190610f99565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b60008281526033602052604090206002015461042a90610230610879565b6104465760405162461bcd60e51b815260040161033e90611069565b610450828261087d565b5050565b61045c610879565b6001600160a01b0316816001600160a01b03161461048c5760405162461bcd60e51b815260040161033e9061136d565b61045082826108e6565b60685481565b6104a76000336106f4565b6104c35760405162461bcd60e51b815260040161033e90611307565b606955565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b60695481565b6065546000906001600160a01b0316331461052d5760405162461bcd60e51b815260040161033e90611336565b6067546001600160a01b0385811691161461055a5760405162461bcd60e51b815260040161033e906111a8565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200161058a9190610f99565b6040516020818303038152906040528051906020012085146105be5760405162461bcd60e51b815260040161033e906110f9565b60006105ca848461094f565b9050600781600c8111156105da57fe5b146105f75760405162461bcd60e51b815260040161033e906111df565b6105ff610cca565b6106098585610990565b6040818101516020808401516001600160a01b03166000908152606a9091529190912054919250151560ff909116151514156106575760405162461bcd60e51b815260040161033e906110b8565b604081810151602080840180516001600160a01b03166000908152606a90925290839020805460ff191692151592909217909155606854905191517f9b5ddb8096e31e93e8cd35890fad3bf2e0f04807e5dfc83591847d5f08ffe1ce926106be9291610fdd565b60405180910390a15060019695505050505050565b60008281526033602052604081206106eb90836109d8565b90505b92915050565b60008281526033602052604081206106eb90836109e4565b600081565b60008181526033602052604081206106ee906109f9565b60008281526033602052604090206002015461074690610230610879565b61048c5760405162461bcd60e51b815260040161033e90611228565b600054610100900460ff168061077b575061077b610a04565b80610789575060005460ff16155b6107a55760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff161580156107d0576000805460ff1961ff0019909116610100171660011790555b6107d8610a15565b6107e3600033610446565b606580546001600160a01b038087166001600160a01b0319928316179092556066805492861692909116919091179055604051610824908690602001610f99565b60408051808303601f19018152919052805160209091012060685561012c606955606780546001600160a01b0319166001600160a01b0384161790558015610872576000805461ff00191690555b5050505050565b3390565b60008281526033602052604090206108959082610aa8565b15610450576108a2610879565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206108fe9082610abd565b156104505761090b610879565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008061095e83850185610d5c565b9050602081066109845761097c610977848381886113e3565b61094f565b9150506106ee565b61097c83850185610e48565b610998610cca565b60076109a4848461094f565b600c8111156109af57fe5b146109cc5760405162461bcd60e51b815260040161033e9061113a565b6106eb82840184610f21565b60006106eb8383610ad2565b60006106eb836001600160a01b038416610b17565b60006106ee82610b2f565b6000610a0f30610b33565b15905090565b600054610100900460ff1680610a2e5750610a2e610a04565b80610a3c575060005460ff16155b610a585760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff16158015610a83576000805460ff1961ff0019909116610100171660011790555b610a8b610b39565b610a93610b39565b8015610aa5576000805461ff00191690555b50565b60006106eb836001600160a01b038416610bba565b60006106eb836001600160a01b038416610c04565b81546000908210610af55760405162461bcd60e51b815260040161033e90611027565b826000018281548110610b0457fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b3b151590565b600054610100900460ff1680610b525750610b52610a04565b80610b60575060005460ff16155b610b7c5760405162461bcd60e51b815260040161033e90611278565b600054610100900460ff16158015610a93576000805460ff1961ff0019909116610100171660011790558015610aa5576000805461ff001916905550565b6000610bc68383610b17565b610bfc575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106ee565b5060006106ee565b60008181526001830160205260408120548015610cc05783546000198083019190810190600090879083908110610c3757fe5b9060005260206000200154905080876000018481548110610c5457fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610c8457fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506106ee565b60009150506106ee565b6040518060600160405280610cdd610cf1565b815260006020820181905260409091015290565b60408051602081019091526000815290565b80356106ee8161143b565b8035600d81106106ee57600080fd5b600060208284031215610d2e578081fd5b8135610d398161143b565b9392505050565b600060208284031215610d51578081fd5b8151610d3981611450565b600060208284031215610d6d578081fd5b5035919050565b60008060408385031215610d86578081fd5b823591506020830135610d988161143b565b809150509250929050565b60008060008060608587031215610db8578182fd5b843593506020850135610dca8161143b565b9250604085013567ffffffffffffffff80821115610de6578384fd5b818701915087601f830112610df9578384fd5b813581811115610e07578485fd5b886020828501011115610e18578485fd5b95989497505060200194505050565b60008060408385031215610e39578182fd5b50508035926020909101359150565b600060208284031215610e59578081fd5b6106eb8383610d0e565b60008060008060808587031215610e78578384fd5b843567ffffffffffffffff80821115610e8f578586fd5b818701915087601f830112610ea2578586fd5b813581811115610eb0578687fd5b60209150610ec6601f8201601f191683016113bc565b8181528983838601011115610ed9578788fd5b8183850184830137908101820196909652610ef688888301610d03565b94505050610f078660408701610d03565b9150610f168660608701610d03565b905092959194509250565b60008183036060811215610f33578182fd5b610f3d60606113bc565b6020821215610f4a578283fd5b610f5460206113bc565b9150610f608585610d0e565b8252908152602083013590610f748261143b565b81602082015260408401359150610f8a82611450565b60408101919091529392505050565b60008251610fab81846020870161140b565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9182526001600160a01b0316602082015260400190565b600060208252825180602084015261101381604085016020870161140b565b601f01601f19169190910160400192915050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526021908201527f467265657a696e6720737461746573206d75737420626520646966666572656e6040820152601d60fa1b606082015260800190565b60208082526021908201527f536f7572636520636861696e206e616d65206d757374206265204d61696e6e656040820152601d60fa1b606082015260800190565b6020808252601f908201527f4d6573736167652074797065206973206e6f7420467265657a65205573657200604082015260600190565b6020808252601a908201527f526563697069656e74206d75737420626520756e66726f7a656e000000000000604082015260600190565b6020808252601c908201527f53656e646572206d75737420626520436f6d6d756e697479506f6f6c00000000604082015260600190565b60208082526029908201527f546865206d6573736167652073686f756c6420636f6e7461696e20612066726f6040820152687a656e20737461746560b81b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f547279696e6720746f2073656e64206d6573736167657320746f6f206f6674656040820152603760f91b606082015260800190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b6020808252601d908201527f53656e646572206973206e6f742061206d6573736167652070726f7879000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60405181810167ffffffffffffffff811182821017156113db57600080fd5b604052919050565b600080858511156113f2578182fd5b838611156113fe578182fd5b5050820193919092039150565b60005b8381101561142657818101518382015260200161140e565b83811115611435576000848401525b50505050565b6001600160a01b0381168114610aa557600080fd5b8015158114610aa557600080fdfea2646970667358221220a16be2dcea165d37c26d9bebb8c6ad17976baccf1a7ed1cbd6dc1de613a875bf64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.json new file mode 100644 index 000000000..0eb73d7ea --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC1155OnChain.json @@ -0,0 +1,677 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1155OnChain", + "sourceName": "contracts/schain/tokens/ERC1155OnChain.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "burnBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mintBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200381938038062003819833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052505050620001026200017360201b620017601760201c565b62000118816200023160201b620018121760201c565b6200012d620002fb60201b620018cd1760201c565b62000148600080516020620037f983398151915280620003a3565b6200016c600080516020620037f983398151915262000166620003f5565b620003f9565b5062000872565b600054610100900460ff16806200018f57506200018f62000405565b806200019e575060005460ff16155b620001db5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000207576000805460ff1961ff0019909116610100171660011790555b6200021162000423565b6200021b62000423565b80156200022e576000805461ff00191690555b50565b600054610100900460ff16806200024d57506200024d62000405565b806200025c575060005460ff16155b620002995760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff16158015620002c5576000805460ff1961ff0019909116610100171660011790555b620002cf62000423565b620002d9620004cb565b620002e48262000571565b8015620002f7576000805461ff00191690555b5050565b600054610100900460ff16806200031757506200031762000405565b8062000326575060005460ff16155b620003635760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200038f576000805460ff1961ff0019909116610100171660011790555b6200039962000423565b62000211620004cb565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620002f7828262000634565b60006200041d30620006af60201b6200196a1760201c565b15905090565b600054610100900460ff16806200043f57506200043f62000405565b806200044e575060005460ff16155b6200048b5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200021b576000805460ff1961ff00199091166101001716600117905580156200022e576000805461ff001916905550565b600054610100900460ff1680620004e75750620004e762000405565b80620004f6575060005460ff16155b620005335760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200055f576000805460ff1961ff0019909116610100171660011790555b6200021b6301ffc9a760e01b620006b5565b600054610100900460ff16806200058d57506200058d62000405565b806200059c575060005460ff16155b620005d95760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000605576000805460ff1961ff0019909116610100171660011790555b62000610826200073a565b62000622636cdb3d1360e11b620006b5565b620002e46303a24d0760e21b620006b5565b60008281526033602090815260409091206200065b918390620019706200074f821b17901c565b15620002f7576200066b620003f5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000715576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b8051620002f7906099906020840190620007d6565b600062000766836001600160a01b0384166200076f565b90505b92915050565b60006200077d8383620007be565b620007b55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000769565b50600062000769565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200081957805160ff191683800117855562000849565b8280016001018555821562000849579182015b82811115620008495782518255916020019190600101906200082c565b50620008579291506200085b565b5090565b5b808211156200085757600081556001016200085c565b612f4980620008826000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063731133e9116100b8578063ca15c8731161007c578063ca15c87314610a3d578063d539139314610a5a578063d547741f14610a62578063e985e9c514610a8e578063f242432a14610abc578063f5298aca14610b8557610136565b8063731133e9146108dc5780639010d07c1461099c57806391d14854146109db578063a217fddf14610a07578063a22cb46514610a0f57610136565b80632eb2c2d6116100ff5780632eb2c2d61461041d5780632f2ff15d146105de57806336568abe1461060a5780634e1273f4146106365780636b20c454146107a957610136565b8062fdd58e1461013b57806301ffc9a7146101795780630e89341c146101b45780631f7fdffa14610246578063248a9ca314610400575b600080fd5b6101676004803603604081101561015157600080fd5b506001600160a01b038135169060200135610bb7565b60408051918252519081900360200190f35b6101a06004803603602081101561018f57600080fd5b50356001600160e01b031916610c29565b604080519115158252519081900360200190f35b6101d1600480360360208110156101ca57600080fd5b5035610c48565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fe6004803603608081101561025c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561028657600080fd5b82018360208201111561029857600080fd5b803590602001918460208302840111600160201b831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561030857600080fd5b82018360208201111561031a57600080fd5b803590602001918460208302840111600160201b8311171561033b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561038a57600080fd5b82018360208201111561039c57600080fd5b803590602001918460018302840111600160201b831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b005b6101676004803603602081101561041657600080fd5b5035610d6d565b6103fe600480360360a081101561043357600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561046657600080fd5b82018360208201111561047857600080fd5b803590602001918460208302840111600160201b8311171561049957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156104e857600080fd5b8201836020820111156104fa57600080fd5b803590602001918460208302840111600160201b8311171561051b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460018302840111600160201b8311171561059d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d82945050505050565b6103fe600480360360408110156105f457600080fd5b50803590602001356001600160a01b0316611085565b6103fe6004803603604081101561062057600080fd5b50803590602001356001600160a01b03166110ec565b6107596004803603604081101561064c57600080fd5b810190602081018135600160201b81111561066657600080fd5b82018360208201111561067857600080fd5b803590602001918460208302840111600160201b8311171561069957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106e857600080fd5b8201836020820111156106fa57600080fd5b803590602001918460208302840111600160201b8311171561071b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061114d945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561079557818101518382015260200161077d565b505050509050019250505060405180910390f35b6103fe600480360360608110156107bf57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107e957600080fd5b8201836020820111156107fb57600080fd5b803590602001918460208302840111600160201b8311171561081c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561086b57600080fd5b82018360208201111561087d57600080fd5b803590602001918460208302840111600160201b8311171561089e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611239945050505050565b6103fe600480360360808110156108f257600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561092857600080fd5b82018360208201111561093a57600080fd5b803590602001918460018302840111600160201b8311171561095b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112b2945050505050565b6109bf600480360360408110156109b257600080fd5b5080359060200135611334565b604080516001600160a01b039092168252519081900360200190f35b6101a0600480360360408110156109f157600080fd5b50803590602001356001600160a01b0316611353565b61016761136b565b6103fe60048036036040811015610a2557600080fd5b506001600160a01b0381351690602001351515611370565b61016760048036036020811015610a5357600080fd5b503561145f565b610167611476565b6103fe60048036036040811015610a7857600080fd5b50803590602001356001600160a01b031661149a565b6101a060048036036040811015610aa457600080fd5b506001600160a01b03813581169160200135166114f3565b6103fe600480360360a0811015610ad257600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b1157600080fd5b820183602082011115610b2357600080fd5b803590602001918460018302840111600160201b83111715610b4457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611521945050505050565b6103fe60048036036060811015610b9b57600080fd5b506001600160a01b0381351690602081013590604001356116ec565b60006001600160a01b038316610bfe5760405162461bcd60e51b815260040180806020018281038252602b815260200180612cd0602b913960400191505060405180910390fd5b5060008181526097602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526065602052604090205460ff1690565b60998054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b50505050509050919050565b610d117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611353565b610d5b576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461198a565b50505050565b60009081526033602052604090206002015490565b8151835114610dc25760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6001600160a01b038416610e075760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b610e0f611985565b6001600160a01b0316856001600160a01b03161480610e3a5750610e3a85610e35611985565b6114f3565b610e755760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b6000610e7f611985565b9050610e8f81878787878761107d565b60005b8451811015610f95576000858281518110610ea957fe5b602002602001015190506000858381518110610ec157fe5b60200260200101519050610f2e816040518060600160405280602a8152602001612e20602a91396097600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b60008381526097602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610f659082611c76565b60009283526097602090815260408085206001600160a01b038c1686529091529092209190915550600101610e92565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561101b578181015183820152602001611003565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561105a578181015183820152602001611042565b5050505090500194505050505060405180910390a461107d818787878787611cd0565b505050505050565b6000828152603360205260409020600201546110a390610d0c611985565b6110de5760405162461bcd60e51b815260040180806020018281038252602f815260200180612ca1602f913960400191505060405180910390fd5b6110e88282611f4f565b5050565b6110f4611985565b6001600160a01b0316816001600160a01b0316146111435760405162461bcd60e51b815260040180806020018281038252602f815260200180612ee5602f913960400191505060405180910390fd5b6110e88282611fb8565b6060815183511461118f5760405162461bcd60e51b8152600401808060200182810382526029815260200180612e736029913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156111a957600080fd5b506040519080825280602002602001820160405280156111d3578160200160208202803683370190505b50905060005b8451811015611231576112128582815181106111f157fe5b602002602001015185838151811061120557fe5b6020026020010151610bb7565b82828151811061121e57fe5b60209081029190910101526001016111d9565b509392505050565b611241611985565b6001600160a01b0316836001600160a01b03161480611267575061126783610e35611985565b6112a25760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612021565b505050565b6112de7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611328576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461228f565b600082815260336020526040812061134c9083612390565b9392505050565b600082815260336020526040812061134c908361239c565b600081565b816001600160a01b0316611382611985565b6001600160a01b031614156113c85760405162461bcd60e51b8152600401808060200182810382526029815260200180612e4a6029913960400191505060405180910390fd5b80609860006113d5611985565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611419611985565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152603360205260408120610c23906123b1565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152603360205260409020600201546114b890610d0c611985565b6111435760405162461bcd60e51b8152600401808060200182810382526030815260200180612d486030913960400191505060405180910390fd5b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166115665760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b61156e611985565b6001600160a01b0316856001600160a01b03161480611594575061159485610e35611985565b6115cf5760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b60006115d9611985565b90506115f98187876115ea886123bc565b6115f3886123bc565b8761107d565b611640836040518060600160405280602a8152602001612e20602a913960008781526097602090815260408083206001600160a01b038d1684529091529020549190611bdf565b60008581526097602090815260408083206001600160a01b038b811685529252808320939093558716815220546116779084611c76565b60008581526097602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a461107d818787878787612400565b6116f4611985565b6001600160a01b0316836001600160a01b0316148061171a575061171a83610e35611985565b6117555760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612571565b600054610100900460ff168061177957506117796126a4565b80611787575060005460ff16155b6117c25760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117ed576000805460ff1961ff0019909116610100171660011790555b6117f56126b5565b6117fd6126b5565b801561180f576000805461ff00191690555b50565b600054610100900460ff168061182b575061182b6126a4565b80611839575060005460ff16155b6118745760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561189f576000805460ff1961ff0019909116610100171660011790555b6118a76126b5565b6118af612755565b6118b8826127f2565b80156110e8576000805461ff00191690555050565b600054610100900460ff16806118e657506118e66126a4565b806118f4575060005460ff16155b61192f5760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561195a576000805460ff1961ff0019909116610100171660011790555b6119626126b5565b6117f5612755565b3b151590565b600061134c836001600160a01b0384166128a8565b335b90565b6001600160a01b0384166119cf5760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b8151835114611a0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6000611a19611985565b9050611a2a8160008787878761107d565b60005b8451811015611aee57611aa560976000878481518110611a4957fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054858381518110611a8f57fe5b6020026020010151611c7690919063ffffffff16565b60976000878481518110611ab557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611a2d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b75578181015183820152602001611b5d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bb4578181015183820152602001611b9c565b5050505090500194505050505060405180910390a4611bd881600087878787611cd0565b5050505050565b60008184841115611c6e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c33578181015183820152602001611c1b565b50505050905090810190601f168015611c605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611ce2846001600160a01b031661196a565b1561107d57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d70578181015183820152602001611d58565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611daf578181015183820152602001611d97565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611e3d57600080fd5b505af1925050508015611e6257506040513d6020811015611e5d57600080fd5b505160015b611ef757611e6e612b7d565b80611e795750611ec0565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611c33578181015183820152602001611c1b565b60405162461bcd60e51b8152600401808060200182810382526034815260200180612c236034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b50505050505050565b6000828152603360205260409020611f679082611970565b156110e857611f74611985565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611fd090826128f2565b156110e857611fdd611985565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b0383166120665760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b80518251146120a65760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b60006120b0611985565b90506120d08185600086866040518060200160405280600081525061107d565b60005b83518110156121ae576121658382815181106120eb57fe5b6020026020010151604051806060016040528060248152602001612cfb602491396097600088868151811061211c57fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b6097600086848151811061217557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120d3565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561223557818101518382015260200161221d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561227457818101518382015260200161225c565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122d45760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b60006122de611985565b90506122f0816000876115ea886123bc565b60008481526097602090815260408083206001600160a01b038916845290915290205461231d9084611c76565b60008581526097602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611bd881600087878787612400565b600061134c8383612907565b600061134c836001600160a01b03841661296b565b6000610c2382612983565b6040805160018082528183019092526060918291906020808301908036833701905050905082816000815181106123ef57fe5b602090810291909101015292915050565b612412846001600160a01b031661196a565b1561107d57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124a1578181015183820152602001612489565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156124f157600080fd5b505af192505050801561251657506040513d602081101561251157600080fd5b505160015b61252257611e6e612b7d565b6001600160e01b0319811663f23a6e6160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b6001600160a01b0383166125b65760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b60006125c0611985565b90506125f0818560006125d2876123bc565b6125db876123bc565b6040518060200160405280600081525061107d565b61263782604051806060016040528060248152602001612cfb6024913960008681526097602090815260408083206001600160a01b038b1684529091529020549190611bdf565b60008481526097602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b60006126af3061196a565b15905090565b600054610100900460ff16806126ce57506126ce6126a4565b806126dc575060005460ff16155b6127175760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff001990911661010017166001179055801561180f576000805461ff001916905550565b600054610100900460ff168061276e575061276e6126a4565b8061277c575060005460ff16155b6127b75760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156127e2576000805460ff1961ff0019909116610100171660011790555b6117fd6301ffc9a760e01b612987565b600054610100900460ff168061280b575061280b6126a4565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288882612a0b565b612898636cdb3d1360e11b612987565b6118b86303a24d0760e21b612987565b60006128b4838361296b565b6128ea57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c23565b506000610c23565b600061134c836001600160a01b038416612a1e565b815460009082106129495760405162461bcd60e51b8152600401808060200182810382526022815260200180612c576022913960400191505060405180910390fd5b82600001828154811061295857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6001600160e01b031980821614156129e6576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b80516110e8906099906020840190612ae4565b60008181526001830160205260408120548015612ada5783546000198083019190810190600090879083908110612a5157fe5b9060005260206000200154905080876000018481548110612a6e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080612a9e57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c23565b6000915050610c23565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b2557805160ff1916838001178555612b52565b82800160010185558215612b52579182015b82811115612b52578251825591602001919060010190612b37565b50612b5e929150612b62565b5090565b5b80821115612b5e5760008155600101612b63565b60e01c90565b600060443d1015612b8d57611987565b600481823e6308c379a0612ba18251612b77565b14612bab57611987565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612bdb5750505050611987565b82840192508251915080821115612bf55750505050611987565b503d83016020828401011115612c0d57505050611987565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208082e80af5715fe3fac7824ad3b116a08ca0bb914f0d3fd373b87d6d3d635c7664736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c8063731133e9116100b8578063ca15c8731161007c578063ca15c87314610a3d578063d539139314610a5a578063d547741f14610a62578063e985e9c514610a8e578063f242432a14610abc578063f5298aca14610b8557610136565b8063731133e9146108dc5780639010d07c1461099c57806391d14854146109db578063a217fddf14610a07578063a22cb46514610a0f57610136565b80632eb2c2d6116100ff5780632eb2c2d61461041d5780632f2ff15d146105de57806336568abe1461060a5780634e1273f4146106365780636b20c454146107a957610136565b8062fdd58e1461013b57806301ffc9a7146101795780630e89341c146101b45780631f7fdffa14610246578063248a9ca314610400575b600080fd5b6101676004803603604081101561015157600080fd5b506001600160a01b038135169060200135610bb7565b60408051918252519081900360200190f35b6101a06004803603602081101561018f57600080fd5b50356001600160e01b031916610c29565b604080519115158252519081900360200190f35b6101d1600480360360208110156101ca57600080fd5b5035610c48565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fe6004803603608081101561025c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561028657600080fd5b82018360208201111561029857600080fd5b803590602001918460208302840111600160201b831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561030857600080fd5b82018360208201111561031a57600080fd5b803590602001918460208302840111600160201b8311171561033b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561038a57600080fd5b82018360208201111561039c57600080fd5b803590602001918460018302840111600160201b831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b005b6101676004803603602081101561041657600080fd5b5035610d6d565b6103fe600480360360a081101561043357600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561046657600080fd5b82018360208201111561047857600080fd5b803590602001918460208302840111600160201b8311171561049957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156104e857600080fd5b8201836020820111156104fa57600080fd5b803590602001918460208302840111600160201b8311171561051b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460018302840111600160201b8311171561059d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d82945050505050565b6103fe600480360360408110156105f457600080fd5b50803590602001356001600160a01b0316611085565b6103fe6004803603604081101561062057600080fd5b50803590602001356001600160a01b03166110ec565b6107596004803603604081101561064c57600080fd5b810190602081018135600160201b81111561066657600080fd5b82018360208201111561067857600080fd5b803590602001918460208302840111600160201b8311171561069957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106e857600080fd5b8201836020820111156106fa57600080fd5b803590602001918460208302840111600160201b8311171561071b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061114d945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561079557818101518382015260200161077d565b505050509050019250505060405180910390f35b6103fe600480360360608110156107bf57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107e957600080fd5b8201836020820111156107fb57600080fd5b803590602001918460208302840111600160201b8311171561081c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561086b57600080fd5b82018360208201111561087d57600080fd5b803590602001918460208302840111600160201b8311171561089e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611239945050505050565b6103fe600480360360808110156108f257600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561092857600080fd5b82018360208201111561093a57600080fd5b803590602001918460018302840111600160201b8311171561095b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112b2945050505050565b6109bf600480360360408110156109b257600080fd5b5080359060200135611334565b604080516001600160a01b039092168252519081900360200190f35b6101a0600480360360408110156109f157600080fd5b50803590602001356001600160a01b0316611353565b61016761136b565b6103fe60048036036040811015610a2557600080fd5b506001600160a01b0381351690602001351515611370565b61016760048036036020811015610a5357600080fd5b503561145f565b610167611476565b6103fe60048036036040811015610a7857600080fd5b50803590602001356001600160a01b031661149a565b6101a060048036036040811015610aa457600080fd5b506001600160a01b03813581169160200135166114f3565b6103fe600480360360a0811015610ad257600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b1157600080fd5b820183602082011115610b2357600080fd5b803590602001918460018302840111600160201b83111715610b4457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611521945050505050565b6103fe60048036036060811015610b9b57600080fd5b506001600160a01b0381351690602081013590604001356116ec565b60006001600160a01b038316610bfe5760405162461bcd60e51b815260040180806020018281038252602b815260200180612cd0602b913960400191505060405180910390fd5b5060008181526097602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526065602052604090205460ff1690565b60998054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b50505050509050919050565b610d117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611353565b610d5b576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461198a565b50505050565b60009081526033602052604090206002015490565b8151835114610dc25760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6001600160a01b038416610e075760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b610e0f611985565b6001600160a01b0316856001600160a01b03161480610e3a5750610e3a85610e35611985565b6114f3565b610e755760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b6000610e7f611985565b9050610e8f81878787878761107d565b60005b8451811015610f95576000858281518110610ea957fe5b602002602001015190506000858381518110610ec157fe5b60200260200101519050610f2e816040518060600160405280602a8152602001612e20602a91396097600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b60008381526097602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610f659082611c76565b60009283526097602090815260408085206001600160a01b038c1686529091529092209190915550600101610e92565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561101b578181015183820152602001611003565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561105a578181015183820152602001611042565b5050505090500194505050505060405180910390a461107d818787878787611cd0565b505050505050565b6000828152603360205260409020600201546110a390610d0c611985565b6110de5760405162461bcd60e51b815260040180806020018281038252602f815260200180612ca1602f913960400191505060405180910390fd5b6110e88282611f4f565b5050565b6110f4611985565b6001600160a01b0316816001600160a01b0316146111435760405162461bcd60e51b815260040180806020018281038252602f815260200180612ee5602f913960400191505060405180910390fd5b6110e88282611fb8565b6060815183511461118f5760405162461bcd60e51b8152600401808060200182810382526029815260200180612e736029913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156111a957600080fd5b506040519080825280602002602001820160405280156111d3578160200160208202803683370190505b50905060005b8451811015611231576112128582815181106111f157fe5b602002602001015185838151811061120557fe5b6020026020010151610bb7565b82828151811061121e57fe5b60209081029190910101526001016111d9565b509392505050565b611241611985565b6001600160a01b0316836001600160a01b03161480611267575061126783610e35611985565b6112a25760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612021565b505050565b6112de7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611328576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461228f565b600082815260336020526040812061134c9083612390565b9392505050565b600082815260336020526040812061134c908361239c565b600081565b816001600160a01b0316611382611985565b6001600160a01b031614156113c85760405162461bcd60e51b8152600401808060200182810382526029815260200180612e4a6029913960400191505060405180910390fd5b80609860006113d5611985565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611419611985565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152603360205260408120610c23906123b1565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152603360205260409020600201546114b890610d0c611985565b6111435760405162461bcd60e51b8152600401808060200182810382526030815260200180612d486030913960400191505060405180910390fd5b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166115665760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b61156e611985565b6001600160a01b0316856001600160a01b03161480611594575061159485610e35611985565b6115cf5760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b60006115d9611985565b90506115f98187876115ea886123bc565b6115f3886123bc565b8761107d565b611640836040518060600160405280602a8152602001612e20602a913960008781526097602090815260408083206001600160a01b038d1684529091529020549190611bdf565b60008581526097602090815260408083206001600160a01b038b811685529252808320939093558716815220546116779084611c76565b60008581526097602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a461107d818787878787612400565b6116f4611985565b6001600160a01b0316836001600160a01b0316148061171a575061171a83610e35611985565b6117555760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612571565b600054610100900460ff168061177957506117796126a4565b80611787575060005460ff16155b6117c25760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117ed576000805460ff1961ff0019909116610100171660011790555b6117f56126b5565b6117fd6126b5565b801561180f576000805461ff00191690555b50565b600054610100900460ff168061182b575061182b6126a4565b80611839575060005460ff16155b6118745760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561189f576000805460ff1961ff0019909116610100171660011790555b6118a76126b5565b6118af612755565b6118b8826127f2565b80156110e8576000805461ff00191690555050565b600054610100900460ff16806118e657506118e66126a4565b806118f4575060005460ff16155b61192f5760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561195a576000805460ff1961ff0019909116610100171660011790555b6119626126b5565b6117f5612755565b3b151590565b600061134c836001600160a01b0384166128a8565b335b90565b6001600160a01b0384166119cf5760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b8151835114611a0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6000611a19611985565b9050611a2a8160008787878761107d565b60005b8451811015611aee57611aa560976000878481518110611a4957fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054858381518110611a8f57fe5b6020026020010151611c7690919063ffffffff16565b60976000878481518110611ab557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611a2d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b75578181015183820152602001611b5d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bb4578181015183820152602001611b9c565b5050505090500194505050505060405180910390a4611bd881600087878787611cd0565b5050505050565b60008184841115611c6e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c33578181015183820152602001611c1b565b50505050905090810190601f168015611c605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611ce2846001600160a01b031661196a565b1561107d57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d70578181015183820152602001611d58565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611daf578181015183820152602001611d97565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611e3d57600080fd5b505af1925050508015611e6257506040513d6020811015611e5d57600080fd5b505160015b611ef757611e6e612b7d565b80611e795750611ec0565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611c33578181015183820152602001611c1b565b60405162461bcd60e51b8152600401808060200182810382526034815260200180612c236034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b50505050505050565b6000828152603360205260409020611f679082611970565b156110e857611f74611985565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611fd090826128f2565b156110e857611fdd611985565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b0383166120665760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b80518251146120a65760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b60006120b0611985565b90506120d08185600086866040518060200160405280600081525061107d565b60005b83518110156121ae576121658382815181106120eb57fe5b6020026020010151604051806060016040528060248152602001612cfb602491396097600088868151811061211c57fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b6097600086848151811061217557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120d3565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561223557818101518382015260200161221d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561227457818101518382015260200161225c565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122d45760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b60006122de611985565b90506122f0816000876115ea886123bc565b60008481526097602090815260408083206001600160a01b038916845290915290205461231d9084611c76565b60008581526097602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611bd881600087878787612400565b600061134c8383612907565b600061134c836001600160a01b03841661296b565b6000610c2382612983565b6040805160018082528183019092526060918291906020808301908036833701905050905082816000815181106123ef57fe5b602090810291909101015292915050565b612412846001600160a01b031661196a565b1561107d57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124a1578181015183820152602001612489565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156124f157600080fd5b505af192505050801561251657506040513d602081101561251157600080fd5b505160015b61252257611e6e612b7d565b6001600160e01b0319811663f23a6e6160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b6001600160a01b0383166125b65760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b60006125c0611985565b90506125f0818560006125d2876123bc565b6125db876123bc565b6040518060200160405280600081525061107d565b61263782604051806060016040528060248152602001612cfb6024913960008681526097602090815260408083206001600160a01b038b1684529091529020549190611bdf565b60008481526097602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b60006126af3061196a565b15905090565b600054610100900460ff16806126ce57506126ce6126a4565b806126dc575060005460ff16155b6127175760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff001990911661010017166001179055801561180f576000805461ff001916905550565b600054610100900460ff168061276e575061276e6126a4565b8061277c575060005460ff16155b6127b75760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156127e2576000805460ff1961ff0019909116610100171660011790555b6117fd6301ffc9a760e01b612987565b600054610100900460ff168061280b575061280b6126a4565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288882612a0b565b612898636cdb3d1360e11b612987565b6118b86303a24d0760e21b612987565b60006128b4838361296b565b6128ea57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c23565b506000610c23565b600061134c836001600160a01b038416612a1e565b815460009082106129495760405162461bcd60e51b8152600401808060200182810382526022815260200180612c576022913960400191505060405180910390fd5b82600001828154811061295857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6001600160e01b031980821614156129e6576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b80516110e8906099906020840190612ae4565b60008181526001830160205260408120548015612ada5783546000198083019190810190600090879083908110612a5157fe5b9060005260206000200154905080876000018481548110612a6e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080612a9e57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c23565b6000915050610c23565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b2557805160ff1916838001178555612b52565b82800160010185558215612b52579182015b82811115612b52578251825591602001919060010190612b37565b50612b5e929150612b62565b5090565b5b80821115612b5e5760008155600101612b63565b60e01c90565b600060443d1015612b8d57611987565b600481823e6308c379a0612ba18251612b77565b14612bab57611987565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612bdb5750505050611987565b82840192508251915080821115612bf55750505050611987565b503d83016020828401011115612c0d57505050611987565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208082e80af5715fe3fac7824ad3b116a08ca0bb914f0d3fd373b87d6d3d635c7664736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.json new file mode 100644 index 000000000..3c0b7f0ee --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC20OnChain.json @@ -0,0 +1,587 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20OnChain", + "sourceName": "contracts/schain/tokens/ERC20OnChain.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "contractName", + "type": "string" + }, + { + "internalType": "string", + "name": "contractSymbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200206638038062002066833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b62000a681760201c565b620001cb8282620002e560201b62000b191760201c565b620001e06200022760201b62000a681760201c565b620001fb6000805160206200204683398151915280620003a7565b6200021f6000805160206200204683398151915262000219620003f9565b620003fd565b50506200075b565b600054610100900460ff1680620002435750620002436200040d565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c56200042b565b620002cf6200042b565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff1680620003015750620003016200040d565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b620003836200042b565b6200038f8383620004d3565b8015620003a2576000805461ff00191690555b505050565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004098282620005b7565b5050565b600062000425306200063260201b62000bce1760201c565b15905090565b600054610100900460ff1680620004475750620004476200040d565b8062000456575060005460ff16155b620004935760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620004ef5750620004ef6200040d565b80620004fe575060005460ff16155b6200053b5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000567576000805460ff1961ff0019909116610100171660011790555b82516200057c906068906020860190620006bf565b50815162000592906069906020850190620006bf565b50606a805460ff191660121790558015620003a2576000805461ff0019169055505050565b6000828152603360209081526040909120620005de91839062000bd462000638821b17901c565b156200040957620005ee620003f9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b60006200064f836001600160a01b03841662000658565b90505b92915050565b6000620006668383620006a7565b6200069e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000652565b50600062000652565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200070257805160ff191683800117855562000732565b8280016001018555821562000732579182015b828111156200073257825182559160200191906001019062000715565b506200074092915062000744565b5090565b5b8082111562000740576000815560010162000745565b6118ad806200076b6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d714610436578063a9059cbb14610462578063ca15c8731461048e578063d5391393146104ab578063d547741f146104b3578063dd62ed3e146104df5761014d565b806370a082311461036957806379cc67901461038f5780639010d07c146103bb57806391d14854146103fa57806395d89b4114610426578063a217fddf1461042e5761014d565b80632f2ff15d116101155780632f2ff15d1461027c578063313ce567146102aa57806336568abe146102c857806339509351146102f457806340c10f191461032057806342966c681461034c5761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063248a9ca31461025f575b600080fd5b61015a61050d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356105a3565b604080519115158252519081900360200190f35b6102176105c1565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b038135811691602081013590911690604001356105c7565b6102176004803603602081101561027557600080fd5b503561064e565b6102a86004803603604081101561029257600080fd5b50803590602001356001600160a01b0316610663565b005b6102b26106cf565b6040805160ff9092168252519081900360200190f35b6102a8600480360360408110156102de57600080fd5b50803590602001356001600160a01b03166106d8565b6101fb6004803603604081101561030a57600080fd5b506001600160a01b038135169060200135610739565b6102a86004803603604081101561033657600080fd5b506001600160a01b038135169060200135610787565b6102a86004803603602081101561036257600080fd5b5035610807565b6102176004803603602081101561037f57600080fd5b50356001600160a01b031661081b565b6102a8600480360360408110156103a557600080fd5b506001600160a01b038135169060200135610836565b6103de600480360360408110156103d157600080fd5b5080359060200135610890565b604080516001600160a01b039092168252519081900360200190f35b6101fb6004803603604081101561041057600080fd5b50803590602001356001600160a01b03166108af565b61015a6108c7565b610217610928565b6101fb6004803603604081101561044c57600080fd5b506001600160a01b03813516906020013561092d565b6101fb6004803603604081101561047857600080fd5b506001600160a01b038135169060200135610995565b610217600480360360208110156104a457600080fd5b50356109a9565b6102176109c0565b6102a8600480360360408110156104c957600080fd5b50803590602001356001600160a01b03166109e4565b610217600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610a3d565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b60006105b76105b0610be9565b8484610bed565b5060015b92915050565b60675490565b60006105d4848484610cd9565b610644846105e0610be9565b61063f8560405180606001604052806028815260200161176e602891396001600160a01b038a1660009081526066602052604081209061061e610be9565b6001600160a01b031681526020810191909152604001600020549190610e36565b610bed565b5060019392505050565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461068690610681610be9565b6108af565b6106c15760405162461bcd60e51b815260040180806020018281038252602f815260200180611677602f913960400191505060405180910390fd5b6106cb8282610ecd565b5050565b606a5460ff1690565b6106e0610be9565b6001600160a01b0316816001600160a01b03161461072f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611849602f913960400191505060405180910390fd5b6106cb8282610f36565b60006105b7610746610be9565b8461063f8560666000610757610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f9f565b6107b37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610681610be9565b6107fd576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b6106cb8282610ff9565b610818610812610be9565b826110eb565b50565b6001600160a01b031660009081526065602052604090205490565b600061086d826040518060600160405280602481526020016117966024913961086686610861610be9565b610a3d565b9190610e36565b90506108818361087b610be9565b83610bed565b61088b83836110eb565b505050565b60008281526033602052604081206108a890836111e7565b9392505050565b60008281526033602052604081206108a890836111f3565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b600081565b60006105b761093a610be9565b8461063f856040518060600160405280602581526020016118246025913960666000610964610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e36565b60006105b76109a2610be9565b8484610cd9565b60008181526033602052604081206105bb90611208565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610a0290610681610be9565b61072f5760405162461bcd60e51b81526004018080602001828103825260308152602001806117106030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff1680610a815750610a81611213565b80610a8f575060005460ff16155b610aca5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610af5576000805460ff1961ff0019909116610100171660011790555b610afd611224565b610b05611224565b8015610818576000805461ff001916905550565b600054610100900460ff1680610b325750610b32611213565b80610b40575060005460ff16155b610b7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba6576000805460ff1961ff0019909116610100171660011790555b610bae611224565b610bb883836112c4565b801561088b576000805461ff0019169055505050565b3b151590565b60006108a8836001600160a01b03841661139c565b3390565b6001600160a01b038316610c325760405162461bcd60e51b81526004018080602001828103825260248152602001806118006024913960400191505060405180910390fd5b6001600160a01b038216610c775760405162461bcd60e51b81526004018080602001828103825260228152602001806116c86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d1e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117db6025913960400191505060405180910390fd5b6001600160a01b038216610d635760405162461bcd60e51b81526004018080602001828103825260238152602001806116546023913960400191505060405180910390fd5b610d6e83838361088b565b610dab816040518060600160405280602681526020016116ea602691396001600160a01b0386166000908152606560205260409020549190610e36565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610dda9082610f9f565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ec55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e8a578181015183820152602001610e72565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152603360205260409020610ee59082610bd4565b156106cb57610ef2610be9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610f4e90826113e6565b156106cb57610f5b610be9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156108a8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611054576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6110606000838361088b565b60675461106d9082610f9f565b6067556001600160a01b0382166000908152606560205260409020546110939082610f9f565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166111305760405162461bcd60e51b81526004018080602001828103825260218152602001806117ba6021913960400191505060405180910390fd5b61113c8260008361088b565b611179816040518060600160405280602281526020016116a6602291396001600160a01b0385166000908152606560205260409020549190610e36565b6001600160a01b03831660009081526065602052604090205560675461119f90826113fb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006108a88383611458565b60006108a8836001600160a01b0384166114bc565b60006105bb826114d4565b600061121e30610bce565b15905090565b600054610100900460ff168061123d575061123d611213565b8061124b575060005460ff16155b6112865760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610b05576000805460ff1961ff0019909116610100171660011790558015610818576000805461ff001916905550565b600054610100900460ff16806112dd57506112dd611213565b806112eb575060005460ff16155b6113265760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015611351576000805460ff1961ff0019909116610100171660011790555b825161136490606890602086019061159e565b50815161137890606990602085019061159e565b50606a805460ff19166012179055801561088b576000805461ff0019169055505050565b60006113a883836114bc565b6113de575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105bb565b5060006105bb565b60006108a8836001600160a01b0384166114d8565b600082821115611452576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061149a5760405162461bcd60e51b81526004018080602001828103825260228152602001806116326022913960400191505060405180910390fd5b8260000182815481106114a957fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015611594578354600019808301919081019060009087908390811061150b57fe5b906000526020600020015490508087600001848154811061152857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061155857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105bb565b60009150506105bb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115df57805160ff191683800117855561160c565b8280016001018555821561160c579182015b8281111561160c5782518255916020019190600101906115f1565b5061161892915061161c565b5090565b5b80821115611618576000815560010161161d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220f5fd5b9f427fa0188f9574676da4de58e3fd195487cc5f2ba14cd5cbd4d68d2464736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d714610436578063a9059cbb14610462578063ca15c8731461048e578063d5391393146104ab578063d547741f146104b3578063dd62ed3e146104df5761014d565b806370a082311461036957806379cc67901461038f5780639010d07c146103bb57806391d14854146103fa57806395d89b4114610426578063a217fddf1461042e5761014d565b80632f2ff15d116101155780632f2ff15d1461027c578063313ce567146102aa57806336568abe146102c857806339509351146102f457806340c10f191461032057806342966c681461034c5761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063248a9ca31461025f575b600080fd5b61015a61050d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356105a3565b604080519115158252519081900360200190f35b6102176105c1565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b038135811691602081013590911690604001356105c7565b6102176004803603602081101561027557600080fd5b503561064e565b6102a86004803603604081101561029257600080fd5b50803590602001356001600160a01b0316610663565b005b6102b26106cf565b6040805160ff9092168252519081900360200190f35b6102a8600480360360408110156102de57600080fd5b50803590602001356001600160a01b03166106d8565b6101fb6004803603604081101561030a57600080fd5b506001600160a01b038135169060200135610739565b6102a86004803603604081101561033657600080fd5b506001600160a01b038135169060200135610787565b6102a86004803603602081101561036257600080fd5b5035610807565b6102176004803603602081101561037f57600080fd5b50356001600160a01b031661081b565b6102a8600480360360408110156103a557600080fd5b506001600160a01b038135169060200135610836565b6103de600480360360408110156103d157600080fd5b5080359060200135610890565b604080516001600160a01b039092168252519081900360200190f35b6101fb6004803603604081101561041057600080fd5b50803590602001356001600160a01b03166108af565b61015a6108c7565b610217610928565b6101fb6004803603604081101561044c57600080fd5b506001600160a01b03813516906020013561092d565b6101fb6004803603604081101561047857600080fd5b506001600160a01b038135169060200135610995565b610217600480360360208110156104a457600080fd5b50356109a9565b6102176109c0565b6102a8600480360360408110156104c957600080fd5b50803590602001356001600160a01b03166109e4565b610217600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610a3d565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b60006105b76105b0610be9565b8484610bed565b5060015b92915050565b60675490565b60006105d4848484610cd9565b610644846105e0610be9565b61063f8560405180606001604052806028815260200161176e602891396001600160a01b038a1660009081526066602052604081209061061e610be9565b6001600160a01b031681526020810191909152604001600020549190610e36565b610bed565b5060019392505050565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461068690610681610be9565b6108af565b6106c15760405162461bcd60e51b815260040180806020018281038252602f815260200180611677602f913960400191505060405180910390fd5b6106cb8282610ecd565b5050565b606a5460ff1690565b6106e0610be9565b6001600160a01b0316816001600160a01b03161461072f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611849602f913960400191505060405180910390fd5b6106cb8282610f36565b60006105b7610746610be9565b8461063f8560666000610757610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f9f565b6107b37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610681610be9565b6107fd576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b6106cb8282610ff9565b610818610812610be9565b826110eb565b50565b6001600160a01b031660009081526065602052604090205490565b600061086d826040518060600160405280602481526020016117966024913961086686610861610be9565b610a3d565b9190610e36565b90506108818361087b610be9565b83610bed565b61088b83836110eb565b505050565b60008281526033602052604081206108a890836111e7565b9392505050565b60008281526033602052604081206108a890836111f3565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b600081565b60006105b761093a610be9565b8461063f856040518060600160405280602581526020016118246025913960666000610964610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e36565b60006105b76109a2610be9565b8484610cd9565b60008181526033602052604081206105bb90611208565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610a0290610681610be9565b61072f5760405162461bcd60e51b81526004018080602001828103825260308152602001806117106030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff1680610a815750610a81611213565b80610a8f575060005460ff16155b610aca5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610af5576000805460ff1961ff0019909116610100171660011790555b610afd611224565b610b05611224565b8015610818576000805461ff001916905550565b600054610100900460ff1680610b325750610b32611213565b80610b40575060005460ff16155b610b7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba6576000805460ff1961ff0019909116610100171660011790555b610bae611224565b610bb883836112c4565b801561088b576000805461ff0019169055505050565b3b151590565b60006108a8836001600160a01b03841661139c565b3390565b6001600160a01b038316610c325760405162461bcd60e51b81526004018080602001828103825260248152602001806118006024913960400191505060405180910390fd5b6001600160a01b038216610c775760405162461bcd60e51b81526004018080602001828103825260228152602001806116c86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d1e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117db6025913960400191505060405180910390fd5b6001600160a01b038216610d635760405162461bcd60e51b81526004018080602001828103825260238152602001806116546023913960400191505060405180910390fd5b610d6e83838361088b565b610dab816040518060600160405280602681526020016116ea602691396001600160a01b0386166000908152606560205260409020549190610e36565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610dda9082610f9f565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ec55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e8a578181015183820152602001610e72565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152603360205260409020610ee59082610bd4565b156106cb57610ef2610be9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610f4e90826113e6565b156106cb57610f5b610be9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156108a8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611054576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6110606000838361088b565b60675461106d9082610f9f565b6067556001600160a01b0382166000908152606560205260409020546110939082610f9f565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166111305760405162461bcd60e51b81526004018080602001828103825260218152602001806117ba6021913960400191505060405180910390fd5b61113c8260008361088b565b611179816040518060600160405280602281526020016116a6602291396001600160a01b0385166000908152606560205260409020549190610e36565b6001600160a01b03831660009081526065602052604090205560675461119f90826113fb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006108a88383611458565b60006108a8836001600160a01b0384166114bc565b60006105bb826114d4565b600061121e30610bce565b15905090565b600054610100900460ff168061123d575061123d611213565b8061124b575060005460ff16155b6112865760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610b05576000805460ff1961ff0019909116610100171660011790558015610818576000805461ff001916905550565b600054610100900460ff16806112dd57506112dd611213565b806112eb575060005460ff16155b6113265760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015611351576000805460ff1961ff0019909116610100171660011790555b825161136490606890602086019061159e565b50815161137890606990602085019061159e565b50606a805460ff19166012179055801561088b576000805461ff0019169055505050565b60006113a883836114bc565b6113de575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105bb565b5060006105bb565b60006108a8836001600160a01b0384166114d8565b600082821115611452576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061149a5760405162461bcd60e51b81526004018080602001828103825260228152602001806116326022913960400191505060405180910390fd5b8260000182815481106114a957fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015611594578354600019808301919081019060009087908390811061150b57fe5b906000526020600020015490508087600001848154811061152857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061155857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105bb565b60009150506105bb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115df57805160ff191683800117855561160c565b8280016001018555821561160c579182015b8281111561160c5782518255916020019190600101906115f1565b5061161892915061161c565b5090565b5b80821115611618576000815560010161161d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220f5fd5b9f427fa0188f9574676da4de58e3fd195487cc5f2ba14cd5cbd4d68d2464736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.json b/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.json new file mode 100644 index 000000000..293d82b2b --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ERC721OnChain.json @@ -0,0 +1,722 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC721OnChain", + "sourceName": "contracts/schain/tokens/ERC721OnChain.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "contractName", + "type": "string" + }, + { + "internalType": "string", + "name": "contractSymbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "tokenUri", + "type": "string" + } + ], + "name": "setTokenURI", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200344538038062003445833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b620012c81760201c565b620001cb8282620002e560201b620013791760201c565b620001e0620003b160201b620014361760201c565b620001fb600080516020620034258339815191528062000459565b6200021f6000805160206200342583398151915262000219620004ab565b620004af565b50506200094a565b600054610100900460ff168062000243575062000243620004bf565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c5620004dd565b620002cf620004dd565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff168062000301575062000301620004bf565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b62000383620004dd565b6200038d62000585565b6200039983836200062b565b8015620003ac576000805461ff00191690555b505050565b600054610100900460ff1680620003cd5750620003cd620004bf565b80620003dc575060005460ff16155b620004195760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000445576000805460ff1961ff0019909116610100171660011790555b6200044f620004dd565b620002c562000585565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004bb828262000721565b5050565b6000620004d7306200079c60201b620014d31760201c565b15905090565b600054610100900460ff1680620004f95750620004f9620004bf565b8062000508575060005460ff16155b620005455760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620005a15750620005a1620004bf565b80620005b0575060005460ff16155b620005ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000619576000805460ff1961ff0019909116610100171660011790555b620002cf6301ffc9a760e01b620007a2565b600054610100900460ff168062000647575062000647620004bf565b8062000656575060005460ff16155b620006935760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620006bf576000805460ff1961ff0019909116610100171660011790555b8251620006d490609c906020860190620008ae565b508151620006ea90609d906020850190620008ae565b50620006fd6380ac58cd60e01b620007a2565b6200070f635b5e139f60e01b620007a2565b6200039963780e9d6360e01b620007a2565b600082815260336020908152604090912062000748918390620014d962000827821b17901c565b15620004bb5762000758620004ab565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000802576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b60006200083e836001600160a01b03841662000847565b90505b92915050565b600062000855838362000896565b6200088d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000841565b50600062000841565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008f157805160ff191683800117855562000921565b8280016001018555821562000921579182015b828111156200092157825182559160200191906001019062000904565b506200092f92915062000933565b5090565b5b808211156200092f576000815560010162000934565b612a9d806200095a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634f6ccce711610104578063a217fddf116100a2578063ca15c87311610071578063ca15c873146106b2578063d5391393146106cf578063d547741f146106d7578063e985e9c514610703576101cf565b8063a217fddf14610599578063a22cb465146105a1578063b88d4fde146105cf578063c87b56dd14610695576101cf565b806370a08231116100de57806370a082311461051c5780639010d07c1461054257806391d148541461056557806395d89b4114610591576101cf565b80634f6ccce7146104da5780636352211e146104f75780636c0360eb14610514576101cf565b8063248a9ca31161017157806336568abe1161014b57806336568abe1461042f57806340c10f191461045b57806342842e0e1461048757806342966c68146104bd576101cf565b8063248a9ca3146103ba5780632f2ff15d146103d75780632f745c5914610403576101cf565b8063095ea7b3116101ad578063095ea7b3146102c5578063162094c4146102f357806318160ddd1461036a57806323b872dd14610384576101cf565b806301ffc9a7146101d457806306fdde031461020f578063081812fc1461028c575b600080fd5b6101fb600480360360208110156101ea57600080fd5b50356001600160e01b031916610731565b604080519115158252519081900360200190f35b610217610754565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a9600480360360208110156102a257600080fd5b50356107ea565b604080516001600160a01b039092168252519081900360200190f35b6102f1600480360360408110156102db57600080fd5b506001600160a01b03813516906020013561084c565b005b6101fb6004803603604081101561030957600080fd5b8135919081019060408101602082013564010000000081111561032b57600080fd5b82018360208201111561033d57600080fd5b8035906020019184600183028401116401000000008311171561035f57600080fd5b509092509050610927565b610372610a21565b60408051918252519081900360200190f35b6102f16004803603606081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060400135610a32565b610372600480360360208110156103d057600080fd5b5035610a89565b6102f1600480360360408110156103ed57600080fd5b50803590602001356001600160a01b0316610a9e565b6103726004803603604081101561041957600080fd5b506001600160a01b038135169060200135610b0a565b6102f16004803603604081101561044557600080fd5b50803590602001356001600160a01b0316610b35565b6102f16004803603604081101561047157600080fd5b506001600160a01b038135169060200135610b96565b6102f16004803603606081101561049d57600080fd5b506001600160a01b03813581169160208101359091169060400135610c16565b6102f1600480360360208110156104d357600080fd5b5035610c31565b610372600480360360208110156104f057600080fd5b5035610c83565b6102a96004803603602081101561050d57600080fd5b5035610c99565b610217610cc1565b6103726004803603602081101561053257600080fd5b50356001600160a01b0316610d22565b6102a96004803603604081101561055857600080fd5b5080359060200135610d8a565b6101fb6004803603604081101561057b57600080fd5b50803590602001356001600160a01b0316610da2565b610217610dba565b610372610e1b565b6102f1600480360360408110156105b757600080fd5b506001600160a01b0381351690602001351515610e20565b6102f1600480360360808110156105e557600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184600183028401116401000000008311171561065457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f25945050505050565b610217600480360360208110156106ab57600080fd5b5035610f83565b610372600480360360208110156106c857600080fd5b5035611206565b61037261121d565b6102f1600480360360408110156106ed57600080fd5b50803590602001356001600160a01b0316611241565b6101fb6004803603604081101561071957600080fd5b506001600160a01b038135811691602001351661129a565b6001600160e01b0319811660009081526065602052604090205460ff165b919050565b609c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b60006107f5826114ee565b6108305760405162461bcd60e51b815260040180806020018281038252602c815260200180612907602c913960400191505060405180910390fd5b506000908152609a60205260409020546001600160a01b031690565b600061085782610c99565b9050806001600160a01b0316836001600160a01b031614156108aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806129b76021913960400191505060405180910390fd5b806001600160a01b03166108bc6114fb565b6001600160a01b031614806108dd57506108dd816108d86114fb565b61129a565b6109185760405162461bcd60e51b815260040180806020018281038252603881526020018061282c6038913960400191505060405180910390fd5b61092283836114ff565b505050565b6000610932846114ee565b61097b576040805162461bcd60e51b8152602060048201526015602482015274546f6b656e20646f6573206e6f742065786973747360581b604482015290519081900360640190fd5b610985338561156d565b6109d6576040805162461bcd60e51b815260206004820152601c60248201527f53656e6465722063616e206e6f742073657420746f6b656e2055524900000000604482015290519081900360640190fd5b610a168484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161192505050565b5060015b9392505050565b6000610a2d6098611674565b905090565b610a43610a3d6114fb565b8261156d565b610a7e5760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b61092283838361167f565b60009081526033602052604090206002015490565b600082815260336020526040902060020154610ac190610abc6114fb565b610da2565b610afc5760405162461bcd60e51b815260040180806020018281038252602f81526020018061274b602f913960400191505060405180910390fd5b610b0682826117cb565b5050565b6001600160a01b0382166000908152609760205260408120610b2c9083611834565b90505b92915050565b610b3d6114fb565b6001600160a01b0316816001600160a01b031614610b8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a39602f913960400191505060405180910390fd5b610b068282611840565b610bc27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610abc6114fb565b610c0c576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610b0682826118a9565b61092283838360405180602001604052806000815250610f25565b610c3c610a3d6114fb565b610c775760405162461bcd60e51b8152600401808060200182810382526030815260200180612a096030913960400191505060405180910390fd5b610c80816119d7565b50565b600080610c91609884611aa4565b509392505050565b6000610b2f8260405180606001604052806029815260200161288e6029913960989190611ac0565b609f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b60006001600160a01b038216610d695760405162461bcd60e51b815260040180806020018281038252602a815260200180612864602a913960400191505060405180910390fd5b6001600160a01b0382166000908152609760205260409020610b2f90611674565b6000828152603360205260408120610b2c9083611834565b6000828152603360205260408120610b2c9083611acd565b609d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b600081565b610e286114fb565b6001600160a01b0316826001600160a01b03161415610e8e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80609b6000610e9b6114fb565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610edf6114fb565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f36610f306114fb565b8361156d565b610f715760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b610f7d84848484611ae2565b50505050565b6060610f8e826114ee565b610fc95760405162461bcd60e51b815260040180806020018281038252602f815260200180612988602f913960400191505060405180910390fd5b6000828152609e602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561105e5780601f106110335761010080835404028352916020019161105e565b820191906000526020600020905b81548152906001019060200180831161104157829003601f168201915b50505050509050606061106f610cc1565b90508051600014156110835750905061074f565b8151156111445780826040516020018083805190602001908083835b602083106110be5780518252601f19909201916020918201910161109f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111065780518252601f1990920191602091820191016110e7565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529250505061074f565b8061114e85611b34565b6040516020018083805190602001908083835b602083106111805780518252601f199092019160209182019101611161565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111c85780518252601f1990920191602091820191016111a9565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050919050565b6000818152603360205260408120610b2f90611674565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b60008281526033602052604090206002015461125f90610abc6114fb565b610b8c5760405162461bcd60e51b81526004018080602001828103825260308152602001806127fc6030913960400191505060405180910390fd5b6001600160a01b039182166000908152609b6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16806112e157506112e1611c0f565b806112ef575060005460ff16155b61132a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611355576000805460ff1961ff0019909116610100171660011790555b61135d611c20565b611365611c20565b8015610c80576000805461ff001916905550565b600054610100900460ff16806113925750611392611c0f565b806113a0575060005460ff16155b6113db5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611406576000805460ff1961ff0019909116610100171660011790555b61140e611c20565b611416611cc0565b6114208383611d5d565b8015610922576000805461ff0019169055505050565b600054610100900460ff168061144f575061144f611c0f565b8061145d575060005460ff16155b6114985760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff161580156114c3576000805460ff1961ff0019909116610100171660011790555b6114cb611c20565b61135d611cc0565b3b151590565b6000610b2c836001600160a01b038416611e42565b6000610b2f609883611e8c565b3390565b6000818152609a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061153482610c99565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611578826114ee565b6115b35760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d0602c913960400191505060405180910390fd5b60006115be83610c99565b9050806001600160a01b0316846001600160a01b031614806115f95750836001600160a01b03166115ee846107ea565b6001600160a01b0316145b806116095750611609818561129a565b949350505050565b61161a826114ee565b6116555760405162461bcd60e51b815260040180806020018281038252602c815260200180612933602c913960400191505060405180910390fd5b6000828152609e60209081526040909120825161092292840190612655565b6000610b2f82611e98565b826001600160a01b031661169282610c99565b6001600160a01b0316146116d75760405162461bcd60e51b815260040180806020018281038252602981526020018061295f6029913960400191505060405180910390fd5b6001600160a01b03821661171c5760405162461bcd60e51b81526004018080602001828103825260248152602001806127ac6024913960400191505060405180910390fd5b611727838383610922565b6117326000826114ff565b6001600160a01b03831660009081526097602052604090206117549082611e9c565b506001600160a01b03821660009081526097602052604090206117779082611ea8565b5061178460988284611eb4565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008281526033602052604090206117e390826114d9565b15610b06576117f06114fb565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b2c8383611eca565b60008281526033602052604090206118589082611f2e565b15610b06576118656114fb565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b038216611904576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61190d816114ee565b1561195f576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b61196b60008383610922565b6001600160a01b038216600090815260976020526040902061198d9082611ea8565b5061199a60988284611eb4565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006119e282610c99565b90506119f081600084610922565b6119fb6000836114ff565b6000828152609e60205260409020546002600019610100600184161502019091160415611a39576000828152609e60205260408120611a39916126d3565b6001600160a01b0381166000908152609760205260409020611a5b9083611e9c565b50611a67609883611f43565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080611ab38686611f4f565b9097909650945050505050565b6000611609848484611fca565b6000610b2c836001600160a01b038416612094565b611aed84848461167f565b611af9848484846120ac565b610f7d5760405162461bcd60e51b815260040180806020018281038252603281526020018061277a6032913960400191505060405180910390fd5b606081611b5957506040805180820190915260018152600360fc1b602082015261074f565b8160005b8115611b7157600101600a82049150611b5d565b60608167ffffffffffffffff81118015611b8a57600080fd5b506040519080825280601f01601f191660200182016040528015611bb5576020820181803683370190505b50859350905060001982015b8315611c0657600a840660300160f81b82828060019003935081518110611be457fe5b60200101906001600160f81b031916908160001a905350600a84049350611bc1565b50949350505050565b6000611c1a306114d3565b15905090565b600054610100900460ff1680611c395750611c39611c0f565b80611c47575060005460ff16155b611c825760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611365576000805460ff1961ff0019909116610100171660011790558015610c80576000805461ff001916905550565b600054610100900460ff1680611cd95750611cd9611c0f565b80611ce7575060005460ff16155b611d225760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611d4d576000805460ff1961ff0019909116610100171660011790555b6113656301ffc9a760e01b612214565b600054610100900460ff1680611d765750611d76611c0f565b80611d84575060005460ff16155b611dbf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611dea576000805460ff1961ff0019909116610100171660011790555b8251611dfd90609c906020860190612655565b508151611e1190609d906020850190612655565b50611e226380ac58cd60e01b612214565b611e32635b5e139f60e01b612214565b61142063780e9d6360e01b612214565b6000611e4e8383612094565b611e8457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b2f565b506000610b2f565b6000610b2c8383612094565b5490565b6000610b2c8383612298565b6000610b2c8383611e42565b600061160984846001600160a01b03851661235e565b81546000908210611f0c5760405162461bcd60e51b81526004018080602001828103825260228152602001806127296022913960400191505060405180910390fd5b826000018281548110611f1b57fe5b9060005260206000200154905092915050565b6000610b2c836001600160a01b038416612298565b6000610b2c83836123f5565b815460009081908310611f935760405162461bcd60e51b81526004018080602001828103825260228152602001806128e56022913960400191505060405180910390fd5b6000846000018481548110611fa457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816120655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202a578181015183820152602001612012565b50505050905090810190601f1680156120575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061207857fe5b9060005260206000209060020201600101549150509392505050565b60009081526001919091016020526040902054151590565b60006120c0846001600160a01b03166114d3565b6120cc57506001611609565b60606121da630a85bd0160e11b6120e16114fb565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612148578181015183820152602001612130565b50505050905090810190601f1680156121755780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505060405180606001604052806032815260200161277a603291396001600160a01b03881691906124c9565b905060008180602001905160208110156121f357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6001600160e01b03198082161415612273576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b6000818152600183016020526040812054801561235457835460001980830191908101906000908790839081106122cb57fe5b90600052602060002001549050808760000184815481106122e857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061231857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610b2f565b6000915050610b2f565b6000828152600184016020526040812054806123c3575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610a1a565b828560000160018303815481106123d657fe5b9060005260206000209060020201600101819055506000915050610a1a565b60008181526001830160205260408120548015612354578354600019808301919081019060009087908390811061242857fe5b906000526020600020906002020190508087600001848154811061244857fe5b60009182526020808320845460029093020191825560019384015491840191909155835482528983019052604090209084019055865487908061248757fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450610b2f9350505050565b60606116098484600085856124dd856114d3565b61252e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061256d5780518252601f19909201916020918201910161254e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146125cf576040519150601f19603f3d011682016040523d82523d6000602084013e6125d4565b606091505b50915091506125e48282866125ef565b979650505050505050565b606083156125fe575081610a1a565b82511561260e5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561202a578181015183820152602001612012565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061269657805160ff19168380011785556126c3565b828001600101855582156126c3579182015b828111156126c35782518255916020019190600101906126a8565b506126cf929150612713565b5090565b50805460018160011615610100020316600290046000825580601f106126f95750610c80565b601f016020900490600052602060002090810190610c8091905b5b808211156126cf576000815560010161271456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212206cfed4af0d06c86fc24af2eff048829ddbcce69495200e80936dbbfb68bcbc3964736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634f6ccce711610104578063a217fddf116100a2578063ca15c87311610071578063ca15c873146106b2578063d5391393146106cf578063d547741f146106d7578063e985e9c514610703576101cf565b8063a217fddf14610599578063a22cb465146105a1578063b88d4fde146105cf578063c87b56dd14610695576101cf565b806370a08231116100de57806370a082311461051c5780639010d07c1461054257806391d148541461056557806395d89b4114610591576101cf565b80634f6ccce7146104da5780636352211e146104f75780636c0360eb14610514576101cf565b8063248a9ca31161017157806336568abe1161014b57806336568abe1461042f57806340c10f191461045b57806342842e0e1461048757806342966c68146104bd576101cf565b8063248a9ca3146103ba5780632f2ff15d146103d75780632f745c5914610403576101cf565b8063095ea7b3116101ad578063095ea7b3146102c5578063162094c4146102f357806318160ddd1461036a57806323b872dd14610384576101cf565b806301ffc9a7146101d457806306fdde031461020f578063081812fc1461028c575b600080fd5b6101fb600480360360208110156101ea57600080fd5b50356001600160e01b031916610731565b604080519115158252519081900360200190f35b610217610754565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a9600480360360208110156102a257600080fd5b50356107ea565b604080516001600160a01b039092168252519081900360200190f35b6102f1600480360360408110156102db57600080fd5b506001600160a01b03813516906020013561084c565b005b6101fb6004803603604081101561030957600080fd5b8135919081019060408101602082013564010000000081111561032b57600080fd5b82018360208201111561033d57600080fd5b8035906020019184600183028401116401000000008311171561035f57600080fd5b509092509050610927565b610372610a21565b60408051918252519081900360200190f35b6102f16004803603606081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060400135610a32565b610372600480360360208110156103d057600080fd5b5035610a89565b6102f1600480360360408110156103ed57600080fd5b50803590602001356001600160a01b0316610a9e565b6103726004803603604081101561041957600080fd5b506001600160a01b038135169060200135610b0a565b6102f16004803603604081101561044557600080fd5b50803590602001356001600160a01b0316610b35565b6102f16004803603604081101561047157600080fd5b506001600160a01b038135169060200135610b96565b6102f16004803603606081101561049d57600080fd5b506001600160a01b03813581169160208101359091169060400135610c16565b6102f1600480360360208110156104d357600080fd5b5035610c31565b610372600480360360208110156104f057600080fd5b5035610c83565b6102a96004803603602081101561050d57600080fd5b5035610c99565b610217610cc1565b6103726004803603602081101561053257600080fd5b50356001600160a01b0316610d22565b6102a96004803603604081101561055857600080fd5b5080359060200135610d8a565b6101fb6004803603604081101561057b57600080fd5b50803590602001356001600160a01b0316610da2565b610217610dba565b610372610e1b565b6102f1600480360360408110156105b757600080fd5b506001600160a01b0381351690602001351515610e20565b6102f1600480360360808110156105e557600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184600183028401116401000000008311171561065457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f25945050505050565b610217600480360360208110156106ab57600080fd5b5035610f83565b610372600480360360208110156106c857600080fd5b5035611206565b61037261121d565b6102f1600480360360408110156106ed57600080fd5b50803590602001356001600160a01b0316611241565b6101fb6004803603604081101561071957600080fd5b506001600160a01b038135811691602001351661129a565b6001600160e01b0319811660009081526065602052604090205460ff165b919050565b609c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b60006107f5826114ee565b6108305760405162461bcd60e51b815260040180806020018281038252602c815260200180612907602c913960400191505060405180910390fd5b506000908152609a60205260409020546001600160a01b031690565b600061085782610c99565b9050806001600160a01b0316836001600160a01b031614156108aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806129b76021913960400191505060405180910390fd5b806001600160a01b03166108bc6114fb565b6001600160a01b031614806108dd57506108dd816108d86114fb565b61129a565b6109185760405162461bcd60e51b815260040180806020018281038252603881526020018061282c6038913960400191505060405180910390fd5b61092283836114ff565b505050565b6000610932846114ee565b61097b576040805162461bcd60e51b8152602060048201526015602482015274546f6b656e20646f6573206e6f742065786973747360581b604482015290519081900360640190fd5b610985338561156d565b6109d6576040805162461bcd60e51b815260206004820152601c60248201527f53656e6465722063616e206e6f742073657420746f6b656e2055524900000000604482015290519081900360640190fd5b610a168484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161192505050565b5060015b9392505050565b6000610a2d6098611674565b905090565b610a43610a3d6114fb565b8261156d565b610a7e5760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b61092283838361167f565b60009081526033602052604090206002015490565b600082815260336020526040902060020154610ac190610abc6114fb565b610da2565b610afc5760405162461bcd60e51b815260040180806020018281038252602f81526020018061274b602f913960400191505060405180910390fd5b610b0682826117cb565b5050565b6001600160a01b0382166000908152609760205260408120610b2c9083611834565b90505b92915050565b610b3d6114fb565b6001600160a01b0316816001600160a01b031614610b8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a39602f913960400191505060405180910390fd5b610b068282611840565b610bc27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610abc6114fb565b610c0c576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610b0682826118a9565b61092283838360405180602001604052806000815250610f25565b610c3c610a3d6114fb565b610c775760405162461bcd60e51b8152600401808060200182810382526030815260200180612a096030913960400191505060405180910390fd5b610c80816119d7565b50565b600080610c91609884611aa4565b509392505050565b6000610b2f8260405180606001604052806029815260200161288e6029913960989190611ac0565b609f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b60006001600160a01b038216610d695760405162461bcd60e51b815260040180806020018281038252602a815260200180612864602a913960400191505060405180910390fd5b6001600160a01b0382166000908152609760205260409020610b2f90611674565b6000828152603360205260408120610b2c9083611834565b6000828152603360205260408120610b2c9083611acd565b609d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b600081565b610e286114fb565b6001600160a01b0316826001600160a01b03161415610e8e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80609b6000610e9b6114fb565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610edf6114fb565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f36610f306114fb565b8361156d565b610f715760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b610f7d84848484611ae2565b50505050565b6060610f8e826114ee565b610fc95760405162461bcd60e51b815260040180806020018281038252602f815260200180612988602f913960400191505060405180910390fd5b6000828152609e602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561105e5780601f106110335761010080835404028352916020019161105e565b820191906000526020600020905b81548152906001019060200180831161104157829003601f168201915b50505050509050606061106f610cc1565b90508051600014156110835750905061074f565b8151156111445780826040516020018083805190602001908083835b602083106110be5780518252601f19909201916020918201910161109f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111065780518252601f1990920191602091820191016110e7565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529250505061074f565b8061114e85611b34565b6040516020018083805190602001908083835b602083106111805780518252601f199092019160209182019101611161565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111c85780518252601f1990920191602091820191016111a9565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050919050565b6000818152603360205260408120610b2f90611674565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b60008281526033602052604090206002015461125f90610abc6114fb565b610b8c5760405162461bcd60e51b81526004018080602001828103825260308152602001806127fc6030913960400191505060405180910390fd5b6001600160a01b039182166000908152609b6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16806112e157506112e1611c0f565b806112ef575060005460ff16155b61132a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611355576000805460ff1961ff0019909116610100171660011790555b61135d611c20565b611365611c20565b8015610c80576000805461ff001916905550565b600054610100900460ff16806113925750611392611c0f565b806113a0575060005460ff16155b6113db5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611406576000805460ff1961ff0019909116610100171660011790555b61140e611c20565b611416611cc0565b6114208383611d5d565b8015610922576000805461ff0019169055505050565b600054610100900460ff168061144f575061144f611c0f565b8061145d575060005460ff16155b6114985760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff161580156114c3576000805460ff1961ff0019909116610100171660011790555b6114cb611c20565b61135d611cc0565b3b151590565b6000610b2c836001600160a01b038416611e42565b6000610b2f609883611e8c565b3390565b6000818152609a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061153482610c99565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611578826114ee565b6115b35760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d0602c913960400191505060405180910390fd5b60006115be83610c99565b9050806001600160a01b0316846001600160a01b031614806115f95750836001600160a01b03166115ee846107ea565b6001600160a01b0316145b806116095750611609818561129a565b949350505050565b61161a826114ee565b6116555760405162461bcd60e51b815260040180806020018281038252602c815260200180612933602c913960400191505060405180910390fd5b6000828152609e60209081526040909120825161092292840190612655565b6000610b2f82611e98565b826001600160a01b031661169282610c99565b6001600160a01b0316146116d75760405162461bcd60e51b815260040180806020018281038252602981526020018061295f6029913960400191505060405180910390fd5b6001600160a01b03821661171c5760405162461bcd60e51b81526004018080602001828103825260248152602001806127ac6024913960400191505060405180910390fd5b611727838383610922565b6117326000826114ff565b6001600160a01b03831660009081526097602052604090206117549082611e9c565b506001600160a01b03821660009081526097602052604090206117779082611ea8565b5061178460988284611eb4565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008281526033602052604090206117e390826114d9565b15610b06576117f06114fb565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b2c8383611eca565b60008281526033602052604090206118589082611f2e565b15610b06576118656114fb565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b038216611904576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61190d816114ee565b1561195f576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b61196b60008383610922565b6001600160a01b038216600090815260976020526040902061198d9082611ea8565b5061199a60988284611eb4565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006119e282610c99565b90506119f081600084610922565b6119fb6000836114ff565b6000828152609e60205260409020546002600019610100600184161502019091160415611a39576000828152609e60205260408120611a39916126d3565b6001600160a01b0381166000908152609760205260409020611a5b9083611e9c565b50611a67609883611f43565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080611ab38686611f4f565b9097909650945050505050565b6000611609848484611fca565b6000610b2c836001600160a01b038416612094565b611aed84848461167f565b611af9848484846120ac565b610f7d5760405162461bcd60e51b815260040180806020018281038252603281526020018061277a6032913960400191505060405180910390fd5b606081611b5957506040805180820190915260018152600360fc1b602082015261074f565b8160005b8115611b7157600101600a82049150611b5d565b60608167ffffffffffffffff81118015611b8a57600080fd5b506040519080825280601f01601f191660200182016040528015611bb5576020820181803683370190505b50859350905060001982015b8315611c0657600a840660300160f81b82828060019003935081518110611be457fe5b60200101906001600160f81b031916908160001a905350600a84049350611bc1565b50949350505050565b6000611c1a306114d3565b15905090565b600054610100900460ff1680611c395750611c39611c0f565b80611c47575060005460ff16155b611c825760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611365576000805460ff1961ff0019909116610100171660011790558015610c80576000805461ff001916905550565b600054610100900460ff1680611cd95750611cd9611c0f565b80611ce7575060005460ff16155b611d225760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611d4d576000805460ff1961ff0019909116610100171660011790555b6113656301ffc9a760e01b612214565b600054610100900460ff1680611d765750611d76611c0f565b80611d84575060005460ff16155b611dbf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611dea576000805460ff1961ff0019909116610100171660011790555b8251611dfd90609c906020860190612655565b508151611e1190609d906020850190612655565b50611e226380ac58cd60e01b612214565b611e32635b5e139f60e01b612214565b61142063780e9d6360e01b612214565b6000611e4e8383612094565b611e8457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b2f565b506000610b2f565b6000610b2c8383612094565b5490565b6000610b2c8383612298565b6000610b2c8383611e42565b600061160984846001600160a01b03851661235e565b81546000908210611f0c5760405162461bcd60e51b81526004018080602001828103825260228152602001806127296022913960400191505060405180910390fd5b826000018281548110611f1b57fe5b9060005260206000200154905092915050565b6000610b2c836001600160a01b038416612298565b6000610b2c83836123f5565b815460009081908310611f935760405162461bcd60e51b81526004018080602001828103825260228152602001806128e56022913960400191505060405180910390fd5b6000846000018481548110611fa457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816120655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202a578181015183820152602001612012565b50505050905090810190601f1680156120575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061207857fe5b9060005260206000209060020201600101549150509392505050565b60009081526001919091016020526040902054151590565b60006120c0846001600160a01b03166114d3565b6120cc57506001611609565b60606121da630a85bd0160e11b6120e16114fb565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612148578181015183820152602001612130565b50505050905090810190601f1680156121755780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505060405180606001604052806032815260200161277a603291396001600160a01b03881691906124c9565b905060008180602001905160208110156121f357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6001600160e01b03198082161415612273576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b6000818152600183016020526040812054801561235457835460001980830191908101906000908790839081106122cb57fe5b90600052602060002001549050808760000184815481106122e857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061231857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610b2f565b6000915050610b2f565b6000828152600184016020526040812054806123c3575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610a1a565b828560000160018303815481106123d657fe5b9060005260206000209060020201600101819055506000915050610a1a565b60008181526001830160205260408120548015612354578354600019808301919081019060009087908390811061242857fe5b906000526020600020906002020190508087600001848154811061244857fe5b60009182526020808320845460029093020191825560019384015491840191909155835482528983019052604090209084019055865487908061248757fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450610b2f9350505050565b60606116098484600085856124dd856114d3565b61252e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061256d5780518252601f19909201916020918201910161254e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146125cf576040519150601f19603f3d011682016040523d82523d6000602084013e6125d4565b606091505b50915091506125e48282866125ef565b979650505050505050565b606083156125fe575081610a1a565b82511561260e5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561202a578181015183820152602001612012565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061269657805160ff19168380011785556126c3565b828001600101855582156126c3579182015b828111156126c35782518255916020019190600101906126a8565b506126cf929150612713565b5090565b50805460018160011615610100020316600290046000825580601f106126f95750610c80565b601f016020900490600052602060002090810190610c8091905b5b808211156126cf576000815560010161271456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212206cfed4af0d06c86fc24af2eff048829ddbcce69495200e80936dbbfb68bcbc3964736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.json b/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.json new file mode 100644 index 000000000..6d5862dc6 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/EthErc20.json @@ -0,0 +1,615 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EthErc20", + "sourceName": "contracts/schain/tokens/EthErc20.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "BURNER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "forceBurn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenManagerEthAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611b5a806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806379cc6790116100de578063a9059cbb11610097578063d539139311610071578063d53913931461051a578063d547741f14610522578063dd62ed3e1461054e578063e2d6f6341461057c5761018e565b8063a9059cbb146104ab578063c4d66de8146104d7578063ca15c873146104fd5761018e565b806379cc6790146103d85780639010d07c1461040457806391d148541461044357806395d89b411461046f578063a217fddf14610477578063a457c2d71461047f5761018e565b80632f2ff15d1161014b5780633950935111610125578063395093511461033d57806340c10f191461036957806342966c681461039557806370a08231146103b25761018e565b80632f2ff15d146102c5578063313ce567146102f357806336568abe146103115761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a578063248a9ca3146102a0578063282c51f3146102bd575b600080fd5b61019b6105a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b03813516906020013561063e565b604080519115158252519081900360200190f35b61025861065c565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610662565b610258600480360360208110156102b657600080fd5b50356106e9565b6102586106fe565b6102f1600480360360408110156102db57600080fd5b50803590602001356001600160a01b0316610722565b005b6102fb61078e565b6040805160ff9092168252519081900360200190f35b6102f16004803603604081101561032757600080fd5b50803590602001356001600160a01b0316610797565b61023c6004803603604081101561035357600080fd5b506001600160a01b0381351690602001356107f8565b6102f16004803603604081101561037f57600080fd5b506001600160a01b038135169060200135610846565b6102f1600480360360208110156103ab57600080fd5b50356108cd565b610258600480360360208110156103c857600080fd5b50356001600160a01b03166108e1565b6102f1600480360360408110156103ee57600080fd5b506001600160a01b0381351690602001356108fc565b6104276004803603604081101561041a57600080fd5b5080359060200135610956565b604080516001600160a01b039092168252519081900360200190f35b61023c6004803603604081101561045957600080fd5b50803590602001356001600160a01b0316610975565b61019b61098d565b6102586109ee565b61023c6004803603604081101561049557600080fd5b506001600160a01b0381351690602001356109f3565b61023c600480360360408110156104c157600080fd5b506001600160a01b038135169060200135610a5b565b6102f1600480360360208110156104ed57600080fd5b50356001600160a01b0316610a6f565b6102586004803603602081101561051357600080fd5b5035610bcf565b610258610be6565b6102f16004803603604081101561053857600080fd5b50803590602001356001600160a01b0316610c0a565b6102586004803603604081101561056457600080fd5b506001600160a01b0381358116916020013516610c63565b6102f16004803603604081101561059257600080fd5b506001600160a01b038135169060200135610c8e565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106345780601f1061060957610100808354040283529160200191610634565b820191906000526020600020905b81548152906001019060200180831161061757829003601f168201915b5050505050905090565b600061065261064b610d15565b8484610d19565b5060015b92915050565b60675490565b600061066f848484610e05565b6106df8461067b610d15565b6106da85604051806060016040528060288152602001611a1b602891396001600160a01b038a166000908152606660205260408120906106b9610d15565b6001600160a01b031681526020810191909152604001600020549190610f62565b610d19565b5060019392505050565b60009081526033602052604090206002015490565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b60008281526033602052604090206002015461074590610740610d15565b610975565b6107805760405162461bcd60e51b815260040180806020018281038252602f815260200180611924602f913960400191505060405180910390fd5b61078a8282610ff9565b5050565b606a5460ff1690565b61079f610d15565b6001600160a01b0316816001600160a01b0316146107ee5760405162461bcd60e51b815260040180806020018281038252602f815260200180611af6602f913960400191505060405180910390fd5b61078a8282611062565b6000610652610805610d15565b846106da8560666000610816610d15565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906110cb565b6108727f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610740610d15565b6108c3576040805162461bcd60e51b815260206004820152601760248201527f4d494e54455220726f6c65206973207265717569726564000000000000000000604482015290519081900360640190fd5b61078a8282611125565b6108de6108d8610d15565b82611217565b50565b6001600160a01b031660009081526065602052604090205490565b600061093382604051806060016040528060248152602001611a436024913961092c86610927610d15565b610c63565b9190610f62565b905061094783610941610d15565b83610d19565b6109518383611217565b505050565b600082815260336020526040812061096e9083611313565b9392505050565b600082815260336020526040812061096e908361131f565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106345780601f1061060957610100808354040283529160200191610634565b600081565b6000610652610a00610d15565b846106da85604051806060016040528060258152602001611ad16025913960666000610a2a610d15565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610f62565b6000610652610a68610d15565b8484610e05565b600054610100900460ff1680610a885750610a88611334565b80610a96575060005460ff16155b610ad15760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff16158015610afc576000805460ff1961ff0019909116610100171660011790555b610b04611345565b610b5360405180604001604052806011815260200170455243323020457468657220436c6f6e6560781b815250604051806040016040528060048152602001634554484360e01b8152506113f6565b610b5b611345565b610b66600033610780565b610b907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683610780565b610bba7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84883610780565b801561078a576000805461ff00191690555050565b6000818152603360205260408120610656906114ab565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610c2890610740610d15565b6107ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806119bd6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b610cba7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610740610d15565b610d0b576040805162461bcd60e51b815260206004820152601760248201527f4255524e455220726f6c65206973207265717569726564000000000000000000604482015290519081900360640190fd5b61078a8282611217565b3390565b6001600160a01b038316610d5e5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aad6024913960400191505060405180910390fd5b6001600160a01b038216610da35760405162461bcd60e51b81526004018080602001828103825260228152602001806119756022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610e4a5760405162461bcd60e51b8152600401808060200182810382526025815260200180611a886025913960400191505060405180910390fd5b6001600160a01b038216610e8f5760405162461bcd60e51b81526004018080602001828103825260238152602001806119016023913960400191505060405180910390fd5b610e9a838383610951565b610ed781604051806060016040528060268152602001611997602691396001600160a01b0386166000908152606560205260409020549190610f62565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610f0690826110cb565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ff15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb6578181015183820152602001610f9e565b50505050905090810190601f168015610fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082815260336020526040902061101190826114b6565b1561078a5761101e610d15565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260336020526040902061107a90826114cb565b1561078a57611087610d15565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008282018381101561096e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611180576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61118c60008383610951565b60675461119990826110cb565b6067556001600160a01b0382166000908152606560205260409020546111bf90826110cb565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661125c5760405162461bcd60e51b8152600401808060200182810382526021815260200180611a676021913960400191505060405180910390fd5b61126882600083610951565b6112a581604051806060016040528060228152602001611953602291396001600160a01b0385166000908152606560205260409020549190610f62565b6001600160a01b0383166000908152606560205260409020556067546112cb90826114e0565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061096e838361153d565b600061096e836001600160a01b0384166115a1565b600061133f306115b9565b15905090565b600054610100900460ff168061135e575061135e611334565b8061136c575060005460ff16155b6113a75760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156113d2576000805460ff1961ff0019909116610100171660011790555b6113da6115bf565b6113e26115bf565b80156108de576000805461ff001916905550565b600054610100900460ff168061140f575061140f611334565b8061141d575060005460ff16155b6114585760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff16158015611483576000805460ff1961ff0019909116610100171660011790555b61148b6115bf565b611495838361165f565b8015610951576000805461ff0019169055505050565b600061065682611737565b600061096e836001600160a01b03841661173b565b600061096e836001600160a01b038416611785565b600082821115611537576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061157f5760405162461bcd60e51b81526004018080602001828103825260228152602001806118df6022913960400191505060405180910390fd5b82600001828154811061158e57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b3b151590565b600054610100900460ff16806115d857506115d8611334565b806115e6575060005460ff16155b6116215760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156113e2576000805460ff1961ff00199091166101001716600117905580156108de576000805461ff001916905550565b600054610100900460ff16806116785750611678611334565b80611686575060005460ff16155b6116c15760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156116ec576000805460ff1961ff0019909116610100171660011790555b82516116ff90606890602086019061184b565b50815161171390606990602085019061184b565b50606a805460ff191660121790558015610951576000805461ff0019169055505050565b5490565b600061174783836115a1565b61177d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610656565b506000610656565b6000818152600183016020526040812054801561184157835460001980830191908101906000908790839081106117b857fe5b90600052602060002001549050808760000184815481106117d557fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061180557fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610656565b6000915050610656565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188c57805160ff19168380011785556118b9565b828001600101855582156118b9579182015b828111156118b957825182559160200191906001019061189e565b506118c59291506118c9565b5090565b5b808211156118c557600081556001016118ca56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212201356ff31fdcc22341ece4d4b5497010c80f00e126998f2573f67551e2649eda664736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806379cc6790116100de578063a9059cbb11610097578063d539139311610071578063d53913931461051a578063d547741f14610522578063dd62ed3e1461054e578063e2d6f6341461057c5761018e565b8063a9059cbb146104ab578063c4d66de8146104d7578063ca15c873146104fd5761018e565b806379cc6790146103d85780639010d07c1461040457806391d148541461044357806395d89b411461046f578063a217fddf14610477578063a457c2d71461047f5761018e565b80632f2ff15d1161014b5780633950935111610125578063395093511461033d57806340c10f191461036957806342966c681461039557806370a08231146103b25761018e565b80632f2ff15d146102c5578063313ce567146102f357806336568abe146103115761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a578063248a9ca3146102a0578063282c51f3146102bd575b600080fd5b61019b6105a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b03813516906020013561063e565b604080519115158252519081900360200190f35b61025861065c565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610662565b610258600480360360208110156102b657600080fd5b50356106e9565b6102586106fe565b6102f1600480360360408110156102db57600080fd5b50803590602001356001600160a01b0316610722565b005b6102fb61078e565b6040805160ff9092168252519081900360200190f35b6102f16004803603604081101561032757600080fd5b50803590602001356001600160a01b0316610797565b61023c6004803603604081101561035357600080fd5b506001600160a01b0381351690602001356107f8565b6102f16004803603604081101561037f57600080fd5b506001600160a01b038135169060200135610846565b6102f1600480360360208110156103ab57600080fd5b50356108cd565b610258600480360360208110156103c857600080fd5b50356001600160a01b03166108e1565b6102f1600480360360408110156103ee57600080fd5b506001600160a01b0381351690602001356108fc565b6104276004803603604081101561041a57600080fd5b5080359060200135610956565b604080516001600160a01b039092168252519081900360200190f35b61023c6004803603604081101561045957600080fd5b50803590602001356001600160a01b0316610975565b61019b61098d565b6102586109ee565b61023c6004803603604081101561049557600080fd5b506001600160a01b0381351690602001356109f3565b61023c600480360360408110156104c157600080fd5b506001600160a01b038135169060200135610a5b565b6102f1600480360360208110156104ed57600080fd5b50356001600160a01b0316610a6f565b6102586004803603602081101561051357600080fd5b5035610bcf565b610258610be6565b6102f16004803603604081101561053857600080fd5b50803590602001356001600160a01b0316610c0a565b6102586004803603604081101561056457600080fd5b506001600160a01b0381358116916020013516610c63565b6102f16004803603604081101561059257600080fd5b506001600160a01b038135169060200135610c8e565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106345780601f1061060957610100808354040283529160200191610634565b820191906000526020600020905b81548152906001019060200180831161061757829003601f168201915b5050505050905090565b600061065261064b610d15565b8484610d19565b5060015b92915050565b60675490565b600061066f848484610e05565b6106df8461067b610d15565b6106da85604051806060016040528060288152602001611a1b602891396001600160a01b038a166000908152606660205260408120906106b9610d15565b6001600160a01b031681526020810191909152604001600020549190610f62565b610d19565b5060019392505050565b60009081526033602052604090206002015490565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b60008281526033602052604090206002015461074590610740610d15565b610975565b6107805760405162461bcd60e51b815260040180806020018281038252602f815260200180611924602f913960400191505060405180910390fd5b61078a8282610ff9565b5050565b606a5460ff1690565b61079f610d15565b6001600160a01b0316816001600160a01b0316146107ee5760405162461bcd60e51b815260040180806020018281038252602f815260200180611af6602f913960400191505060405180910390fd5b61078a8282611062565b6000610652610805610d15565b846106da8560666000610816610d15565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906110cb565b6108727f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610740610d15565b6108c3576040805162461bcd60e51b815260206004820152601760248201527f4d494e54455220726f6c65206973207265717569726564000000000000000000604482015290519081900360640190fd5b61078a8282611125565b6108de6108d8610d15565b82611217565b50565b6001600160a01b031660009081526065602052604090205490565b600061093382604051806060016040528060248152602001611a436024913961092c86610927610d15565b610c63565b9190610f62565b905061094783610941610d15565b83610d19565b6109518383611217565b505050565b600082815260336020526040812061096e9083611313565b9392505050565b600082815260336020526040812061096e908361131f565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106345780601f1061060957610100808354040283529160200191610634565b600081565b6000610652610a00610d15565b846106da85604051806060016040528060258152602001611ad16025913960666000610a2a610d15565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610f62565b6000610652610a68610d15565b8484610e05565b600054610100900460ff1680610a885750610a88611334565b80610a96575060005460ff16155b610ad15760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff16158015610afc576000805460ff1961ff0019909116610100171660011790555b610b04611345565b610b5360405180604001604052806011815260200170455243323020457468657220436c6f6e6560781b815250604051806040016040528060048152602001634554484360e01b8152506113f6565b610b5b611345565b610b66600033610780565b610b907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683610780565b610bba7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84883610780565b801561078a576000805461ff00191690555050565b6000818152603360205260408120610656906114ab565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610c2890610740610d15565b6107ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806119bd6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b610cba7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610740610d15565b610d0b576040805162461bcd60e51b815260206004820152601760248201527f4255524e455220726f6c65206973207265717569726564000000000000000000604482015290519081900360640190fd5b61078a8282611217565b3390565b6001600160a01b038316610d5e5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aad6024913960400191505060405180910390fd5b6001600160a01b038216610da35760405162461bcd60e51b81526004018080602001828103825260228152602001806119756022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610e4a5760405162461bcd60e51b8152600401808060200182810382526025815260200180611a886025913960400191505060405180910390fd5b6001600160a01b038216610e8f5760405162461bcd60e51b81526004018080602001828103825260238152602001806119016023913960400191505060405180910390fd5b610e9a838383610951565b610ed781604051806060016040528060268152602001611997602691396001600160a01b0386166000908152606560205260409020549190610f62565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610f0690826110cb565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ff15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb6578181015183820152602001610f9e565b50505050905090810190601f168015610fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082815260336020526040902061101190826114b6565b1561078a5761101e610d15565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260336020526040902061107a90826114cb565b1561078a57611087610d15565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008282018381101561096e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611180576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61118c60008383610951565b60675461119990826110cb565b6067556001600160a01b0382166000908152606560205260409020546111bf90826110cb565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661125c5760405162461bcd60e51b8152600401808060200182810382526021815260200180611a676021913960400191505060405180910390fd5b61126882600083610951565b6112a581604051806060016040528060228152602001611953602291396001600160a01b0385166000908152606560205260409020549190610f62565b6001600160a01b0383166000908152606560205260409020556067546112cb90826114e0565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061096e838361153d565b600061096e836001600160a01b0384166115a1565b600061133f306115b9565b15905090565b600054610100900460ff168061135e575061135e611334565b8061136c575060005460ff16155b6113a75760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156113d2576000805460ff1961ff0019909116610100171660011790555b6113da6115bf565b6113e26115bf565b80156108de576000805461ff001916905550565b600054610100900460ff168061140f575061140f611334565b8061141d575060005460ff16155b6114585760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff16158015611483576000805460ff1961ff0019909116610100171660011790555b61148b6115bf565b611495838361165f565b8015610951576000805461ff0019169055505050565b600061065682611737565b600061096e836001600160a01b03841661173b565b600061096e836001600160a01b038416611785565b600082821115611537576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061157f5760405162461bcd60e51b81526004018080602001828103825260228152602001806118df6022913960400191505060405180910390fd5b82600001828154811061158e57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b3b151590565b600054610100900460ff16806115d857506115d8611334565b806115e6575060005460ff16155b6116215760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156113e2576000805460ff1961ff00199091166101001716600117905580156108de576000805461ff001916905550565b600054610100900460ff16806116785750611678611334565b80611686575060005460ff16155b6116c15760405162461bcd60e51b815260040180806020018281038252602e8152602001806119ed602e913960400191505060405180910390fd5b600054610100900460ff161580156116ec576000805460ff1961ff0019909116610100171660011790555b82516116ff90606890602086019061184b565b50815161171390606990602085019061184b565b50606a805460ff191660121790558015610951576000805461ff0019169055505050565b5490565b600061174783836115a1565b61177d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610656565b506000610656565b6000818152600183016020526040812054801561184157835460001980830191908101906000908790839081106117b857fe5b90600052602060002001549050808760000184815481106117d557fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061180557fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610656565b6000915050610656565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188c57805160ff19168380011785556118b9565b828001600101855582156118b9579182015b828111156118b957825182559160200191906001019061189e565b506118c59291506118c9565b5090565b5b808211156118c557600081556001016118ca56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212201356ff31fdcc22341ece4d4b5497010c80f00e126998f2573f67551e2649eda664736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.json b/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.json new file mode 100644 index 000000000..2c3f6ab14 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/Fp2Operations.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Fp2Operations", + "sourceName": "contracts/schain/bls/FieldOperations.sol", + "abi": [ + { + "inputs": [], + "name": "P", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60aa610024600b82828239805160001a607314601757fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80638b8fbd92146038575b600080fd5b603e6050565b60408051918252519081900360200190f35b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478156fea264697066735822122005a640d392fc5f1ed84e8cfcb3f106269ba47e2bcf80fe41b37878441a2a89b964736f6c634300060c0033", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80638b8fbd92146038575b600080fd5b603e6050565b60408051918252519081900360200190f35b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478156fea264697066735822122005a640d392fc5f1ed84e8cfcb3f106269ba47e2bcf80fe41b37878441a2a89b964736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.json b/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.json new file mode 100644 index 000000000..c6c1a6b31 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/G1Operations.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "G1Operations", + "sourceName": "contracts/schain/bls/FieldOperations.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d2c7b848dbfe44c933cb9e4077309629271826944e59921445c8d65473cd143764736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d2c7b848dbfe44c933cb9e4077309629271826944e59921445c8d65473cd143764736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.json b/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.json new file mode 100644 index 000000000..cd49226e3 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/G2Operations.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "G2Operations", + "sourceName": "contracts/schain/bls/FieldOperations.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122040e04307c36dd999e61c62d94b18263ca666c66ec90fcc123cb0d3e290e4fd3e64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122040e04307c36dd999e61c62d94b18263ca666c66ec90fcc123cb0d3e290e4fd3e64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.json b/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.json new file mode 100644 index 000000000..3bea12cc7 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/IContractReceiverForSchain.json @@ -0,0 +1,40 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IContractReceiverForSchain", + "sourceName": "contracts/schain/MessageProxyForSchain.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.json b/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.json new file mode 100644 index 000000000..7c5e9fd45 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/KeyStorage.json @@ -0,0 +1,321 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "KeyStorage", + "sourceName": "contracts/schain/KeyStorage.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FN_NUM_GET_CONFIG_VARIABLE_UINT256", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FREE_MEM_PTR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBlsCommonPublicKey", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "internalType": "struct Fp2Operations.Fp2Point", + "name": "x", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "internalType": "struct Fp2Operations.Fp2Point", + "name": "y", + "type": "tuple" + } + ], + "internalType": "struct G2Operations.G2Point", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610c37806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639010d07c116100715780639010d07c1461012f57806391d148541461014f578063a217fddf1461016f578063ab2a585314610177578063ca15c8731461017f578063d547741f14610192576100b4565b8063248a9ca3146100b95780632f2ff15d146100e257806336568abe146100f7578063554ef7a61461010a578063573c8aba1461011f5780638129fc1c14610127575b600080fd5b6100cc6100c73660046108ad565b6101a5565b6040516100d9919061094e565b60405180910390f35b6100f56100f03660046108c5565b6101ba565b005b6100f56101053660046108c5565b61020b565b61011261024d565b6040516100d99190610b0c565b6100cc61030c565b6100f5610311565b61014261013d3660046108ff565b6103a7565b6040516100d9919061092f565b61016261015d3660046108c5565b6103c8565b6040516100d99190610943565b6100cc6103e0565b6100cc6103e5565b6100cc61018d3660046108ad565b6103ea565b6100f56101a03660046108c5565b610401565b60009081526033602052604090206002015490565b6000828152603360205260409020600201546101d89061015d61043b565b6101fd5760405162461bcd60e51b81526004016101f490610999565b60405180910390fd5b610207828261043f565b5050565b61021361043b565b6001600160a01b0316816001600160a01b0316146102435760405162461bcd60e51b81526004016101f490610abd565b61020782826104a8565b61025561086e565b6040805160e0810182526034608082018181529192839290830191829161028391610b3260a0870139610511565b81526020016102a9604051806060016040528060348152602001610bce60349139610511565b815250815260200160405180604001604052806102dd604051806060016040528060348152602001610b9a60349139610511565b8152602001610303604051806060016040528060348152602001610b6660349139610511565b90529052905090565b604081565b600054610100900460ff168061032a575061032a61058a565b80610338575060005460ff16155b6103545760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff1615801561037f576000805460ff1961ff0019909116610100171660011790555b61038761059b565b6103926000336101fd565b80156103a4576000805461ff00191690555b50565b60008281526033602052604081206103bf9083610619565b90505b92915050565b60008281526033602052604081206103bf9083610625565b600081565b601381565b60008181526033602052604081206103c29061063a565b60008281526033602052604090206002015461041f9061015d61043b565b6102435760405162461bcd60e51b81526004016101f4906109e8565b3390565b60008281526033602052604090206104579082610645565b156102075761046461043b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206104c0908261065a565b15610207576104cd61043b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008060409050600060208451601f018161052857fe5b0460010190506000825160005b8381101561055157602081028781015190830152600101610535565b50602081848202816013600019fa905194509050806105825760405162461bcd60e51b81526004016101f490610a86565b505050919050565b60006105953061066f565b15905090565b600054610100900460ff16806105b457506105b461058a565b806105c2575060005460ff16155b6105de5760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff16158015610609576000805460ff1961ff0019909116610100171660011790555b610611610675565b610392610675565b60006103bf83836106f6565b60006103bf836001600160a01b03841661073b565b60006103c282610753565b60006103bf836001600160a01b038416610757565b60006103bf836001600160a01b0384166107a1565b3b151590565b600054610100900460ff168061068e575061068e61058a565b8061069c575060005460ff16155b6106b85760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff16158015610392576000805460ff1961ff00199091166101001716600117905580156103a4576000805461ff001916905550565b815460009082106107195760405162461bcd60e51b81526004016101f490610957565b82600001828154811061072857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000610763838361073b565b610799575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556103c2565b5060006103c2565b6000818152600183016020526040812054801561085d57835460001980830191908101906000908790839081106107d457fe5b90600052602060002001549050808760000184815481106107f157fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061082157fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506103c2565b60009150506103c2565b5092915050565b6040518060400160405280610881610893565b815260200161088e610893565b905290565b604051806040016040528060008152602001600081525090565b6000602082840312156108be578081fd5b5035919050565b600080604083850312156108d7578081fd5b8235915060208301356001600160a01b03811681146108f4578182fd5b809150509250929050565b60008060408385031215610911578182fd5b50508035926020909101359150565b80518252602090810151910152565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526019908201527f47657420636f6e6669672075696e74323536206661696c656400000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b6000608082019050610b1f828451610920565b6020830151610867604084018261092056fe736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657930736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657933736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657932736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657931a264697066735822122053629a129ff1abe9c9555f5979234152217ffc755596b6e5bc41be252073a65e64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639010d07c116100715780639010d07c1461012f57806391d148541461014f578063a217fddf1461016f578063ab2a585314610177578063ca15c8731461017f578063d547741f14610192576100b4565b8063248a9ca3146100b95780632f2ff15d146100e257806336568abe146100f7578063554ef7a61461010a578063573c8aba1461011f5780638129fc1c14610127575b600080fd5b6100cc6100c73660046108ad565b6101a5565b6040516100d9919061094e565b60405180910390f35b6100f56100f03660046108c5565b6101ba565b005b6100f56101053660046108c5565b61020b565b61011261024d565b6040516100d99190610b0c565b6100cc61030c565b6100f5610311565b61014261013d3660046108ff565b6103a7565b6040516100d9919061092f565b61016261015d3660046108c5565b6103c8565b6040516100d99190610943565b6100cc6103e0565b6100cc6103e5565b6100cc61018d3660046108ad565b6103ea565b6100f56101a03660046108c5565b610401565b60009081526033602052604090206002015490565b6000828152603360205260409020600201546101d89061015d61043b565b6101fd5760405162461bcd60e51b81526004016101f490610999565b60405180910390fd5b610207828261043f565b5050565b61021361043b565b6001600160a01b0316816001600160a01b0316146102435760405162461bcd60e51b81526004016101f490610abd565b61020782826104a8565b61025561086e565b6040805160e0810182526034608082018181529192839290830191829161028391610b3260a0870139610511565b81526020016102a9604051806060016040528060348152602001610bce60349139610511565b815250815260200160405180604001604052806102dd604051806060016040528060348152602001610b9a60349139610511565b8152602001610303604051806060016040528060348152602001610b6660349139610511565b90529052905090565b604081565b600054610100900460ff168061032a575061032a61058a565b80610338575060005460ff16155b6103545760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff1615801561037f576000805460ff1961ff0019909116610100171660011790555b61038761059b565b6103926000336101fd565b80156103a4576000805461ff00191690555b50565b60008281526033602052604081206103bf9083610619565b90505b92915050565b60008281526033602052604081206103bf9083610625565b600081565b601381565b60008181526033602052604081206103c29061063a565b60008281526033602052604090206002015461041f9061015d61043b565b6102435760405162461bcd60e51b81526004016101f4906109e8565b3390565b60008281526033602052604090206104579082610645565b156102075761046461043b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206104c0908261065a565b15610207576104cd61043b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008060409050600060208451601f018161052857fe5b0460010190506000825160005b8381101561055157602081028781015190830152600101610535565b50602081848202816013600019fa905194509050806105825760405162461bcd60e51b81526004016101f490610a86565b505050919050565b60006105953061066f565b15905090565b600054610100900460ff16806105b457506105b461058a565b806105c2575060005460ff16155b6105de5760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff16158015610609576000805460ff1961ff0019909116610100171660011790555b610611610675565b610392610675565b60006103bf83836106f6565b60006103bf836001600160a01b03841661073b565b60006103c282610753565b60006103bf836001600160a01b038416610757565b60006103bf836001600160a01b0384166107a1565b3b151590565b600054610100900460ff168061068e575061068e61058a565b8061069c575060005460ff16155b6106b85760405162461bcd60e51b81526004016101f490610a38565b600054610100900460ff16158015610392576000805460ff1961ff00199091166101001716600117905580156103a4576000805461ff001916905550565b815460009082106107195760405162461bcd60e51b81526004016101f490610957565b82600001828154811061072857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000610763838361073b565b610799575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556103c2565b5060006103c2565b6000818152600183016020526040812054801561085d57835460001980830191908101906000908790839081106107d457fe5b90600052602060002001549050808760000184815481106107f157fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061082157fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506103c2565b60009150506103c2565b5092915050565b6040518060400160405280610881610893565b815260200161088e610893565b905290565b604051806040016040528060008152602001600081525090565b6000602082840312156108be578081fd5b5035919050565b600080604083850312156108d7578081fd5b8235915060208301356001600160a01b03811681146108f4578182fd5b809150509250929050565b60008060408385031215610911578182fd5b50508035926020909101359150565b80518252602090810151910152565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526019908201527f47657420636f6e6669672075696e74323536206661696c656400000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b6000608082019050610b1f828451610920565b6020830151610867604084018261092056fe736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657930736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657933736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657932736b616c65436f6e6669672e6e6f6465496e666f2e77616c6c6574732e696d612e636f6d6d6f6e424c535075626c69634b657931a264697066735822122053629a129ff1abe9c9555f5979234152217ffc755596b6e5bc41be252073a65e64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.json b/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.json new file mode 100644 index 000000000..85b2c37aa --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/MessageProxyForSchain.json @@ -0,0 +1,743 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MessageProxyForSchain", + "sourceName": "contracts/schain/MessageProxyForSchain.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "dstChainHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "msgCounter", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "srcContract", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "dstContract", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "OutgoingMessage", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "msgCounter", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "PostMessageError", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "CHAIN_CONNECTOR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEBUGGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXTRA_CONTRACT_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "chainName", + "type": "string" + } + ], + "name": "addConnectedChain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "connectedChains", + "outputs": [ + { + "internalType": "uint256", + "name": "incomingMessageCounter", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "outgoingMessageCounter", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "inited", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "fromSchainName", + "type": "string" + } + ], + "name": "getIncomingMessagesCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + } + ], + "name": "getOutgoingMessagesCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract KeyStorage", + "name": "blsKeyStorage", + "type": "address" + }, + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "isConnectedChain", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyStorage", + "outputs": [ + { + "internalType": "contract KeyStorage", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "moveIncomingCounter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "fromChainName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "startingCounter", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "destinationContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct MessageProxyForSchain.Message[]", + "name": "messages", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "blsSignature", + "type": "uint256[2]" + }, + { + "internalType": "uint256", + "name": "hashA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "hashB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "counter", + "type": "uint256" + } + ], + "internalType": "struct MessageProxyForSchain.Signature", + "name": "signature", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "idxLastToPopNotIncluding", + "type": "uint256" + } + ], + "name": "postIncomingMessages", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetChainName", + "type": "string" + }, + { + "internalType": "address", + "name": "dstContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postOutgoingMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnSchain", + "type": "address" + } + ], + "name": "registerExtraContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnSchain", + "type": "address" + } + ], + "name": "registerExtraContractForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registryContracts", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeConnectedChain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnSchain", + "type": "address" + } + ], + "name": "removeExtraContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnSchain", + "type": "address" + } + ], + "name": "removeExtraContractForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "setCountersToZero", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "dstChain", + "type": "string" + }, + { + "internalType": "uint256", + "name": "msgCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "srcContract", + "type": "address" + }, + { + "internalType": "address", + "name": "dstContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct MessageProxyForSchain.OutgoingMessageData", + "name": "message", + "type": "tuple" + } + ], + "name": "verifyOutgoingMessageData", + "outputs": [ + { + "internalType": "bool", + "name": "isValidMessage", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506135bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063999ab9aa11610104578063cab010c9116100a2578063f2f6360511610071578063f2f63605146103d7578063f399e22e146103ea578063f79f7954146103fd578063f8c88a1614610405576101da565b8063cab010c91461037c578063d547741f1461038f578063e45b045f146103a2578063e6ab8403146103b5576101da565b8063a8bb1b7d116100de578063a8bb1b7d1461033b578063ac2f861e1461034e578063b51cc14d14610356578063ca15c87314610369576101da565b8063999ab9aa1461030d578063a217fddf14610320578063a78868c814610328576101da565b80634da84ce51161017c57806377fe0f311161014b57806377fe0f31146102a75780637c5ad80c146102ba5780639010d07c146102da57806391d14854146102fa576101da565b80634da84ce514610266578063523c8ab61461027957806365e3781f1461028157806367ec602014610294576101da565b806336568abe116101b857806336568abe146102255780633b690b6b146102385780633cdd2cc3146102405780634d20385914610253576101da565b806313c52260146101df578063248a9ca3146101fd5780632f2ff15d14610210575b600080fd5b6101e7610418565b6040516101f49190612b56565b60405180910390f35b6101e761020b3660046126ad565b61043c565b61022361021e3660046126c5565b610451565b005b6102236102333660046126c5565b6104a2565b6101e76104e4565b61022361024e366004612763565b6104ea565b610223610261366004612671565b6105fa565b610223610274366004612763565b6106d3565b6101e76107a5565b61022361028f3660046127f8565b6107b7565b6101e76102a2366004612763565b61095f565b6101e76102b5366004612763565b6109cc565b6102cd6102c83660046126c5565b610a34565b6040516101f49190612b4b565b6102ed6102e83660046126f4565b610a54565b6040516101f49190612b13565b6102cd6103083660046126c5565b610a73565b6102cd61031b366004612763565b610a8b565b6101e7610ad7565b61022361033636600461287a565b610adc565b610223610349366004612671565b610d3b565b6101e7610e10565b6102cd61036436600461297a565b610e34565b6101e76103773660046126ad565b610e9b565b61022361038a3660046127a3565b610eb2565b61022361039d3660046126c5565b610fb5565b6102236103b0366004612763565b610fef565b6103c86103c33660046126ad565b6110be565b6040516101f493929190613378565b6102236103e5366004612763565b6110e2565b6102236103f8366004612715565b6111fb565b6102ed611351565b6102236104133660046127a3565b611360565b7f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19181565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461046f9061030861145f565b6104945760405162461bcd60e51b815260040161048b90612c81565b60405180910390fd5b61049e8282611464565b5050565b6104aa61145f565b6001600160a01b0316816001600160a01b0316146104da5760405162461bcd60e51b815260040161048b90613329565b61049e82826114cd565b60665481565b6105147f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19133610a73565b6105305760405162461bcd60e51b815260040161048b90612d48565b60008282604051602001610545929190612ad4565b60405160208183030381529060405280519060200120905060405160200161056c90612b00565b604051602081830303815290604052805190602001208114156105a15760405162461bcd60e51b815260040161048b906132e0565b60008181526067602052604090206002015460ff166105d25760405162461bcd60e51b815260040161048b906131cf565b60009081526067602052604081208181556001810191909155600201805460ff191690555050565b61061260008051602061350283398151915233610a73565b61062e5760405162461bcd60e51b815260040161048b90612d7d565b610640816001600160a01b0316611536565b61065c5760405162461bcd60e51b815260040161048b90613265565b6001600160a01b0381166000908152600080516020613568833981519152602052604090205460ff16156106a25760405162461bcd60e51b815260040161048b9061329c565b6001600160a01b0316600090815260008051602061356883398151915260205260409020805460ff19166001179055565b6106fd7f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94633610a73565b6107195760405162461bcd60e51b815260040161048b9061322e565b6000606760008484604051602001610732929190612ad4565b604051602081830303815290604052805190602001208152602001908152602001600020600001819055506000606760008484604051602001610776929190612ad4565b604051602081830303815290604052805190602001208152602001908152602001600020600101819055505050565b60008051602061350283398151915281565b600085856040516020016107cc929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff166108165760405162461bcd60e51b815260040161048b9061312f565b336000908152600080516020613568833981519152602052604090205460ff168061085a57506000818152606b6020908152604080832033845290915290205460ff165b6108765760405162461bcd60e51b815260040161048b90612d07565b60008181526067602052604090206001908101546108939161153c565b60008281526067602090815260409182902060010192909255805160c0601f89018490049093028101830190915260a08101878152610957928291908a908a908190850183828082843760009201829052509385525050508481526067602090815260409182902060010154600019018184015233828401526001600160a01b03891660608401528151601f880182900482028101820190925286825260809092019187908790819084018382808284376000920191909152505050915250611561565b505050505050565b6000808383604051602001610975929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff166109b15760009150506109c6565b60009081526067602052604090206001015490505b92915050565b60008083836040516020016109e2929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff16610a1e5760009150506109c6565b6000908152606760205260409020549392505050565b606b60209081526000928352604080842090915290825290205460ff1681565b6000828152603360205260408120610a6c9083611636565b9392505050565b6000828152603360205260408120610a6c9083611642565b6000606760008484604051602001610aa4929190612ad4565b60408051808303601f190181529181528151602092830120835290820192909252016000206002015460ff169392505050565b600081565b60008787604051602001610af1929190612ad4565b604051602081830303815290604052805190602001209050610b1c610b168686611657565b84611746565b610b385760405162461bcd60e51b815260040161048b90612f4d565b60008181526067602052604090206002015460ff16610b695760405162461bcd60e51b815260040161048b906131cf565b6000818152606760205260409020548614610b965760405162461bcd60e51b815260040161048b90613033565b60005b84811015610cfd576000828152606b6020526040812090878784818110610bbc57fe5b9050602002810190610bce91906133d5565b610bdf906040810190602001612671565b6001600160a01b0316815260208101919091526040016000205460ff16158015610c6c57506000808052606b60205260008051602061356883398151915290878784818110610c2a57fe5b9050602002810190610c3c91906133d5565b610c4d906040810190602001612671565b6001600160a01b0316815260208101919091526040016000205460ff16155b15610cc8578087017f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e5960405180606001604052806026815260200161352260269139604051610cbb9190612ba6565b60405180910390a2610cf5565b610cf382878784818110610cd857fe5b9050602002810190610cea91906133d5565b896001016117f3565b505b600101610b99565b50600081815260676020526040902054610d17908561153c565b600082815260676020526040902055610d308183611958565b505050505050505050565b610d5360008051602061350283398151915233610a73565b610d6f5760405162461bcd60e51b815260040161048b90612ea0565b610d81816001600160a01b0316611536565b610d9d5760405162461bcd60e51b815260040161048b90613265565b6001600160a01b0381166000908152600080516020613568833981519152602052604090205460ff16610de25760405162461bcd60e51b815260040161048b90612fbb565b6001600160a01b0316600090815260008051602061356883398151915260205260409020805460ff19169055565b7f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94681565b6000808260000151604051602001610e4c9190612ae4565b60408051601f198184030181529181528151602092830120600081815260688452828120878501518252909352912054909150610e88846119e4565b811415610e9457600192505b5050919050565b60008181526033602052604081206109c690611a77565b60008383604051602001610ec7929190612ad4565b604051602081830303815290604052805190602001209050610ef760008051602061350283398151915233610a73565b610f135760405162461bcd60e51b815260040161048b90613090565b610f25826001600160a01b0316611536565b610f415760405162461bcd60e51b815260040161048b90613265565b6000818152606b602090815260408083206001600160a01b038616845290915290205460ff1615610f845760405162461bcd60e51b815260040161048b9061329c565b6000908152606b602090815260408083206001600160a01b03909416835292905220805460ff191660011790555050565b600082815260336020526040902060020154610fd39061030861145f565b6104da5760405162461bcd60e51b815260040161048b90612efd565b6110197f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94633610a73565b6110355760405162461bcd60e51b815260040161048b9061322e565b61107d6001606760008585604051602001611051929190612ad4565b60408051601f19818403018152918152815160209283012083529082019290925201600020549061153c565b606760008484604051602001611094929190612ad4565b60408051601f19818403018152918152815160209283012083529082019290925201600020555050565b60676020526000908152604090208054600182015460029092015490919060ff1683565b61110c7f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19133610a73565b6111285760405162461bcd60e51b815260040161048b90612d48565b6000828260405160200161113d929190612ad4565b6040516020818303038152906040528051906020012090506066548114156111775760405162461bcd60e51b815260040161048b90612c4a565b60008181526067602052604090206002015460ff16156111a95760405162461bcd60e51b815260040161048b90612f84565b604080516060810182526000808252602080830182815260018486018181529684526067909252939091209151825591519181019190915590516002909101805460ff19169115159190911790555050565b600054610100900460ff16806112145750611214611a82565b80611222575060005460ff16155b61123e5760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611269576000805460ff1961ff0019909116610100171660011790555b611271611a93565b61127c600033610494565b606580546001600160a01b0319166001600160a01b0385161790556040805160608101825260008082526020808301829052600183850152925191926067926112c59101612b00565b60408051808303601f19018152918152815160209283012083528282019390935290820160002083518155838201516001820155928201516002909301805460ff1916931515939093179092555161131f91849101612ae4565b60408051601f198184030181529190528051602090910120606655801561134c576000805461ff00191690555b505050565b6065546001600160a01b031681565b60008383604051602001611375929190612ad4565b6040516020818303038152906040528051906020012090506113a560008051602061350283398151915233610a73565b6113c15760405162461bcd60e51b815260040161048b90612bfb565b6113d3826001600160a01b0316611536565b6113ef5760405162461bcd60e51b815260040161048b90613265565b6000818152606b602090815260408083206001600160a01b038616845290915290205460ff166114315760405162461bcd60e51b815260040161048b90612fbb565b6000908152606b602090815260408083206001600160a01b03909416835292905220805460ff191690555050565b335b90565b600082815260336020526040902061147c9082611b26565b1561049e5761148961145f565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206114e59082611b3b565b1561049e576114f261145f565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b3b151590565b600082820183811015610a6c5760405162461bcd60e51b815260040161048b90612cd0565b805160405160009161157591602001612ae4565b60405160208183030381529060405280519060200120905081604001516001600160a01b03168260200151827f803d7f3ca0e5f93fcce39fa29812ed57a95a151594966e17125220132741c6b0856060015186608001516040516115da929190612b27565b60405180910390a46115eb826119e4565b6000828152606860209081526040808320606a808452828520805486529184529184209490945591849052525461162390600161153c565b6000918252606a60205260409091205550565b6000610a6c8383611b50565b6000610a6c836001600160a01b038416611b95565b6000606060005b83811015611736578185858381811061167357fe5b905060200281019061168591906133d5565b611693906020810190612671565b60601b6001600160601b0319168686848181106116ac57fe5b90506020028101906116be91906133d5565b6116cf906040810190602001612671565b60601b6001600160601b0319168787858181106116e857fe5b90506020028101906116fa91906133d5565b611708906040810190613390565b60405160200161171c959493929190612a9d565b60408051601f19818403018152919052915060010161165e565b5080516020909101209392505050565b60408051808201825282358152602080840135908201526065548251632aa77bd360e11b81528351600094610a6c949388936080808a013594938a01359360608b0135936001600160a01b03169263554ef7a6926004808301939192829003018186803b1580156117b657600080fd5b505afa1580156117ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ee919061293a565b611bad565b60006118056040840160208501612671565b6001600160a01b031663884cee5a856118216020870187612671565b61182e6040880188613390565b6040518563ffffffff1660e01b815260040161184d9493929190612b5f565b602060405180830381600087803b15801561186757600080fd5b505af1925050508015611897575060408051601f3d908101601f191682019092526118949181019061268d565b60015b611950576118a3613447565b806118ae57506118f0565b827f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e59826040516118de9190612ba6565b60405180910390a26000915050610a6c565b3d80801561191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50827f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e59826040516118de9190612ba6565b949350505050565b6000828152606a602090815260408083205460699092528220545b838110156119ad57818110611987576119ad565b600085815260686020908152604080832084845290915281205560019283019201611973565b5081156119dd576000848152606960205260409020546119cd908361153c565b6000858152606960205260409020555b5092915050565b6000606082600001516040516020016119fd9190612ae4565b60405160208183030381529060405280519060200120836020015160001b846040015160601b6001600160601b031916856060015160601b6001600160601b0319168660800151604051602001611a58959493929190612a62565b60408051808303601f1901815291905280516020909101209392505050565b60006109c682611ceb565b6000611a8d30611536565b15905090565b600054610100900460ff1680611aac5750611aac611a82565b80611aba575060005460ff16155b611ad65760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611b01576000805460ff1961ff0019909116610100171660011790555b611b09611cef565b611b11611cef565b8015611b23576000805461ff00191690555b50565b6000610a6c836001600160a01b038416611d70565b6000610a6c836001600160a01b038416611dba565b81546000908210611b735760405162461bcd60e51b815260040161048b90612bb9565b826000018281548110611b8257fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6000611bb887611e80565b611bd45760405162461bcd60e51b815260040161048b90612e11565b611be086868686611eb6565b611bec57506000611ce1565b6000611bfb8860200151611f88565b9050611c0b886000015182611fac565b611c275760405162461bcd60e51b815260040161048b90613206565b611c318585611fac565b611c4d5760405162461bcd60e51b815260040161048b90612e41565b611c556124f2565b611c5d611fdc565b9050611c688461209c565b611c845760405162461bcd60e51b815260040161048b906131a1565b611cdc8960000151838360000151602001518460000151600001518560200151602001518660200151600001518c8c8c60000151602001518d60000151600001518e60200151602001518f60200151600001516120b0565b925050505b9695505050505050565b5490565b600054610100900460ff1680611d085750611d08611a82565b80611d16575060005460ff16155b611d325760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611b11576000805460ff1961ff0019909116610100171660011790558015611b23576000805461ff001916905550565b6000611d7c8383611b95565b611db2575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109c6565b5060006109c6565b60008181526001830160205260408120548015611e765783546000198083019190810190600090879083908110611ded57fe5b9060005260206000200154905080876000018481548110611e0a57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611e3a57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506109c6565b60009150506109c6565b600060008051602061354883398151915282600001511080156109c6575050602001516000805160206135488339815191521190565b60006064841115611ec957506000611950565b60008051602061354883398151915280860690611ee6828761153c565b81611eed57fe5b069050600060008051602061354883398151915260036000805160206135488339815191528460008051602061354883398151915286870909089050611f426000805160206135488339815191526002612159565b841080611f6057508060008051602061354883398151915285860914155b80611f6b5750848214155b15611f7b57600092505050611950565b5060019695505050505050565b60006109c6600080516020613548833981519152611fa6818561218b565b906121b3565b600060008051602061354883398151915280600381868188890909088180611fd057fe5b84850914949350505050565b611fe46124f2565b50604080516080810182527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed8183019081527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26060830152815281518083019092527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa82527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60208381019190915281019190915290565b60006109c6826000015183602001516121e5565b6000806120bb612517565b8e8152602081018e9052604081018d9052606081018c9052608081018b905260a081018a905260c0810189905260e081018890526101008101879052610120810186905261014081018590526101608101849052612117612536565b602081610180846008600019fa9250826121435760405162461bcd60e51b815260040161048b90613173565b5115159f9e505050505050505050505050505050565b600080821161217a5760405162461bcd60e51b815260040161048b90612e69565b81838161218357fe5b049392505050565b6000828211156121ad5760405162461bcd60e51b815260040161048b90612dda565b50900390565b60008082116121d45760405162461bcd60e51b815260040161048b90612ffc565b8183816121dd57fe5b069392505050565b60006121f18383612264565b156121fe575060016109c6565b612206612554565b61220f83612297565b9050612219612554565b61224761222461231c565b61224161223a886122348a612297565b9061237a565b859061243e565b9061243e565b805190915015801561225b57506020810151155b95945050505050565b815160009015801561227857506020830151155b8015612285575081516001145b8015610a6c5750506020015115919050565b61229f612554565b60008051602061354883398151915260008160208501518551099050600082806122c557fe5b83806122cd57fe5b84806122d557fe5b8760200151600187030987510884806122ea57fe5b60208801518851080990506040518060400160405280828152602001848061230e57fe5b848508905295945050505050565b612324612554565b50604080518082019091527f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e581527e9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2602082015290565b612382612554565b600080516020613548833981519152612399612554565b604051806040016040528083806123ac57fe5b8651885109815260200183806123be57fe5b86602001518860200151099052905081806123d557fe5b82806123dd57fe5b82602001516001850309825108835281806123f457fe5b82806123fc57fe5b60208301518351088303838061240e57fe5b848061241657fe5b6020880151885108858061242657fe5b60208a01518a51080908602084015250909392505050565b612446612554565b81518351600080516020613548833981519152911161247757808061246757fe5b8351855190830390088252612497565b61249481828061248357fe5b8651865190850390088303906121b3565b82525b82602001518460200151106124c55780806124ae57fe5b8360200151820385602001510860208301526119dd565b6124e68182806124d157fe5b866020015184038660200151088303906121b3565b60208301525092915050565b6040518060400160405280612505612554565b8152602001612512612554565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b604051806040016040528060008152602001600081525090565b80356109c6816134ec565b60008083601f84011261258a578182fd5b50813567ffffffffffffffff8111156125a1578182fd5b6020830191508360208285010111156125b957600080fd5b9250929050565b600082601f8301126125d0578081fd5b813567ffffffffffffffff8111156125e6578182fd5b6125f9601f8201601f19166020016133ea565b915080825283602082850101111561261057600080fd5b8060208401602084013760009082016020015292915050565b60006040828403121561263a578081fd5b61264460406133ea565b9050815181526020820151602082015292915050565b600060a0828403121561266b578081fd5b50919050565b600060208284031215612682578081fd5b8135610a6c816134ec565b60006020828403121561269e578081fd5b81518015158114610a6c578182fd5b6000602082840312156126be578081fd5b5035919050565b600080604083850312156126d7578081fd5b8235915060208301356126e9816134ec565b809150509250929050565b60008060408385031215612706578182fd5b50508035926020909101359150565b60008060408385031215612727578182fd5b8235612732816134ec565b9150602083013567ffffffffffffffff81111561274d578182fd5b612759858286016125c0565b9150509250929050565b60008060208385031215612775578182fd5b823567ffffffffffffffff81111561278b578283fd5b61279785828601612579565b90969095509350505050565b6000806000604084860312156127b7578081fd5b833567ffffffffffffffff8111156127cd578182fd5b6127d986828701612579565b90945092505060208401356127ed816134ec565b809150509250925092565b60008060008060006060868803121561280f578081fd5b853567ffffffffffffffff80821115612826578283fd5b61283289838a01612579565b909750955060208801359150612847826134ec565b9093506040870135908082111561285c578283fd5b5061286988828901612579565b969995985093965092949392505050565b6000806000806000806000610120888a031215612895578485fd5b873567ffffffffffffffff808211156128ac578687fd5b6128b88b838c01612579565b909950975060208a0135965060408a01359150808211156128d7578384fd5b818a0191508a601f8301126128ea578384fd5b8135818111156128f8578485fd5b8b6020808302850101111561290b578485fd5b6020830196508095505050506129248960608a0161265a565b9150610100880135905092959891949750929550565b60006080828403121561294b578081fd5b61295560406133ea565b61295f8484612629565b815261296e8460408501612629565b60208201529392505050565b60006020828403121561298b578081fd5b813567ffffffffffffffff808211156129a2578283fd5b9083019060a082860312156129b5578283fd5b6129bf60a06133ea565b8235828111156129cd578485fd5b6129d9878286016125c0565b825250602083013560208201526129f3866040850161256e565b6040820152612a05866060850161256e565b6060820152608083013582811115612a1b578485fd5b612a27878286016125c0565b60808301525095945050505050565b60008151808452612a4e816020860160208601613411565b601f01601f19169290920160200192915050565b60008682528560208301528460408301528360608301528251612a8c816080850160208701613411565b919091016080019695505050505050565b60008651612aaf818460208b01613411565b8201868152602081018690528385604083013790920160400191825250949350505050565b6000828483379101908152919050565b60008251612af6818460208701613411565b9190910192915050565b6613585a5b9b995d60ca1b815260070190565b6001600160a01b0391909116815260200190565b6001600160a01b038316815260406020820181905260009061195090830184612a36565b901515815260200190565b90815260200190565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b600060208252610a6c6020830184612a36565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656d6f766560408201526e08195e1d1c984818dbdb9d1c9858dd608a1b606082015260800190565b6020808252601c908201527f53636861696e2063616e6e6f7420636f6e6e65637420697473656c6600000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f53656e64657220636f6e7472616374206973206e6f74207265676973746572656040820152601960fa1b606082015260800190565b6020808252818101527f434841494e5f434f4e4e4543544f525f524f4c45206973207265717569726564604082015260600190565b60208082526039908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656769737460408201527f657220657874726120636f6e747261637420666f7220616c6c00000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526016908201527514da59db985d1d5c99481a5cc81b9bdd081d985b1a5960521b604082015260600190565b6020808252600e908201526d48617368206e6f7420696e20473160901b604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526037908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656d6f766560408201527f20657874726120636f6e747261637420666f7220616c6c000000000000000000606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526019908201527f5369676e6174757265206973206e6f7420766572696669656400000000000000604082015260600190565b6020808252601a908201527f436861696e20697320616c726561647920636f6e6e6563746564000000000000604082015260600190565b60208082526021908201527f457874726120636f6e747261637420697320616c72656164792072656d6f76656040820152601960fa1b606082015260800190565b60208082526018908201527f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000604082015260600190565b60208082526038908201527f5374617274696e6720636f756e746572206973206e6f74207175616c20746f2060408201527f696e636f6d696e67206d65737361676520636f756e7465720000000000000000606082015260800190565b60208082526031908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f20726567697374604082015270195c88195e1d1c984818dbdb9d1c9858dd607a1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526024908201527f44657374696e6174696f6e20636861696e206973206e6f7420696e697469616c6040820152631a5e995960e21b606082015260800190565b60208082526014908201527314185a5c9a5b99c818da1958dac819985a5b195960621b604082015260600190565b602080825260149082015273283ab13634b19025b2bc903737ba1034b710239960611b604082015260600190565b60208082526018908201527f436861696e206973206e6f7420696e697469616c697a65640000000000000000604082015260600190565b6020808252600e908201526d5369676e206e6f7420696e20473160901b604082015260600190565b60208082526019908201527f44454255474745525f524f4c4520697320726571756972656400000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b60208082526024908201527f457874726120636f6e747261637420697320616c726561647920726567697374604082015263195c995960e21b606082015260800190565b60208082526029908201527f4e657720636861696e20686173682063616e6e6f7420626520657175616c20746040820152681bc813585a5b9b995d60ba1b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b92835260208301919091521515604082015260600190565b6000808335601e198436030181126133a6578283fd5b83018035915067ffffffffffffffff8211156133c0578283fd5b6020019150368190038213156125b957600080fd5b60008235605e19833603018112612af6578182fd5b60405181810167ffffffffffffffff8111828210171561340957600080fd5b604052919050565b60005b8381101561342c578181015183820152602001613414565b8381111561343b576000848401525b50505050565b60e01c90565b600060443d101561345757611461565b600481823e6308c379a061346b8251613441565b1461347557611461565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156134a55750505050611461565b828401925082519150808211156134bf5750505050611461565b503d830160208284010111156134d757505050611461565b601f01601f1916810160200160405291505090565b6001600160a01b0381168114611b2357600080fdfe6155b5aac15ce9aa193c0527a6f43be0a36a7e2e7496c2b615c0e5f92284277344657374696e6174696f6e20636f6e7472616374206973206e6f74207265676973746572656430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47c8cc8bda7ad4886bea3ebbdafa02e79d37c39bf4011696b26a31a0802fd9458ba2646970667358221220093c2d278aeb4ed3411e26a3f398981ce473e254dc3a9b827a467e2847a66c6d64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c8063999ab9aa11610104578063cab010c9116100a2578063f2f6360511610071578063f2f63605146103d7578063f399e22e146103ea578063f79f7954146103fd578063f8c88a1614610405576101da565b8063cab010c91461037c578063d547741f1461038f578063e45b045f146103a2578063e6ab8403146103b5576101da565b8063a8bb1b7d116100de578063a8bb1b7d1461033b578063ac2f861e1461034e578063b51cc14d14610356578063ca15c87314610369576101da565b8063999ab9aa1461030d578063a217fddf14610320578063a78868c814610328576101da565b80634da84ce51161017c57806377fe0f311161014b57806377fe0f31146102a75780637c5ad80c146102ba5780639010d07c146102da57806391d14854146102fa576101da565b80634da84ce514610266578063523c8ab61461027957806365e3781f1461028157806367ec602014610294576101da565b806336568abe116101b857806336568abe146102255780633b690b6b146102385780633cdd2cc3146102405780634d20385914610253576101da565b806313c52260146101df578063248a9ca3146101fd5780632f2ff15d14610210575b600080fd5b6101e7610418565b6040516101f49190612b56565b60405180910390f35b6101e761020b3660046126ad565b61043c565b61022361021e3660046126c5565b610451565b005b6102236102333660046126c5565b6104a2565b6101e76104e4565b61022361024e366004612763565b6104ea565b610223610261366004612671565b6105fa565b610223610274366004612763565b6106d3565b6101e76107a5565b61022361028f3660046127f8565b6107b7565b6101e76102a2366004612763565b61095f565b6101e76102b5366004612763565b6109cc565b6102cd6102c83660046126c5565b610a34565b6040516101f49190612b4b565b6102ed6102e83660046126f4565b610a54565b6040516101f49190612b13565b6102cd6103083660046126c5565b610a73565b6102cd61031b366004612763565b610a8b565b6101e7610ad7565b61022361033636600461287a565b610adc565b610223610349366004612671565b610d3b565b6101e7610e10565b6102cd61036436600461297a565b610e34565b6101e76103773660046126ad565b610e9b565b61022361038a3660046127a3565b610eb2565b61022361039d3660046126c5565b610fb5565b6102236103b0366004612763565b610fef565b6103c86103c33660046126ad565b6110be565b6040516101f493929190613378565b6102236103e5366004612763565b6110e2565b6102236103f8366004612715565b6111fb565b6102ed611351565b6102236104133660046127a3565b611360565b7f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19181565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461046f9061030861145f565b6104945760405162461bcd60e51b815260040161048b90612c81565b60405180910390fd5b61049e8282611464565b5050565b6104aa61145f565b6001600160a01b0316816001600160a01b0316146104da5760405162461bcd60e51b815260040161048b90613329565b61049e82826114cd565b60665481565b6105147f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19133610a73565b6105305760405162461bcd60e51b815260040161048b90612d48565b60008282604051602001610545929190612ad4565b60405160208183030381529060405280519060200120905060405160200161056c90612b00565b604051602081830303815290604052805190602001208114156105a15760405162461bcd60e51b815260040161048b906132e0565b60008181526067602052604090206002015460ff166105d25760405162461bcd60e51b815260040161048b906131cf565b60009081526067602052604081208181556001810191909155600201805460ff191690555050565b61061260008051602061350283398151915233610a73565b61062e5760405162461bcd60e51b815260040161048b90612d7d565b610640816001600160a01b0316611536565b61065c5760405162461bcd60e51b815260040161048b90613265565b6001600160a01b0381166000908152600080516020613568833981519152602052604090205460ff16156106a25760405162461bcd60e51b815260040161048b9061329c565b6001600160a01b0316600090815260008051602061356883398151915260205260409020805460ff19166001179055565b6106fd7f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94633610a73565b6107195760405162461bcd60e51b815260040161048b9061322e565b6000606760008484604051602001610732929190612ad4565b604051602081830303815290604052805190602001208152602001908152602001600020600001819055506000606760008484604051602001610776929190612ad4565b604051602081830303815290604052805190602001208152602001908152602001600020600101819055505050565b60008051602061350283398151915281565b600085856040516020016107cc929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff166108165760405162461bcd60e51b815260040161048b9061312f565b336000908152600080516020613568833981519152602052604090205460ff168061085a57506000818152606b6020908152604080832033845290915290205460ff165b6108765760405162461bcd60e51b815260040161048b90612d07565b60008181526067602052604090206001908101546108939161153c565b60008281526067602090815260409182902060010192909255805160c0601f89018490049093028101830190915260a08101878152610957928291908a908a908190850183828082843760009201829052509385525050508481526067602090815260409182902060010154600019018184015233828401526001600160a01b03891660608401528151601f880182900482028101820190925286825260809092019187908790819084018382808284376000920191909152505050915250611561565b505050505050565b6000808383604051602001610975929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff166109b15760009150506109c6565b60009081526067602052604090206001015490505b92915050565b60008083836040516020016109e2929190612ad4565b60408051601f1981840301815291815281516020928301206000818152606790935291206002015490915060ff16610a1e5760009150506109c6565b6000908152606760205260409020549392505050565b606b60209081526000928352604080842090915290825290205460ff1681565b6000828152603360205260408120610a6c9083611636565b9392505050565b6000828152603360205260408120610a6c9083611642565b6000606760008484604051602001610aa4929190612ad4565b60408051808303601f190181529181528151602092830120835290820192909252016000206002015460ff169392505050565b600081565b60008787604051602001610af1929190612ad4565b604051602081830303815290604052805190602001209050610b1c610b168686611657565b84611746565b610b385760405162461bcd60e51b815260040161048b90612f4d565b60008181526067602052604090206002015460ff16610b695760405162461bcd60e51b815260040161048b906131cf565b6000818152606760205260409020548614610b965760405162461bcd60e51b815260040161048b90613033565b60005b84811015610cfd576000828152606b6020526040812090878784818110610bbc57fe5b9050602002810190610bce91906133d5565b610bdf906040810190602001612671565b6001600160a01b0316815260208101919091526040016000205460ff16158015610c6c57506000808052606b60205260008051602061356883398151915290878784818110610c2a57fe5b9050602002810190610c3c91906133d5565b610c4d906040810190602001612671565b6001600160a01b0316815260208101919091526040016000205460ff16155b15610cc8578087017f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e5960405180606001604052806026815260200161352260269139604051610cbb9190612ba6565b60405180910390a2610cf5565b610cf382878784818110610cd857fe5b9050602002810190610cea91906133d5565b896001016117f3565b505b600101610b99565b50600081815260676020526040902054610d17908561153c565b600082815260676020526040902055610d308183611958565b505050505050505050565b610d5360008051602061350283398151915233610a73565b610d6f5760405162461bcd60e51b815260040161048b90612ea0565b610d81816001600160a01b0316611536565b610d9d5760405162461bcd60e51b815260040161048b90613265565b6001600160a01b0381166000908152600080516020613568833981519152602052604090205460ff16610de25760405162461bcd60e51b815260040161048b90612fbb565b6001600160a01b0316600090815260008051602061356883398151915260205260409020805460ff19169055565b7f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94681565b6000808260000151604051602001610e4c9190612ae4565b60408051601f198184030181529181528151602092830120600081815260688452828120878501518252909352912054909150610e88846119e4565b811415610e9457600192505b5050919050565b60008181526033602052604081206109c690611a77565b60008383604051602001610ec7929190612ad4565b604051602081830303815290604052805190602001209050610ef760008051602061350283398151915233610a73565b610f135760405162461bcd60e51b815260040161048b90613090565b610f25826001600160a01b0316611536565b610f415760405162461bcd60e51b815260040161048b90613265565b6000818152606b602090815260408083206001600160a01b038616845290915290205460ff1615610f845760405162461bcd60e51b815260040161048b9061329c565b6000908152606b602090815260408083206001600160a01b03909416835292905220805460ff191660011790555050565b600082815260336020526040902060020154610fd39061030861145f565b6104da5760405162461bcd60e51b815260040161048b90612efd565b6110197f621a88c2734d2b469650b9ed1f143b5eea096e7e7bb5c68a326ac7aee5e7f94633610a73565b6110355760405162461bcd60e51b815260040161048b9061322e565b61107d6001606760008585604051602001611051929190612ad4565b60408051601f19818403018152918152815160209283012083529082019290925201600020549061153c565b606760008484604051602001611094929190612ad4565b60408051601f19818403018152918152815160209283012083529082019290925201600020555050565b60676020526000908152604090208054600182015460029092015490919060ff1683565b61110c7f2785f35fe7d8743aa971942d8474737bb31895d396eff2cc688a481e0221e19133610a73565b6111285760405162461bcd60e51b815260040161048b90612d48565b6000828260405160200161113d929190612ad4565b6040516020818303038152906040528051906020012090506066548114156111775760405162461bcd60e51b815260040161048b90612c4a565b60008181526067602052604090206002015460ff16156111a95760405162461bcd60e51b815260040161048b90612f84565b604080516060810182526000808252602080830182815260018486018181529684526067909252939091209151825591519181019190915590516002909101805460ff19169115159190911790555050565b600054610100900460ff16806112145750611214611a82565b80611222575060005460ff16155b61123e5760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611269576000805460ff1961ff0019909116610100171660011790555b611271611a93565b61127c600033610494565b606580546001600160a01b0319166001600160a01b0385161790556040805160608101825260008082526020808301829052600183850152925191926067926112c59101612b00565b60408051808303601f19018152918152815160209283012083528282019390935290820160002083518155838201516001820155928201516002909301805460ff1916931515939093179092555161131f91849101612ae4565b60408051601f198184030181529190528051602090910120606655801561134c576000805461ff00191690555b505050565b6065546001600160a01b031681565b60008383604051602001611375929190612ad4565b6040516020818303038152906040528051906020012090506113a560008051602061350283398151915233610a73565b6113c15760405162461bcd60e51b815260040161048b90612bfb565b6113d3826001600160a01b0316611536565b6113ef5760405162461bcd60e51b815260040161048b90613265565b6000818152606b602090815260408083206001600160a01b038616845290915290205460ff166114315760405162461bcd60e51b815260040161048b90612fbb565b6000908152606b602090815260408083206001600160a01b03909416835292905220805460ff191690555050565b335b90565b600082815260336020526040902061147c9082611b26565b1561049e5761148961145f565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526033602052604090206114e59082611b3b565b1561049e576114f261145f565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b3b151590565b600082820183811015610a6c5760405162461bcd60e51b815260040161048b90612cd0565b805160405160009161157591602001612ae4565b60405160208183030381529060405280519060200120905081604001516001600160a01b03168260200151827f803d7f3ca0e5f93fcce39fa29812ed57a95a151594966e17125220132741c6b0856060015186608001516040516115da929190612b27565b60405180910390a46115eb826119e4565b6000828152606860209081526040808320606a808452828520805486529184529184209490945591849052525461162390600161153c565b6000918252606a60205260409091205550565b6000610a6c8383611b50565b6000610a6c836001600160a01b038416611b95565b6000606060005b83811015611736578185858381811061167357fe5b905060200281019061168591906133d5565b611693906020810190612671565b60601b6001600160601b0319168686848181106116ac57fe5b90506020028101906116be91906133d5565b6116cf906040810190602001612671565b60601b6001600160601b0319168787858181106116e857fe5b90506020028101906116fa91906133d5565b611708906040810190613390565b60405160200161171c959493929190612a9d565b60408051601f19818403018152919052915060010161165e565b5080516020909101209392505050565b60408051808201825282358152602080840135908201526065548251632aa77bd360e11b81528351600094610a6c949388936080808a013594938a01359360608b0135936001600160a01b03169263554ef7a6926004808301939192829003018186803b1580156117b657600080fd5b505afa1580156117ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ee919061293a565b611bad565b60006118056040840160208501612671565b6001600160a01b031663884cee5a856118216020870187612671565b61182e6040880188613390565b6040518563ffffffff1660e01b815260040161184d9493929190612b5f565b602060405180830381600087803b15801561186757600080fd5b505af1925050508015611897575060408051601f3d908101601f191682019092526118949181019061268d565b60015b611950576118a3613447565b806118ae57506118f0565b827f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e59826040516118de9190612ba6565b60405180910390a26000915050610a6c565b3d80801561191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50827f4b7d3908626050c0d998d657e4e6f31cb43ed736bf2b9a1a0192494537ca0e59826040516118de9190612ba6565b949350505050565b6000828152606a602090815260408083205460699092528220545b838110156119ad57818110611987576119ad565b600085815260686020908152604080832084845290915281205560019283019201611973565b5081156119dd576000848152606960205260409020546119cd908361153c565b6000858152606960205260409020555b5092915050565b6000606082600001516040516020016119fd9190612ae4565b60405160208183030381529060405280519060200120836020015160001b846040015160601b6001600160601b031916856060015160601b6001600160601b0319168660800151604051602001611a58959493929190612a62565b60408051808303601f1901815291905280516020909101209392505050565b60006109c682611ceb565b6000611a8d30611536565b15905090565b600054610100900460ff1680611aac5750611aac611a82565b80611aba575060005460ff16155b611ad65760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611b01576000805460ff1961ff0019909116610100171660011790555b611b09611cef565b611b11611cef565b8015611b23576000805461ff00191690555b50565b6000610a6c836001600160a01b038416611d70565b6000610a6c836001600160a01b038416611dba565b81546000908210611b735760405162461bcd60e51b815260040161048b90612bb9565b826000018281548110611b8257fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6000611bb887611e80565b611bd45760405162461bcd60e51b815260040161048b90612e11565b611be086868686611eb6565b611bec57506000611ce1565b6000611bfb8860200151611f88565b9050611c0b886000015182611fac565b611c275760405162461bcd60e51b815260040161048b90613206565b611c318585611fac565b611c4d5760405162461bcd60e51b815260040161048b90612e41565b611c556124f2565b611c5d611fdc565b9050611c688461209c565b611c845760405162461bcd60e51b815260040161048b906131a1565b611cdc8960000151838360000151602001518460000151600001518560200151602001518660200151600001518c8c8c60000151602001518d60000151600001518e60200151602001518f60200151600001516120b0565b925050505b9695505050505050565b5490565b600054610100900460ff1680611d085750611d08611a82565b80611d16575060005460ff16155b611d325760405162461bcd60e51b815260040161048b906130e1565b600054610100900460ff16158015611b11576000805460ff1961ff0019909116610100171660011790558015611b23576000805461ff001916905550565b6000611d7c8383611b95565b611db2575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109c6565b5060006109c6565b60008181526001830160205260408120548015611e765783546000198083019190810190600090879083908110611ded57fe5b9060005260206000200154905080876000018481548110611e0a57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611e3a57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506109c6565b60009150506109c6565b600060008051602061354883398151915282600001511080156109c6575050602001516000805160206135488339815191521190565b60006064841115611ec957506000611950565b60008051602061354883398151915280860690611ee6828761153c565b81611eed57fe5b069050600060008051602061354883398151915260036000805160206135488339815191528460008051602061354883398151915286870909089050611f426000805160206135488339815191526002612159565b841080611f6057508060008051602061354883398151915285860914155b80611f6b5750848214155b15611f7b57600092505050611950565b5060019695505050505050565b60006109c6600080516020613548833981519152611fa6818561218b565b906121b3565b600060008051602061354883398151915280600381868188890909088180611fd057fe5b84850914949350505050565b611fe46124f2565b50604080516080810182527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed8183019081527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26060830152815281518083019092527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa82527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60208381019190915281019190915290565b60006109c6826000015183602001516121e5565b6000806120bb612517565b8e8152602081018e9052604081018d9052606081018c9052608081018b905260a081018a905260c0810189905260e081018890526101008101879052610120810186905261014081018590526101608101849052612117612536565b602081610180846008600019fa9250826121435760405162461bcd60e51b815260040161048b90613173565b5115159f9e505050505050505050505050505050565b600080821161217a5760405162461bcd60e51b815260040161048b90612e69565b81838161218357fe5b049392505050565b6000828211156121ad5760405162461bcd60e51b815260040161048b90612dda565b50900390565b60008082116121d45760405162461bcd60e51b815260040161048b90612ffc565b8183816121dd57fe5b069392505050565b60006121f18383612264565b156121fe575060016109c6565b612206612554565b61220f83612297565b9050612219612554565b61224761222461231c565b61224161223a886122348a612297565b9061237a565b859061243e565b9061243e565b805190915015801561225b57506020810151155b95945050505050565b815160009015801561227857506020830151155b8015612285575081516001145b8015610a6c5750506020015115919050565b61229f612554565b60008051602061354883398151915260008160208501518551099050600082806122c557fe5b83806122cd57fe5b84806122d557fe5b8760200151600187030987510884806122ea57fe5b60208801518851080990506040518060400160405280828152602001848061230e57fe5b848508905295945050505050565b612324612554565b50604080518082019091527f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e581527e9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2602082015290565b612382612554565b600080516020613548833981519152612399612554565b604051806040016040528083806123ac57fe5b8651885109815260200183806123be57fe5b86602001518860200151099052905081806123d557fe5b82806123dd57fe5b82602001516001850309825108835281806123f457fe5b82806123fc57fe5b60208301518351088303838061240e57fe5b848061241657fe5b6020880151885108858061242657fe5b60208a01518a51080908602084015250909392505050565b612446612554565b81518351600080516020613548833981519152911161247757808061246757fe5b8351855190830390088252612497565b61249481828061248357fe5b8651865190850390088303906121b3565b82525b82602001518460200151106124c55780806124ae57fe5b8360200151820385602001510860208301526119dd565b6124e68182806124d157fe5b866020015184038660200151088303906121b3565b60208301525092915050565b6040518060400160405280612505612554565b8152602001612512612554565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b604051806040016040528060008152602001600081525090565b80356109c6816134ec565b60008083601f84011261258a578182fd5b50813567ffffffffffffffff8111156125a1578182fd5b6020830191508360208285010111156125b957600080fd5b9250929050565b600082601f8301126125d0578081fd5b813567ffffffffffffffff8111156125e6578182fd5b6125f9601f8201601f19166020016133ea565b915080825283602082850101111561261057600080fd5b8060208401602084013760009082016020015292915050565b60006040828403121561263a578081fd5b61264460406133ea565b9050815181526020820151602082015292915050565b600060a0828403121561266b578081fd5b50919050565b600060208284031215612682578081fd5b8135610a6c816134ec565b60006020828403121561269e578081fd5b81518015158114610a6c578182fd5b6000602082840312156126be578081fd5b5035919050565b600080604083850312156126d7578081fd5b8235915060208301356126e9816134ec565b809150509250929050565b60008060408385031215612706578182fd5b50508035926020909101359150565b60008060408385031215612727578182fd5b8235612732816134ec565b9150602083013567ffffffffffffffff81111561274d578182fd5b612759858286016125c0565b9150509250929050565b60008060208385031215612775578182fd5b823567ffffffffffffffff81111561278b578283fd5b61279785828601612579565b90969095509350505050565b6000806000604084860312156127b7578081fd5b833567ffffffffffffffff8111156127cd578182fd5b6127d986828701612579565b90945092505060208401356127ed816134ec565b809150509250925092565b60008060008060006060868803121561280f578081fd5b853567ffffffffffffffff80821115612826578283fd5b61283289838a01612579565b909750955060208801359150612847826134ec565b9093506040870135908082111561285c578283fd5b5061286988828901612579565b969995985093965092949392505050565b6000806000806000806000610120888a031215612895578485fd5b873567ffffffffffffffff808211156128ac578687fd5b6128b88b838c01612579565b909950975060208a0135965060408a01359150808211156128d7578384fd5b818a0191508a601f8301126128ea578384fd5b8135818111156128f8578485fd5b8b6020808302850101111561290b578485fd5b6020830196508095505050506129248960608a0161265a565b9150610100880135905092959891949750929550565b60006080828403121561294b578081fd5b61295560406133ea565b61295f8484612629565b815261296e8460408501612629565b60208201529392505050565b60006020828403121561298b578081fd5b813567ffffffffffffffff808211156129a2578283fd5b9083019060a082860312156129b5578283fd5b6129bf60a06133ea565b8235828111156129cd578485fd5b6129d9878286016125c0565b825250602083013560208201526129f3866040850161256e565b6040820152612a05866060850161256e565b6060820152608083013582811115612a1b578485fd5b612a27878286016125c0565b60808301525095945050505050565b60008151808452612a4e816020860160208601613411565b601f01601f19169290920160200192915050565b60008682528560208301528460408301528360608301528251612a8c816080850160208701613411565b919091016080019695505050505050565b60008651612aaf818460208b01613411565b8201868152602081018690528385604083013790920160400191825250949350505050565b6000828483379101908152919050565b60008251612af6818460208701613411565b9190910192915050565b6613585a5b9b995d60ca1b815260070190565b6001600160a01b0391909116815260200190565b6001600160a01b038316815260406020820181905260009061195090830184612a36565b901515815260200190565b90815260200190565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b600060208252610a6c6020830184612a36565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656d6f766560408201526e08195e1d1c984818dbdb9d1c9858dd608a1b606082015260800190565b6020808252601c908201527f53636861696e2063616e6e6f7420636f6e6e65637420697473656c6600000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f53656e64657220636f6e7472616374206973206e6f74207265676973746572656040820152601960fa1b606082015260800190565b6020808252818101527f434841494e5f434f4e4e4543544f525f524f4c45206973207265717569726564604082015260600190565b60208082526039908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656769737460408201527f657220657874726120636f6e747261637420666f7220616c6c00000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526016908201527514da59db985d1d5c99481a5cc81b9bdd081d985b1a5960521b604082015260600190565b6020808252600e908201526d48617368206e6f7420696e20473160901b604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526037908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f2072656d6f766560408201527f20657874726120636f6e747261637420666f7220616c6c000000000000000000606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526019908201527f5369676e6174757265206973206e6f7420766572696669656400000000000000604082015260600190565b6020808252601a908201527f436861696e20697320616c726561647920636f6e6e6563746564000000000000604082015260600190565b60208082526021908201527f457874726120636f6e747261637420697320616c72656164792072656d6f76656040820152601960fa1b606082015260800190565b60208082526018908201527f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000604082015260600190565b60208082526038908201527f5374617274696e6720636f756e746572206973206e6f74207175616c20746f2060408201527f696e636f6d696e67206d65737361676520636f756e7465720000000000000000606082015260800190565b60208082526031908201527f4e6f7420656e6f756768207065726d697373696f6e7320746f20726567697374604082015270195c88195e1d1c984818dbdb9d1c9858dd607a1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526024908201527f44657374696e6174696f6e20636861696e206973206e6f7420696e697469616c6040820152631a5e995960e21b606082015260800190565b60208082526014908201527314185a5c9a5b99c818da1958dac819985a5b195960621b604082015260600190565b602080825260149082015273283ab13634b19025b2bc903737ba1034b710239960611b604082015260600190565b60208082526018908201527f436861696e206973206e6f7420696e697469616c697a65640000000000000000604082015260600190565b6020808252600e908201526d5369676e206e6f7420696e20473160901b604082015260600190565b60208082526019908201527f44454255474745525f524f4c4520697320726571756972656400000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b60208082526024908201527f457874726120636f6e747261637420697320616c726561647920726567697374604082015263195c995960e21b606082015260800190565b60208082526029908201527f4e657720636861696e20686173682063616e6e6f7420626520657175616c20746040820152681bc813585a5b9b995d60ba1b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b92835260208301919091521515604082015260600190565b6000808335601e198436030181126133a6578283fd5b83018035915067ffffffffffffffff8211156133c0578283fd5b6020019150368190038213156125b957600080fd5b60008235605e19833603018112612af6578182fd5b60405181810167ffffffffffffffff8111828210171561340957600080fd5b604052919050565b60005b8381101561342c578181015183820152602001613414565b8381111561343b576000848401525b50505050565b60e01c90565b600060443d101561345757611461565b600481823e6308c379a061346b8251613441565b1461347557611461565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156134a55750505050611461565b828401925082519150808211156134bf5750505050611461565b503d830160208284010111156134d757505050611461565b601f01601f1916810160200160405291505090565b6001600160a01b0381168114611b2357600080fdfe6155b5aac15ce9aa193c0527a6f43be0a36a7e2e7496c2b615c0e5f92284277344657374696e6174696f6e20636f6e7472616374206973206e6f74207265676973746572656430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47c8cc8bda7ad4886bea3ebbdafa02e79d37c39bf4011696b26a31a0802fd9458ba2646970667358221220093c2d278aeb4ed3411e26a3f398981ce473e254dc3a9b827a467e2847a66c6d64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.json b/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.json new file mode 100644 index 000000000..d407289d1 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/Precompiled.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Precompiled", + "sourceName": "contracts/schain/bls/Precompiled.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208fbc5f13d907ef5950d0968cfda0ab45322433a917c3e22da0c4fded49c88c4b64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208fbc5f13d907ef5950d0968cfda0ab45322433a917c3e22da0c4fded49c88c4b64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/ProxyAdmin.json b/predeployed/build/lib/ima_predeployed/artifacts/ProxyAdmin.json new file mode 100644 index 000000000..5d642059a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/ProxyAdmin.json @@ -0,0 +1,160 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "contracts/proxy/ProxyAdmin.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract AdminUpgradeabilityProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "changeProxyAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract AdminUpgradeabilityProxy", + "name": "proxy", + "type": "address" + } + ], + "name": "getProxyAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract AdminUpgradeabilityProxy", + "name": "proxy", + "type": "address" + } + ], + "name": "getProxyImplementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract AdminUpgradeabilityProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract AdminUpgradeabilityProxy", + "name": "proxy", + "type": "address" + }, + { + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b61087b8061007d6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461013657806399a88ec4146101f5578063f2fde38b14610230578063f3b7dead146102635761007b565b8063204e1c7a14610080578063715018a6146100cf5780637eff275e146100e65780638da5cb5b14610121575b600080fd5b34801561008c57600080fd5b506100b3600480360360208110156100a357600080fd5b50356001600160a01b0316610296565b604080516001600160a01b039092168252519081900360200190f35b3480156100db57600080fd5b506100e4610328565b005b3480156100f257600080fd5b506100e46004803603604081101561010957600080fd5b506001600160a01b03813581169160200135166103d4565b34801561012d57600080fd5b506100b36104a1565b6100e46004803603606081101561014c57600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104b0945050505050565b34801561020157600080fd5b506100e46004803603604081101561021857600080fd5b506001600160a01b03813581169160200135166105e9565b34801561023c57600080fd5b506100e46004803603602081101561025357600080fd5b50356001600160a01b031661069a565b34801561026f57600080fd5b506100b36004803603602081101561028657600080fd5b50356001600160a01b031661079c565b6000806060836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146102f5576040519150601f19603f3d011682016040523d82523d6000602084013e6102fa565b606091505b50915091508161030957600080fd5b80806020019051602081101561031e57600080fd5b5051949350505050565b6103306107fb565b6001600160a01b03166103416104a1565b6001600160a01b03161461038a576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6103dc6107fb565b6001600160a01b03166103ed6104a1565b6001600160a01b031614610436576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b816001600160a01b0316638f283970826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561048557600080fd5b505af1158015610499573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031690565b6104b86107fb565b6001600160a01b03166104c96104a1565b6001600160a01b031614610512576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b826001600160a01b0316634f1ef2863484846040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561057f578181015183820152602001610567565b50505050905090810190601f1680156105ac5780820380516001836020036101000a031916815260200191505b5093505050506000604051808303818588803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b5050505050505050565b6105f16107fb565b6001600160a01b03166106026104a1565b6001600160a01b03161461064b576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561048557600080fd5b6106a26107fb565b6001600160a01b03166106b36104a1565b6001600160a01b0316146106fc576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b6001600160a01b0381166107415760405162461bcd60e51b81526004018080602001828103825260268152602001806108006026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806060836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146102f5576040519150601f19603f3d011682016040523d82523d6000602084013e6102fa565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203768212fc739b6f5d04031f3515c4811eaf8dd5225cdb7a15a3d7fa534d1ba9364736f6c634300060c0033", + "deployedBytecode": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461013657806399a88ec4146101f5578063f2fde38b14610230578063f3b7dead146102635761007b565b8063204e1c7a14610080578063715018a6146100cf5780637eff275e146100e65780638da5cb5b14610121575b600080fd5b34801561008c57600080fd5b506100b3600480360360208110156100a357600080fd5b50356001600160a01b0316610296565b604080516001600160a01b039092168252519081900360200190f35b3480156100db57600080fd5b506100e4610328565b005b3480156100f257600080fd5b506100e46004803603604081101561010957600080fd5b506001600160a01b03813581169160200135166103d4565b34801561012d57600080fd5b506100b36104a1565b6100e46004803603606081101561014c57600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104b0945050505050565b34801561020157600080fd5b506100e46004803603604081101561021857600080fd5b506001600160a01b03813581169160200135166105e9565b34801561023c57600080fd5b506100e46004803603602081101561025357600080fd5b50356001600160a01b031661069a565b34801561026f57600080fd5b506100b36004803603602081101561028657600080fd5b50356001600160a01b031661079c565b6000806060836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146102f5576040519150601f19603f3d011682016040523d82523d6000602084013e6102fa565b606091505b50915091508161030957600080fd5b80806020019051602081101561031e57600080fd5b5051949350505050565b6103306107fb565b6001600160a01b03166103416104a1565b6001600160a01b03161461038a576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6103dc6107fb565b6001600160a01b03166103ed6104a1565b6001600160a01b031614610436576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b816001600160a01b0316638f283970826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561048557600080fd5b505af1158015610499573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031690565b6104b86107fb565b6001600160a01b03166104c96104a1565b6001600160a01b031614610512576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b826001600160a01b0316634f1ef2863484846040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561057f578181015183820152602001610567565b50505050905090810190601f1680156105ac5780820380516001836020036101000a031916815260200191505b5093505050506000604051808303818588803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b5050505050505050565b6105f16107fb565b6001600160a01b03166106026104a1565b6001600160a01b03161461064b576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561048557600080fd5b6106a26107fb565b6001600160a01b03166106b36104a1565b6001600160a01b0316146106fc576040805162461bcd60e51b81526020600482018190526024820152600080516020610826833981519152604482015290519081900360640190fd5b6001600160a01b0381166107415760405162461bcd60e51b81526004018080602001828103825260268152602001806108006026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806060836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146102f5576040519150601f19603f3d011682016040523d82523d6000602084013e6102fa565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203768212fc739b6f5d04031f3515c4811eaf8dd5225cdb7a15a3d7fa534d1ba9364736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.json b/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.json new file mode 100644 index 000000000..665660707 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/SkaleVerifier.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SkaleVerifier", + "sourceName": "contracts/schain/bls/SkaleVerifier.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a9431b36756d95801dab0d23c28055d28c6fa6ee04daf2ade85bf5d5ae5a13c364736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a9431b36756d95801dab0d23c28055d28c6fa6ee04daf2ade85bf5d5ae5a13c364736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.json new file mode 100644 index 000000000..d3696529b --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManager.json @@ -0,0 +1,527 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManager", + "sourceName": "contracts/schain/TokenManager.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AUTOMATIC_DEPLOY_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "addTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "automaticDeploy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "changeDepositBoxAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "communityLocker", + "outputs": [ + { + "internalType": "contract CommunityLocker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "depositBox", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "disableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initializeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.json new file mode 100644 index 000000000..e8434e21a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC1155.json @@ -0,0 +1,788 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManagerERC1155", + "sourceName": "contracts/schain/TokenManagers/TokenManagerERC1155.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnSchain", + "type": "address" + } + ], + "name": "ERC1155TokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnSchain", + "type": "address" + } + ], + "name": "ERC1155TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc1155OnSchain", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "name": "ERC1155TokenReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AUTOMATIC_DEPLOY_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "erc1155OnMainnet", + "type": "address" + }, + { + "internalType": "contract ERC1155OnChain", + "name": "erc1155OnSchain", + "type": "address" + } + ], + "name": "addERC1155TokenByOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "addTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "automaticDeploy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "changeDepositBoxAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "clonesErc1155", + "outputs": [ + { + "internalType": "contract ERC1155OnChain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "communityLocker", + "outputs": [ + { + "internalType": "contract CommunityLocker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "depositBox", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "disableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "exitToMainERC1155", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "name": "exitToMainERC1155Batch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newChainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initializeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferToSchainERC1155", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "name": "transferToSchainERC1155Batch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506170e6806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620002385760003560e01c80636d6112861162000135578063b9581c5011620000bd578063cc5b715b1162000087578063cc5b715b1462000490578063d547741f146200049a578063dec2deb614620004b1578063e7ece22814620004bb578063edcc12b514620004d25762000238565b8063b9581c501462000441578063c0e312dc146200044b578063ca15c8731462000462578063cb703bff14620004795762000238565b806391d1485411620000ff57806391d1485414620003f2578063a217fddf1462000409578063ade686761462000413578063b626a44f146200042a5762000238565b80636d61128614620003b05780636d6c68e614620003ba578063884cee5a14620003c45780639010d07c14620003db5762000238565b806336568abe11620001c557806350f44280116200018f57806350f4428014620003485780635492d3b514620003615780635573b8b614620003785780636685bde514620003825780636ce681d214620003995762000238565b806336568abe14620002f757806339927cf9146200030e5780633b690b6b14620003345780633fa194ce146200033e5762000238565b8063248a9ca31162000207578063248a9ca314620002a657806328c5e18214620002cc5780632dc151de14620002d65780632f2ff15d14620002e05762000238565b8063029996b8146200023d578063066ee47f14620002495780630b885ac314620002605780630f1a8f741462000277575b600080fd5b62000247620004e9565b005b620002476200025a36600462002b0a565b62000541565b620002476200027136600462002c48565b6200081c565b6200028e620002883660046200298e565b620008bc565b6040516200029d919062002ee3565b60405180910390f35b620002bd620002b73660046200298e565b620008d7565b6040516200029d919062003036565b620002bd620008ec565b6200028e62000937565b62000247620002f1366004620029a7565b62000946565b6200024762000308366004620029a7565b62000996565b620003256200031f36600462002a6d565b620009df565b6040516200029d91906200302b565b620002bd62000a3e565b620002bd62000a44565b6200035262000a57565b6040516200029d919062003099565b620002476200037236600462002bc9565b62000a7a565b6200028e62000cc9565b6200028e6200039336600462002836565b62000cd8565b62000247620003aa36600462002c48565b62000cf3565b6200028e62000e59565b6200028e62000e68565b62000325620003d5366004620029ce565b62000e77565b6200028e620003ec36600462002a2d565b62001008565b6200032562000403366004620029a7565b62001029565b620002bd62001043565b620002476200042436600462002855565b62001048565b620002476200043b3660046200292f565b620012cd565b62000247620013a2565b620002476200045c36600462002a6d565b620013eb565b620002bd620004733660046200298e565b620014b3565b620002476200048a36600462002ab0565b620014cc565b620002bd620015ce565b62000247620004ab366004620029a7565b620015f2565b6200032562001632565b62000247620004cc366004620028e5565b62001642565b62000247620004e336600462002836565b62001835565b62000504600080516020620070918339815191523362001029565b6200052c5760405162461bcd60e51b815260040162000523906200338c565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6001600160a01b0383166200056a5760405162461bcd60e51b815260040162000523906200350e565b600086866040516020016200058192919062002eb5565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b848301529151919350620005c392910162002ec5565b60405160208183030381529060405280519060200120811415620005fb5760405162461bcd60e51b8152600401620005239062003271565b6000818152606a60205260409020546001600160a01b0316620006325760405162461bcd60e51b81526004016200052390620030e6565b6001600160a01b038086166000908152606b602052604090205416620006588162001883565b620006775760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c590620006a7903390309060040162002ef7565b60206040518083038186803b158015620006c057600080fd5b505afa158015620006d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006fb91906200296c565b6200071a5760405162461bcd60e51b81526004016200052390620033cd565b604051631ac8311560e21b81526001600160a01b03821690636b20c454906200074c9033908890889060040162002f11565b600060405180830381600087803b1580156200076757600080fd5b505af11580156200077c573d6000803e3d6000fd5b505050506060620007908787878762001889565b6065546000858152606a6020526040908190205490516365e3781f60e01b81529293506001600160a01b03918216926365e3781f92620007dd928e928e929091169087906004016200303f565b600060405180830381600087803b158015620007f857600080fd5b505af11580156200080d573d6000803e3d6000fd5b50505050505050505050505050565b600054610100900460ff16806200083857506200083862001907565b8062000847575060005460ff16155b620008665760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562000892576000805460ff1961ff0019909116610100171660011790555b620008a1868686868662000cf3565b8015620008b4576000805461ff00191690555b505050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016200091e919062002ec5565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b6000828152603360205260409020600201546200096790620004036200191a565b620009865760405162461bcd60e51b815260040162000523906200315f565b6200099282826200191e565b5050565b620009a06200191a565b6001600160a01b0316816001600160a01b031614620009d35760405162461bcd60e51b8152600401620005239062003699565b6200099282826200198c565b6000806001600160a01b0316606a6000858560405160200162000a0492919062002eb5565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b6000805160206200709183398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6001600160a01b03831662000aa35760405162461bcd60e51b815260040162000523906200350e565b6000868660405160200162000aba92919062002eb5565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b84830152915191935062000afc92910162002ec5565b6040516020818303038152906040528051906020012081141562000b345760405162461bcd60e51b8152600401620005239062003271565b6000818152606a60205260409020546001600160a01b031662000b6b5760405162461bcd60e51b81526004016200052390620030e6565b6001600160a01b038086166000908152606b60205260409020541662000b918162001883565b62000bb05760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c59062000be0903390309060040162002ef7565b60206040518083038186803b15801562000bf957600080fd5b505afa15801562000c0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c3491906200296c565b62000c535760405162461bcd60e51b81526004016200052390620033cd565b604051637a94c56560e11b81526001600160a01b0382169063f5298aca9062000c859033908890889060040162002f55565b600060405180830381600087803b15801562000ca057600080fd5b505af115801562000cb5573d6000803e3d6000fd5b5050505060606200079087878787620019fa565b6065546001600160a01b031681565b606b602052600090815260409020546001600160a01b031681565b600054610100900460ff168062000d0f575062000d0f62001907565b8062000d1e575060005460ff16155b62000d3d5760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562000d69576000805460ff1961ff0019909116610100171660011790555b62000d7362001a5e565b62000d8060003362000986565b62000d9b600080516020620070918339815191523362000986565b62000dc77ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000986565b8560405160200162000dda919062002ec5565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015620008b4576000805461ff0019169055505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6065546000906001600160a01b0316331462000ea75760405162461bcd60e51b81526004016200052390620031ae565b606854851415801562000f3957506040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000ee7919062002ec5565b60405160208183030381529060405280519060200120851462000f27576000858152606a60205260409020546001600160a01b0385811691161462000f39565b6069546001600160a01b038581169116145b62000f585760405162461bcd60e51b815260040162000523906200357c565b600062000f66848462001afe565b9050600981600c81111562000f7757fe5b148062000f905750600a81600c81111562000f8e57fe5b145b1562000fa85762000fa2848462001b49565b62000ffc565b600b81600c81111562000fb757fe5b148062000fd05750600c81600c81111562000fce57fe5b145b1562000fe25762000fa2848462001dec565b60405162461bcd60e51b81526004016200052390620036e8565b50600195945050505050565b60008281526033602052604081206200102290836200206a565b9392505050565b600082815260336020526040812062001022908362002078565b600081565b6001600160a01b038316620010715760405162461bcd60e51b815260040162000523906200350e565b6001600160a01b038085166000908152606b6020526040908190205460675491516311be333d60e11b815290831692919091169063237c667a90620010bb90879060040162002ee3565b600060405180830381600087803b158015620010d657600080fd5b505af1158015620010eb573d6000803e3d6000fd5b5050505062001103816001600160a01b031662001883565b620011225760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c59062001152903390309060040162002ef7565b60206040518083038186803b1580156200116b57600080fd5b505afa15801562001180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011a691906200296c565b620011c55760405162461bcd60e51b81526004016200052390620033cd565b604051631ac8311560e21b81526001600160a01b03821690636b20c45490620011f79033908790879060040162002f11565b600060405180830381600087803b1580156200121257600080fd5b505af115801562001227573d6000803e3d6000fd5b5050505060606200123b8686868662001889565b606554604080518082018252600781526613585a5b9b995d60ca1b602082015260695491516365e3781f60e01b81529394506001600160a01b03928316936365e3781f93620012919316908690600401620030ae565b600060405180830381600087803b158015620012ac57600080fd5b505af1158015620012c1573d6000803e3d6000fd5b50505050505050505050565b620012f97ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362001029565b620013185760405162461bcd60e51b8152600401620005239062003454565b6200132c816001600160a01b031662001883565b6200134b5760405162461bcd60e51b8152600401620005239062003545565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517f096b3e2c36bc263e90f7577e70dc47b6536fc8d85d467d54f61f91c2ca091c519190a35050565b620013bd600080516020620070918339815191523362001029565b620013dc5760405162461bcd60e51b815260040162000523906200338c565b6069805460ff60a01b19169055565b6066546001600160a01b03163314806200140d57506200140d60003362001029565b6200142c5760405162461bcd60e51b8152600401620005239062003633565b600082826040516020016200144392919062002eb5565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316620014935760405162461bcd60e51b81526004016200052390620032c1565b6000908152606a6020526040902080546001600160a01b03191690555050565b600081815260336020526040812062000a38906200208f565b6066546001600160a01b0316331480620014ee5750620014ee60003362001029565b6200150d5760405162461bcd60e51b8152600401620005239062003633565b600083836040516020016200152492919062002eb5565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031615620015755760405162461bcd60e51b81526004016200052390620035fc565b6001600160a01b0382166200159e5760405162461bcd60e51b81526004016200052390620030e6565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b6000828152603360205260409020600201546200161390620004036200191a565b620009d35760405162461bcd60e51b8152600401620005239062003404565b606954600160a01b900460ff1681565b6001600160a01b0383166200166b5760405162461bcd60e51b815260040162000523906200350e565b6001600160a01b038085166000908152606b6020526040908190205460675491516311be333d60e11b815290831692919091169063237c667a90620016b590879060040162002ee3565b600060405180830381600087803b158015620016d057600080fd5b505af1158015620016e5573d6000803e3d6000fd5b50505050620016fd816001600160a01b031662001883565b6200171c5760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c5906200174c903390309060040162002ef7565b60206040518083038186803b1580156200176557600080fd5b505afa1580156200177a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017a091906200296c565b620017bf5760405162461bcd60e51b81526004016200052390620033cd565b604051637a94c56560e11b81526001600160a01b0382169063f5298aca90620017f19033908790879060040162002f55565b600060405180830381600087803b1580156200180c57600080fd5b505af115801562001821573d6000803e3d6000fd5b5050505060606200123b86868686620019fa565b6200184260003362001029565b620018615760405162461bcd60e51b815260040162000523906200323a565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b6060620018956200245e565b6040805160c081019091528060a0810180600b8152508152602001876001600160a01b03168152602001866001600160a01b0316815260200185815260200184815250905080604051602001620018ed919062003718565b604051602081830303815290604052915050949350505050565b6000620019143062001883565b15905090565b3390565b60008281526033602052604090206200193890826200209c565b156200099257620019486200191a565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020620019a69082620020b3565b156200099257620019b66200191a565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b606062001a0662002494565b6040805160c081019091528060a081018060098152508152602001876001600160a01b03168152602001866001600160a01b0316815260200185815260200184815250905080604051602001620018ed91906200378c565b600054610100900460ff168062001a7a575062001a7a62001907565b8062001a89575060005460ff16155b62001aa85760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562001ad4576000805460ff1961ff0019909116610100171660011790555b62001ade620020ca565b62001ae8620020ca565b801562001afb576000805461ff00191690555b50565b60008062001b0f838501856200298e565b90506020810662001b3b5762001b3262001b2c8483818862003804565b62001afe565b91505062000a38565b62001b328385018562002a4f565b600062001b57838362001afe565b90506000808080600985600c81111562001b6d57fe5b141562001baf5762001b7e62002494565b62001b8a888862002154565b9050806040015194508060200151935080606001519250806080015191505062001cd4565b62001bb9620024cb565b62001bc58888620021a6565b805160408082015160208084015160608501516080909501516001600160a01b038083166000908152606b9094529490922054929a509850929650919450919250168062001cd157606954600160a01b900460ff1662001c395760405162461bcd60e51b81526004016200052390620034d7565b60208201515160405162001c4d90620024f4565b62001c59919062003099565b604051809103906000f08015801562001c76573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939450919290917ff591ef422bd6af456a3cad967032f043099a7d9838494d88ba15d16a89f50b7491a35b50505b6001600160a01b038084166000908152606b60205260409020541662001cfa8162001883565b62001d195760405162461bcd60e51b8152600401620005239062003545565b60405163731133e960e01b81526001600160a01b0382169063731133e99062001d4b9088908790879060040162002fc9565b600060405180830381600087803b15801562001d6657600080fd5b505af115801562001d7b573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f84899afd4ab55115c2eab5a59471e73bc42359e7c3d4e5a3c1aa4837bd20ed5562001dbf86620021f8565b62001dca86620021f8565b60405162001dda92919062002ff9565b60405180910390a35050505050505050565b600062001dfa838362001afe565b9050600080606080600b85600c81111562001e1157fe5b141562001e535762001e226200245e565b62001e2e88886200223a565b9050806040015194508060200151935080606001519250806080015191505062001f78565b62001e5d62002502565b62001e6988886200228c565b805160408082015160208084015160608501516080909501516001600160a01b038083166000908152606b9094529490922054929a509850929650919450919250168062001f7557606954600160a01b900460ff1662001edd5760405162461bcd60e51b81526004016200052390620034d7565b60208201515160405162001ef190620024f4565b62001efd919062003099565b604051809103906000f08015801562001f1a573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939450919290917ff591ef422bd6af456a3cad967032f043099a7d9838494d88ba15d16a89f50b7491a35b50505b6001600160a01b038084166000908152606b60205260409020541662001f9e8162001883565b62001fbd5760405162461bcd60e51b8152600401620005239062003545565b604051630fbfeffd60e11b81526001600160a01b03821690631f7fdffa9062001fef9088908790879060040162002f76565b600060405180830381600087803b1580156200200a57600080fd5b505af11580156200201f573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f84899afd4ab55115c2eab5a59471e73bc42359e7c3d4e5a3c1aa4837bd20ed55858560405162001dda92919062002ff9565b6000620010228383620022de565b600062001022836001600160a01b03841662002327565b600062000a38826200233f565b600062001022836001600160a01b03841662002343565b600062001022836001600160a01b03841662002392565b600054610100900460ff1680620020e65750620020e662001907565b80620020f5575060005460ff16155b620021145760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562001ae8576000805460ff1961ff001990911661010017166001179055801562001afb576000805461ff001916905550565b6200215e62002494565b60096200216c848462001afe565b600c8111156200217857fe5b14620021985760405162461bcd60e51b81526004016200052390620032f8565b620010228284018462002e1a565b620021b0620024cb565b600a620021be848462001afe565b600c811115620021ca57fe5b14620021ea5760405162461bcd60e51b815260040162000523906200333c565b620010228284018462002cdb565b6040805160018082528183019092526060916020808301908036833701905050905081816000815181106200222957fe5b602002602001018181525050919050565b620022446200245e565b600b62002252848462001afe565b600c8111156200225e57fe5b146200227e5760405162461bcd60e51b81526004016200052390620035b3565b620010228284018462002ddc565b6200229662002502565b600c620022a4848462001afe565b600c811115620022b057fe5b14620022d05760405162461bcd60e51b81526004016200052390620031e5565b620010228284018462002d61565b81546000908210620023045760405162461bcd60e51b815260040162000523906200311d565b8260000182815481106200231457fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600062002351838362002327565b620023895750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000a38565b50600062000a38565b60008181526001830160205260408120548015620024535783546000198083019190810190600090879083908110620023c757fe5b9060005260206000200154905080876000018481548110620023e557fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806200241657fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000a38565b600091505062000a38565b6040518060a001604052806200247362002517565b81526000602082018190526040820152606080820181905260809091015290565b6040518060a00160405280620024a962002517565b8152600060208201819052604082018190526060820181905260809091015290565b6040518060400160405280620024e062002494565b8152602001620024ef6200252b565b905290565b613819806200387883390190565b6040518060400160405280620024e06200245e565b6040805160208101909152806000620024ef565b6040518060200160405280606081525090565b600082601f8301126200254f578081fd5b81356001600160401b0381111562002565578182fd5b602080820262002577828201620037dd565b838152935081840185830182870184018810156200259457600080fd5b600092505b84831015620025b957803582526001929092019190830190830162002599565b505050505092915050565b60008083601f840112620025d6578182fd5b5081356001600160401b03811115620025ed578182fd5b6020830191508360208285010111156200260657600080fd5b9250929050565b8035600d811062000a3857600080fd5b600082601f8301126200262e578081fd5b81356001600160401b0381111562002644578182fd5b62002659601f8201601f1916602001620037dd565b91508082528360208285010111156200267157600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156200269c578081fd5b620026a86020620037dd565b9050620026b683836200260d565b815292915050565b600060208284031215620026d0578081fd5b620026dc6020620037dd565b905081356001600160401b03811115620026f557600080fd5b62002703848285016200261d565b82525092915050565b600060a082840312156200271e578081fd5b6200272a60a0620037dd565b90506200273883836200268a565b815260208201356200274a8162003861565b602082015260408201356200275f8162003861565b604082015260608201356001600160401b03808211156200277f57600080fd5b6200278d858386016200253e565b60608401526080840135915080821115620027a757600080fd5b50620027b6848285016200253e565b60808301525092915050565b600060a08284031215620027d4578081fd5b620027e060a0620037dd565b9050620027ee83836200268a565b81526020820135620028008162003861565b60208201526040820135620028158162003861565b80604083015250606082013560608201526080820135608082015292915050565b60006020828403121562002848578081fd5b8135620010228162003861565b600080600080608085870312156200286b578283fd5b8435620028788162003861565b935060208501356200288a8162003861565b925060408501356001600160401b0380821115620028a6578384fd5b620028b4888389016200253e565b93506060870135915080821115620028ca578283fd5b50620028d9878288016200253e565b91505092959194509250565b60008060008060808587031215620028fb578384fd5b8435620029088162003861565b935060208501356200291a8162003861565b93969395505050506040820135916060013590565b6000806040838503121562002942578182fd5b82356200294f8162003861565b91506020830135620029618162003861565b809150509250929050565b6000602082840312156200297e578081fd5b8151801515811462001022578182fd5b600060208284031215620029a0578081fd5b5035919050565b60008060408385031215620029ba578182fd5b823591506020830135620029618162003861565b60008060008060608587031215620029e4578182fd5b843593506020850135620029f88162003861565b925060408501356001600160401b0381111562002a13578283fd5b62002a2187828801620025c4565b95989497509550505050565b6000806040838503121562002a40578182fd5b50508035926020909101359150565b60006020828403121562002a61578081fd5b6200102283836200260d565b6000806020838503121562002a80578182fd5b82356001600160401b0381111562002a96578283fd5b62002aa485828601620025c4565b90969095509350505050565b60008060006040848603121562002ac5578081fd5b83356001600160401b0381111562002adb578182fd5b62002ae986828701620025c4565b909450925050602084013562002aff8162003861565b809150509250925092565b60008060008060008060a0878903121562002b23578384fd5b86356001600160401b038082111562002b3a578586fd5b62002b488a838b01620025c4565b90985096506020890135915062002b5f8262003861565b90945060408801359062002b738262003861565b9093506060880135908082111562002b89578384fd5b62002b978a838b016200253e565b9350608089013591508082111562002bad578283fd5b5062002bbc89828a016200253e565b9150509295509295509295565b60008060008060008060a0878903121562002be2578384fd5b86356001600160401b0381111562002bf8578485fd5b62002c0689828a01620025c4565b909750955050602087013562002c1c8162003861565b9350604087013562002c2e8162003861565b959894975092956060810135946080909101359350915050565b600080600080600060a0868803121562002c60578283fd5b85356001600160401b0381111562002c76578384fd5b62002c84888289016200261d565b955050602086013562002c978162003861565b9350604086013562002ca98162003861565b9250606086013562002cbb8162003861565b9150608086013562002ccd8162003861565b809150509295509295909350565b60006020828403121562002ced578081fd5b81356001600160401b038082111562002d04578283fd5b9083019060c0828603121562002d18578283fd5b62002d246040620037dd565b62002d308684620027c2565b815260a08301358281111562002d44578485fd5b62002d5287828601620026be565b60208301525095945050505050565b60006020828403121562002d73578081fd5b81356001600160401b038082111562002d8a578283fd5b908301906040828603121562002d9e578283fd5b62002daa6040620037dd565b82358281111562002db9578485fd5b62002dc7878286016200270c565b82525060208301358281111562002d44578485fd5b60006020828403121562002dee578081fd5b81356001600160401b0381111562002e04578182fd5b62002e12848285016200270c565b949350505050565b600060a0828403121562002e2c578081fd5b620010228383620027c2565b6000815180845260208085019450808401835b8381101562002e695781518752958201959082019060010162002e4b565b509495945050505050565b6000815180845262002e8e8160208601602086016200382e565b601f01601f19169290920160200192915050565b8051600d811062002eaf57fe5b90915250565b6000828483379101908152919050565b6000825162002ed98184602087016200382e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038416815260606020820181905260009062002f379083018562002e38565b828103604084015262002f4b818562002e38565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b038416815260806020820181905260009062002f9c9083018562002e38565b828103604084015262002fb0818562002e38565b8381036060909401939093525081526020019392505050565b6001600160a01b039390931683526020830191909152604082015260806060820181905260009082015260a00190565b6000604082526200300e604083018562002e38565b828103602084015262003022818562002e38565b95945050505050565b901515815260200190565b90815260200190565b60006060825284606083015284866080840137608085830181018290526001600160a01b0385166020840152601f8601601f1916830183810382016040850152906200308e9082018562002e74565b979650505050505050565b60006020825262001022602083018462002e74565b600060608252620030c3606083018662002e74565b6001600160a01b0385166020840152828103604084015262002f4b818562002e74565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b60208082526035908201527f4d6573736167652074797065206973206e6f742045524331313535426174636860408201527420b7322a37b5b2b724b73337903a3930b739b332b960591b606082015260800190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526024908201527f4d6573736167652074797065206973206e6f742045524331313535207472616e60408201526339b332b960e11b606082015260800190565b60208082526030908201527f4d6573736167652074797065206973206e6f742045524331313535416e64546f60408201526f35b2b724b73337903a3930b739b332b960811b606082015260800190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526019908201527f4e6f7420616c6c6f776564204552433131353520546f6b656e00000000000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b60208082526029908201527f4d6573736167652074797065206973206e6f7420455243313135354261746368604082015268103a3930b739b332b960b91b606082015260800190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b6000602082526200372e60208301845162002ea2565b60208301516001600160a01b039081166040848101919091528401511660608084019190915283015160a060808401526200376d60c084018262002e38565b90506080840151601f198483030160a085015262003022828262002e38565b600060a082019050620037a182845162002ea2565b602083015160018060a01b0380821660208501528060408601511660408501525050606083015160608301526080830151608083015292915050565b6040518181016001600160401b0381118282101715620037fc57600080fd5b604052919050565b6000808585111562003814578182fd5b8386111562003821578182fd5b5050820193919092039150565b60005b838110156200384b57818101518382015260200162003831565b838111156200385b576000848401525b50505050565b6001600160a01b038116811462001afb57600080fdfe60806040523480156200001157600080fd5b506040516200381938038062003819833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052505050620001026200017360201b620017601760201c565b62000118816200023160201b620018121760201c565b6200012d620002fb60201b620018cd1760201c565b62000148600080516020620037f983398151915280620003a3565b6200016c600080516020620037f983398151915262000166620003f5565b620003f9565b5062000872565b600054610100900460ff16806200018f57506200018f62000405565b806200019e575060005460ff16155b620001db5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000207576000805460ff1961ff0019909116610100171660011790555b6200021162000423565b6200021b62000423565b80156200022e576000805461ff00191690555b50565b600054610100900460ff16806200024d57506200024d62000405565b806200025c575060005460ff16155b620002995760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff16158015620002c5576000805460ff1961ff0019909116610100171660011790555b620002cf62000423565b620002d9620004cb565b620002e48262000571565b8015620002f7576000805461ff00191690555b5050565b600054610100900460ff16806200031757506200031762000405565b8062000326575060005460ff16155b620003635760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200038f576000805460ff1961ff0019909116610100171660011790555b6200039962000423565b62000211620004cb565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620002f7828262000634565b60006200041d30620006af60201b6200196a1760201c565b15905090565b600054610100900460ff16806200043f57506200043f62000405565b806200044e575060005460ff16155b6200048b5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200021b576000805460ff1961ff00199091166101001716600117905580156200022e576000805461ff001916905550565b600054610100900460ff1680620004e75750620004e762000405565b80620004f6575060005460ff16155b620005335760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200055f576000805460ff1961ff0019909116610100171660011790555b6200021b6301ffc9a760e01b620006b5565b600054610100900460ff16806200058d57506200058d62000405565b806200059c575060005460ff16155b620005d95760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000605576000805460ff1961ff0019909116610100171660011790555b62000610826200073a565b62000622636cdb3d1360e11b620006b5565b620002e46303a24d0760e21b620006b5565b60008281526033602090815260409091206200065b918390620019706200074f821b17901c565b15620002f7576200066b620003f5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000715576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b8051620002f7906099906020840190620007d6565b600062000766836001600160a01b0384166200076f565b90505b92915050565b60006200077d8383620007be565b620007b55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000769565b50600062000769565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200081957805160ff191683800117855562000849565b8280016001018555821562000849579182015b82811115620008495782518255916020019190600101906200082c565b50620008579291506200085b565b5090565b5b808211156200085757600081556001016200085c565b612f4980620008826000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063731133e9116100b8578063ca15c8731161007c578063ca15c87314610a3d578063d539139314610a5a578063d547741f14610a62578063e985e9c514610a8e578063f242432a14610abc578063f5298aca14610b8557610136565b8063731133e9146108dc5780639010d07c1461099c57806391d14854146109db578063a217fddf14610a07578063a22cb46514610a0f57610136565b80632eb2c2d6116100ff5780632eb2c2d61461041d5780632f2ff15d146105de57806336568abe1461060a5780634e1273f4146106365780636b20c454146107a957610136565b8062fdd58e1461013b57806301ffc9a7146101795780630e89341c146101b45780631f7fdffa14610246578063248a9ca314610400575b600080fd5b6101676004803603604081101561015157600080fd5b506001600160a01b038135169060200135610bb7565b60408051918252519081900360200190f35b6101a06004803603602081101561018f57600080fd5b50356001600160e01b031916610c29565b604080519115158252519081900360200190f35b6101d1600480360360208110156101ca57600080fd5b5035610c48565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fe6004803603608081101561025c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561028657600080fd5b82018360208201111561029857600080fd5b803590602001918460208302840111600160201b831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561030857600080fd5b82018360208201111561031a57600080fd5b803590602001918460208302840111600160201b8311171561033b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561038a57600080fd5b82018360208201111561039c57600080fd5b803590602001918460018302840111600160201b831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b005b6101676004803603602081101561041657600080fd5b5035610d6d565b6103fe600480360360a081101561043357600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561046657600080fd5b82018360208201111561047857600080fd5b803590602001918460208302840111600160201b8311171561049957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156104e857600080fd5b8201836020820111156104fa57600080fd5b803590602001918460208302840111600160201b8311171561051b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460018302840111600160201b8311171561059d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d82945050505050565b6103fe600480360360408110156105f457600080fd5b50803590602001356001600160a01b0316611085565b6103fe6004803603604081101561062057600080fd5b50803590602001356001600160a01b03166110ec565b6107596004803603604081101561064c57600080fd5b810190602081018135600160201b81111561066657600080fd5b82018360208201111561067857600080fd5b803590602001918460208302840111600160201b8311171561069957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106e857600080fd5b8201836020820111156106fa57600080fd5b803590602001918460208302840111600160201b8311171561071b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061114d945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561079557818101518382015260200161077d565b505050509050019250505060405180910390f35b6103fe600480360360608110156107bf57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107e957600080fd5b8201836020820111156107fb57600080fd5b803590602001918460208302840111600160201b8311171561081c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561086b57600080fd5b82018360208201111561087d57600080fd5b803590602001918460208302840111600160201b8311171561089e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611239945050505050565b6103fe600480360360808110156108f257600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561092857600080fd5b82018360208201111561093a57600080fd5b803590602001918460018302840111600160201b8311171561095b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112b2945050505050565b6109bf600480360360408110156109b257600080fd5b5080359060200135611334565b604080516001600160a01b039092168252519081900360200190f35b6101a0600480360360408110156109f157600080fd5b50803590602001356001600160a01b0316611353565b61016761136b565b6103fe60048036036040811015610a2557600080fd5b506001600160a01b0381351690602001351515611370565b61016760048036036020811015610a5357600080fd5b503561145f565b610167611476565b6103fe60048036036040811015610a7857600080fd5b50803590602001356001600160a01b031661149a565b6101a060048036036040811015610aa457600080fd5b506001600160a01b03813581169160200135166114f3565b6103fe600480360360a0811015610ad257600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b1157600080fd5b820183602082011115610b2357600080fd5b803590602001918460018302840111600160201b83111715610b4457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611521945050505050565b6103fe60048036036060811015610b9b57600080fd5b506001600160a01b0381351690602081013590604001356116ec565b60006001600160a01b038316610bfe5760405162461bcd60e51b815260040180806020018281038252602b815260200180612cd0602b913960400191505060405180910390fd5b5060008181526097602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526065602052604090205460ff1690565b60998054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b50505050509050919050565b610d117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611353565b610d5b576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461198a565b50505050565b60009081526033602052604090206002015490565b8151835114610dc25760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6001600160a01b038416610e075760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b610e0f611985565b6001600160a01b0316856001600160a01b03161480610e3a5750610e3a85610e35611985565b6114f3565b610e755760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b6000610e7f611985565b9050610e8f81878787878761107d565b60005b8451811015610f95576000858281518110610ea957fe5b602002602001015190506000858381518110610ec157fe5b60200260200101519050610f2e816040518060600160405280602a8152602001612e20602a91396097600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b60008381526097602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610f659082611c76565b60009283526097602090815260408085206001600160a01b038c1686529091529092209190915550600101610e92565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561101b578181015183820152602001611003565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561105a578181015183820152602001611042565b5050505090500194505050505060405180910390a461107d818787878787611cd0565b505050505050565b6000828152603360205260409020600201546110a390610d0c611985565b6110de5760405162461bcd60e51b815260040180806020018281038252602f815260200180612ca1602f913960400191505060405180910390fd5b6110e88282611f4f565b5050565b6110f4611985565b6001600160a01b0316816001600160a01b0316146111435760405162461bcd60e51b815260040180806020018281038252602f815260200180612ee5602f913960400191505060405180910390fd5b6110e88282611fb8565b6060815183511461118f5760405162461bcd60e51b8152600401808060200182810382526029815260200180612e736029913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156111a957600080fd5b506040519080825280602002602001820160405280156111d3578160200160208202803683370190505b50905060005b8451811015611231576112128582815181106111f157fe5b602002602001015185838151811061120557fe5b6020026020010151610bb7565b82828151811061121e57fe5b60209081029190910101526001016111d9565b509392505050565b611241611985565b6001600160a01b0316836001600160a01b03161480611267575061126783610e35611985565b6112a25760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612021565b505050565b6112de7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611328576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461228f565b600082815260336020526040812061134c9083612390565b9392505050565b600082815260336020526040812061134c908361239c565b600081565b816001600160a01b0316611382611985565b6001600160a01b031614156113c85760405162461bcd60e51b8152600401808060200182810382526029815260200180612e4a6029913960400191505060405180910390fd5b80609860006113d5611985565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611419611985565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152603360205260408120610c23906123b1565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152603360205260409020600201546114b890610d0c611985565b6111435760405162461bcd60e51b8152600401808060200182810382526030815260200180612d486030913960400191505060405180910390fd5b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166115665760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b61156e611985565b6001600160a01b0316856001600160a01b03161480611594575061159485610e35611985565b6115cf5760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b60006115d9611985565b90506115f98187876115ea886123bc565b6115f3886123bc565b8761107d565b611640836040518060600160405280602a8152602001612e20602a913960008781526097602090815260408083206001600160a01b038d1684529091529020549190611bdf565b60008581526097602090815260408083206001600160a01b038b811685529252808320939093558716815220546116779084611c76565b60008581526097602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a461107d818787878787612400565b6116f4611985565b6001600160a01b0316836001600160a01b0316148061171a575061171a83610e35611985565b6117555760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612571565b600054610100900460ff168061177957506117796126a4565b80611787575060005460ff16155b6117c25760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117ed576000805460ff1961ff0019909116610100171660011790555b6117f56126b5565b6117fd6126b5565b801561180f576000805461ff00191690555b50565b600054610100900460ff168061182b575061182b6126a4565b80611839575060005460ff16155b6118745760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561189f576000805460ff1961ff0019909116610100171660011790555b6118a76126b5565b6118af612755565b6118b8826127f2565b80156110e8576000805461ff00191690555050565b600054610100900460ff16806118e657506118e66126a4565b806118f4575060005460ff16155b61192f5760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561195a576000805460ff1961ff0019909116610100171660011790555b6119626126b5565b6117f5612755565b3b151590565b600061134c836001600160a01b0384166128a8565b335b90565b6001600160a01b0384166119cf5760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b8151835114611a0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6000611a19611985565b9050611a2a8160008787878761107d565b60005b8451811015611aee57611aa560976000878481518110611a4957fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054858381518110611a8f57fe5b6020026020010151611c7690919063ffffffff16565b60976000878481518110611ab557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611a2d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b75578181015183820152602001611b5d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bb4578181015183820152602001611b9c565b5050505090500194505050505060405180910390a4611bd881600087878787611cd0565b5050505050565b60008184841115611c6e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c33578181015183820152602001611c1b565b50505050905090810190601f168015611c605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611ce2846001600160a01b031661196a565b1561107d57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d70578181015183820152602001611d58565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611daf578181015183820152602001611d97565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611e3d57600080fd5b505af1925050508015611e6257506040513d6020811015611e5d57600080fd5b505160015b611ef757611e6e612b7d565b80611e795750611ec0565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611c33578181015183820152602001611c1b565b60405162461bcd60e51b8152600401808060200182810382526034815260200180612c236034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b50505050505050565b6000828152603360205260409020611f679082611970565b156110e857611f74611985565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611fd090826128f2565b156110e857611fdd611985565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b0383166120665760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b80518251146120a65760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b60006120b0611985565b90506120d08185600086866040518060200160405280600081525061107d565b60005b83518110156121ae576121658382815181106120eb57fe5b6020026020010151604051806060016040528060248152602001612cfb602491396097600088868151811061211c57fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b6097600086848151811061217557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120d3565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561223557818101518382015260200161221d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561227457818101518382015260200161225c565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122d45760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b60006122de611985565b90506122f0816000876115ea886123bc565b60008481526097602090815260408083206001600160a01b038916845290915290205461231d9084611c76565b60008581526097602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611bd881600087878787612400565b600061134c8383612907565b600061134c836001600160a01b03841661296b565b6000610c2382612983565b6040805160018082528183019092526060918291906020808301908036833701905050905082816000815181106123ef57fe5b602090810291909101015292915050565b612412846001600160a01b031661196a565b1561107d57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124a1578181015183820152602001612489565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156124f157600080fd5b505af192505050801561251657506040513d602081101561251157600080fd5b505160015b61252257611e6e612b7d565b6001600160e01b0319811663f23a6e6160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b6001600160a01b0383166125b65760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b60006125c0611985565b90506125f0818560006125d2876123bc565b6125db876123bc565b6040518060200160405280600081525061107d565b61263782604051806060016040528060248152602001612cfb6024913960008681526097602090815260408083206001600160a01b038b1684529091529020549190611bdf565b60008481526097602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b60006126af3061196a565b15905090565b600054610100900460ff16806126ce57506126ce6126a4565b806126dc575060005460ff16155b6127175760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff001990911661010017166001179055801561180f576000805461ff001916905550565b600054610100900460ff168061276e575061276e6126a4565b8061277c575060005460ff16155b6127b75760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156127e2576000805460ff1961ff0019909116610100171660011790555b6117fd6301ffc9a760e01b612987565b600054610100900460ff168061280b575061280b6126a4565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288882612a0b565b612898636cdb3d1360e11b612987565b6118b86303a24d0760e21b612987565b60006128b4838361296b565b6128ea57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c23565b506000610c23565b600061134c836001600160a01b038416612a1e565b815460009082106129495760405162461bcd60e51b8152600401808060200182810382526022815260200180612c576022913960400191505060405180910390fd5b82600001828154811061295857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6001600160e01b031980821614156129e6576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b80516110e8906099906020840190612ae4565b60008181526001830160205260408120548015612ada5783546000198083019190810190600090879083908110612a5157fe5b9060005260206000200154905080876000018481548110612a6e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080612a9e57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c23565b6000915050610c23565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b2557805160ff1916838001178555612b52565b82800160010185558215612b52579182015b82811115612b52578251825591602001919060010190612b37565b50612b5e929150612b62565b5090565b5b80821115612b5e5760008155600101612b63565b60e01c90565b600060443d1015612b8d57611987565b600481823e6308c379a0612ba18251612b77565b14612bab57611987565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612bdb5750505050611987565b82840192508251915080821115612bf55750505050611987565b503d83016020828401011115612c0d57505050611987565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208082e80af5715fe3fac7824ad3b116a08ca0bb914f0d3fd373b87d6d3d635c7664736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba26469706673582212206bf00ba30bb34af44bf92128b57b7330a2e0d7dda2d608de431952c934fe131f64736f6c634300060c0033", + "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620002385760003560e01c80636d6112861162000135578063b9581c5011620000bd578063cc5b715b1162000087578063cc5b715b1462000490578063d547741f146200049a578063dec2deb614620004b1578063e7ece22814620004bb578063edcc12b514620004d25762000238565b8063b9581c501462000441578063c0e312dc146200044b578063ca15c8731462000462578063cb703bff14620004795762000238565b806391d1485411620000ff57806391d1485414620003f2578063a217fddf1462000409578063ade686761462000413578063b626a44f146200042a5762000238565b80636d61128614620003b05780636d6c68e614620003ba578063884cee5a14620003c45780639010d07c14620003db5762000238565b806336568abe11620001c557806350f44280116200018f57806350f4428014620003485780635492d3b514620003615780635573b8b614620003785780636685bde514620003825780636ce681d214620003995762000238565b806336568abe14620002f757806339927cf9146200030e5780633b690b6b14620003345780633fa194ce146200033e5762000238565b8063248a9ca31162000207578063248a9ca314620002a657806328c5e18214620002cc5780632dc151de14620002d65780632f2ff15d14620002e05762000238565b8063029996b8146200023d578063066ee47f14620002495780630b885ac314620002605780630f1a8f741462000277575b600080fd5b62000247620004e9565b005b620002476200025a36600462002b0a565b62000541565b620002476200027136600462002c48565b6200081c565b6200028e620002883660046200298e565b620008bc565b6040516200029d919062002ee3565b60405180910390f35b620002bd620002b73660046200298e565b620008d7565b6040516200029d919062003036565b620002bd620008ec565b6200028e62000937565b62000247620002f1366004620029a7565b62000946565b6200024762000308366004620029a7565b62000996565b620003256200031f36600462002a6d565b620009df565b6040516200029d91906200302b565b620002bd62000a3e565b620002bd62000a44565b6200035262000a57565b6040516200029d919062003099565b620002476200037236600462002bc9565b62000a7a565b6200028e62000cc9565b6200028e6200039336600462002836565b62000cd8565b62000247620003aa36600462002c48565b62000cf3565b6200028e62000e59565b6200028e62000e68565b62000325620003d5366004620029ce565b62000e77565b6200028e620003ec36600462002a2d565b62001008565b6200032562000403366004620029a7565b62001029565b620002bd62001043565b620002476200042436600462002855565b62001048565b620002476200043b3660046200292f565b620012cd565b62000247620013a2565b620002476200045c36600462002a6d565b620013eb565b620002bd620004733660046200298e565b620014b3565b620002476200048a36600462002ab0565b620014cc565b620002bd620015ce565b62000247620004ab366004620029a7565b620015f2565b6200032562001632565b62000247620004cc366004620028e5565b62001642565b62000247620004e336600462002836565b62001835565b62000504600080516020620070918339815191523362001029565b6200052c5760405162461bcd60e51b815260040162000523906200338c565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6001600160a01b0383166200056a5760405162461bcd60e51b815260040162000523906200350e565b600086866040516020016200058192919062002eb5565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b848301529151919350620005c392910162002ec5565b60405160208183030381529060405280519060200120811415620005fb5760405162461bcd60e51b8152600401620005239062003271565b6000818152606a60205260409020546001600160a01b0316620006325760405162461bcd60e51b81526004016200052390620030e6565b6001600160a01b038086166000908152606b602052604090205416620006588162001883565b620006775760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c590620006a7903390309060040162002ef7565b60206040518083038186803b158015620006c057600080fd5b505afa158015620006d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006fb91906200296c565b6200071a5760405162461bcd60e51b81526004016200052390620033cd565b604051631ac8311560e21b81526001600160a01b03821690636b20c454906200074c9033908890889060040162002f11565b600060405180830381600087803b1580156200076757600080fd5b505af11580156200077c573d6000803e3d6000fd5b505050506060620007908787878762001889565b6065546000858152606a6020526040908190205490516365e3781f60e01b81529293506001600160a01b03918216926365e3781f92620007dd928e928e929091169087906004016200303f565b600060405180830381600087803b158015620007f857600080fd5b505af11580156200080d573d6000803e3d6000fd5b50505050505050505050505050565b600054610100900460ff16806200083857506200083862001907565b8062000847575060005460ff16155b620008665760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562000892576000805460ff1961ff0019909116610100171660011790555b620008a1868686868662000cf3565b8015620008b4576000805461ff00191690555b505050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016200091e919062002ec5565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b6000828152603360205260409020600201546200096790620004036200191a565b620009865760405162461bcd60e51b815260040162000523906200315f565b6200099282826200191e565b5050565b620009a06200191a565b6001600160a01b0316816001600160a01b031614620009d35760405162461bcd60e51b8152600401620005239062003699565b6200099282826200198c565b6000806001600160a01b0316606a6000858560405160200162000a0492919062002eb5565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b6000805160206200709183398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6001600160a01b03831662000aa35760405162461bcd60e51b815260040162000523906200350e565b6000868660405160200162000aba92919062002eb5565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b84830152915191935062000afc92910162002ec5565b6040516020818303038152906040528051906020012081141562000b345760405162461bcd60e51b8152600401620005239062003271565b6000818152606a60205260409020546001600160a01b031662000b6b5760405162461bcd60e51b81526004016200052390620030e6565b6001600160a01b038086166000908152606b60205260409020541662000b918162001883565b62000bb05760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c59062000be0903390309060040162002ef7565b60206040518083038186803b15801562000bf957600080fd5b505afa15801562000c0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c3491906200296c565b62000c535760405162461bcd60e51b81526004016200052390620033cd565b604051637a94c56560e11b81526001600160a01b0382169063f5298aca9062000c859033908890889060040162002f55565b600060405180830381600087803b15801562000ca057600080fd5b505af115801562000cb5573d6000803e3d6000fd5b5050505060606200079087878787620019fa565b6065546001600160a01b031681565b606b602052600090815260409020546001600160a01b031681565b600054610100900460ff168062000d0f575062000d0f62001907565b8062000d1e575060005460ff16155b62000d3d5760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562000d69576000805460ff1961ff0019909116610100171660011790555b62000d7362001a5e565b62000d8060003362000986565b62000d9b600080516020620070918339815191523362000986565b62000dc77ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000986565b8560405160200162000dda919062002ec5565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015620008b4576000805461ff0019169055505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6065546000906001600160a01b0316331462000ea75760405162461bcd60e51b81526004016200052390620031ae565b606854851415801562000f3957506040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000ee7919062002ec5565b60405160208183030381529060405280519060200120851462000f27576000858152606a60205260409020546001600160a01b0385811691161462000f39565b6069546001600160a01b038581169116145b62000f585760405162461bcd60e51b815260040162000523906200357c565b600062000f66848462001afe565b9050600981600c81111562000f7757fe5b148062000f905750600a81600c81111562000f8e57fe5b145b1562000fa85762000fa2848462001b49565b62000ffc565b600b81600c81111562000fb757fe5b148062000fd05750600c81600c81111562000fce57fe5b145b1562000fe25762000fa2848462001dec565b60405162461bcd60e51b81526004016200052390620036e8565b50600195945050505050565b60008281526033602052604081206200102290836200206a565b9392505050565b600082815260336020526040812062001022908362002078565b600081565b6001600160a01b038316620010715760405162461bcd60e51b815260040162000523906200350e565b6001600160a01b038085166000908152606b6020526040908190205460675491516311be333d60e11b815290831692919091169063237c667a90620010bb90879060040162002ee3565b600060405180830381600087803b158015620010d657600080fd5b505af1158015620010eb573d6000803e3d6000fd5b5050505062001103816001600160a01b031662001883565b620011225760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c59062001152903390309060040162002ef7565b60206040518083038186803b1580156200116b57600080fd5b505afa15801562001180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011a691906200296c565b620011c55760405162461bcd60e51b81526004016200052390620033cd565b604051631ac8311560e21b81526001600160a01b03821690636b20c45490620011f79033908790879060040162002f11565b600060405180830381600087803b1580156200121257600080fd5b505af115801562001227573d6000803e3d6000fd5b5050505060606200123b8686868662001889565b606554604080518082018252600781526613585a5b9b995d60ca1b602082015260695491516365e3781f60e01b81529394506001600160a01b03928316936365e3781f93620012919316908690600401620030ae565b600060405180830381600087803b158015620012ac57600080fd5b505af1158015620012c1573d6000803e3d6000fd5b50505050505050505050565b620012f97ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362001029565b620013185760405162461bcd60e51b8152600401620005239062003454565b6200132c816001600160a01b031662001883565b6200134b5760405162461bcd60e51b8152600401620005239062003545565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517f096b3e2c36bc263e90f7577e70dc47b6536fc8d85d467d54f61f91c2ca091c519190a35050565b620013bd600080516020620070918339815191523362001029565b620013dc5760405162461bcd60e51b815260040162000523906200338c565b6069805460ff60a01b19169055565b6066546001600160a01b03163314806200140d57506200140d60003362001029565b6200142c5760405162461bcd60e51b8152600401620005239062003633565b600082826040516020016200144392919062002eb5565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316620014935760405162461bcd60e51b81526004016200052390620032c1565b6000908152606a6020526040902080546001600160a01b03191690555050565b600081815260336020526040812062000a38906200208f565b6066546001600160a01b0316331480620014ee5750620014ee60003362001029565b6200150d5760405162461bcd60e51b8152600401620005239062003633565b600083836040516020016200152492919062002eb5565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031615620015755760405162461bcd60e51b81526004016200052390620035fc565b6001600160a01b0382166200159e5760405162461bcd60e51b81526004016200052390620030e6565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b6000828152603360205260409020600201546200161390620004036200191a565b620009d35760405162461bcd60e51b8152600401620005239062003404565b606954600160a01b900460ff1681565b6001600160a01b0383166200166b5760405162461bcd60e51b815260040162000523906200350e565b6001600160a01b038085166000908152606b6020526040908190205460675491516311be333d60e11b815290831692919091169063237c667a90620016b590879060040162002ee3565b600060405180830381600087803b158015620016d057600080fd5b505af1158015620016e5573d6000803e3d6000fd5b50505050620016fd816001600160a01b031662001883565b6200171c5760405162461bcd60e51b8152600401620005239062003662565b60405163e985e9c560e01b81526001600160a01b0382169063e985e9c5906200174c903390309060040162002ef7565b60206040518083038186803b1580156200176557600080fd5b505afa1580156200177a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017a091906200296c565b620017bf5760405162461bcd60e51b81526004016200052390620033cd565b604051637a94c56560e11b81526001600160a01b0382169063f5298aca90620017f19033908790879060040162002f55565b600060405180830381600087803b1580156200180c57600080fd5b505af115801562001821573d6000803e3d6000fd5b5050505060606200123b86868686620019fa565b6200184260003362001029565b620018615760405162461bcd60e51b815260040162000523906200323a565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b6060620018956200245e565b6040805160c081019091528060a0810180600b8152508152602001876001600160a01b03168152602001866001600160a01b0316815260200185815260200184815250905080604051602001620018ed919062003718565b604051602081830303815290604052915050949350505050565b6000620019143062001883565b15905090565b3390565b60008281526033602052604090206200193890826200209c565b156200099257620019486200191a565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020620019a69082620020b3565b156200099257620019b66200191a565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b606062001a0662002494565b6040805160c081019091528060a081018060098152508152602001876001600160a01b03168152602001866001600160a01b0316815260200185815260200184815250905080604051602001620018ed91906200378c565b600054610100900460ff168062001a7a575062001a7a62001907565b8062001a89575060005460ff16155b62001aa85760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562001ad4576000805460ff1961ff0019909116610100171660011790555b62001ade620020ca565b62001ae8620020ca565b801562001afb576000805461ff00191690555b50565b60008062001b0f838501856200298e565b90506020810662001b3b5762001b3262001b2c8483818862003804565b62001afe565b91505062000a38565b62001b328385018562002a4f565b600062001b57838362001afe565b90506000808080600985600c81111562001b6d57fe5b141562001baf5762001b7e62002494565b62001b8a888862002154565b9050806040015194508060200151935080606001519250806080015191505062001cd4565b62001bb9620024cb565b62001bc58888620021a6565b805160408082015160208084015160608501516080909501516001600160a01b038083166000908152606b9094529490922054929a509850929650919450919250168062001cd157606954600160a01b900460ff1662001c395760405162461bcd60e51b81526004016200052390620034d7565b60208201515160405162001c4d90620024f4565b62001c59919062003099565b604051809103906000f08015801562001c76573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939450919290917ff591ef422bd6af456a3cad967032f043099a7d9838494d88ba15d16a89f50b7491a35b50505b6001600160a01b038084166000908152606b60205260409020541662001cfa8162001883565b62001d195760405162461bcd60e51b8152600401620005239062003545565b60405163731133e960e01b81526001600160a01b0382169063731133e99062001d4b9088908790879060040162002fc9565b600060405180830381600087803b15801562001d6657600080fd5b505af115801562001d7b573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f84899afd4ab55115c2eab5a59471e73bc42359e7c3d4e5a3c1aa4837bd20ed5562001dbf86620021f8565b62001dca86620021f8565b60405162001dda92919062002ff9565b60405180910390a35050505050505050565b600062001dfa838362001afe565b9050600080606080600b85600c81111562001e1157fe5b141562001e535762001e226200245e565b62001e2e88886200223a565b9050806040015194508060200151935080606001519250806080015191505062001f78565b62001e5d62002502565b62001e6988886200228c565b805160408082015160208084015160608501516080909501516001600160a01b038083166000908152606b9094529490922054929a509850929650919450919250168062001f7557606954600160a01b900460ff1662001edd5760405162461bcd60e51b81526004016200052390620034d7565b60208201515160405162001ef190620024f4565b62001efd919062003099565b604051809103906000f08015801562001f1a573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939450919290917ff591ef422bd6af456a3cad967032f043099a7d9838494d88ba15d16a89f50b7491a35b50505b6001600160a01b038084166000908152606b60205260409020541662001f9e8162001883565b62001fbd5760405162461bcd60e51b8152600401620005239062003545565b604051630fbfeffd60e11b81526001600160a01b03821690631f7fdffa9062001fef9088908790879060040162002f76565b600060405180830381600087803b1580156200200a57600080fd5b505af11580156200201f573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f84899afd4ab55115c2eab5a59471e73bc42359e7c3d4e5a3c1aa4837bd20ed55858560405162001dda92919062002ff9565b6000620010228383620022de565b600062001022836001600160a01b03841662002327565b600062000a38826200233f565b600062001022836001600160a01b03841662002343565b600062001022836001600160a01b03841662002392565b600054610100900460ff1680620020e65750620020e662001907565b80620020f5575060005460ff16155b620021145760405162461bcd60e51b8152600401620005239062003489565b600054610100900460ff1615801562001ae8576000805460ff1961ff001990911661010017166001179055801562001afb576000805461ff001916905550565b6200215e62002494565b60096200216c848462001afe565b600c8111156200217857fe5b14620021985760405162461bcd60e51b81526004016200052390620032f8565b620010228284018462002e1a565b620021b0620024cb565b600a620021be848462001afe565b600c811115620021ca57fe5b14620021ea5760405162461bcd60e51b815260040162000523906200333c565b620010228284018462002cdb565b6040805160018082528183019092526060916020808301908036833701905050905081816000815181106200222957fe5b602002602001018181525050919050565b620022446200245e565b600b62002252848462001afe565b600c8111156200225e57fe5b146200227e5760405162461bcd60e51b81526004016200052390620035b3565b620010228284018462002ddc565b6200229662002502565b600c620022a4848462001afe565b600c811115620022b057fe5b14620022d05760405162461bcd60e51b81526004016200052390620031e5565b620010228284018462002d61565b81546000908210620023045760405162461bcd60e51b815260040162000523906200311d565b8260000182815481106200231457fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600062002351838362002327565b620023895750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000a38565b50600062000a38565b60008181526001830160205260408120548015620024535783546000198083019190810190600090879083908110620023c757fe5b9060005260206000200154905080876000018481548110620023e557fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806200241657fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000a38565b600091505062000a38565b6040518060a001604052806200247362002517565b81526000602082018190526040820152606080820181905260809091015290565b6040518060a00160405280620024a962002517565b8152600060208201819052604082018190526060820181905260809091015290565b6040518060400160405280620024e062002494565b8152602001620024ef6200252b565b905290565b613819806200387883390190565b6040518060400160405280620024e06200245e565b6040805160208101909152806000620024ef565b6040518060200160405280606081525090565b600082601f8301126200254f578081fd5b81356001600160401b0381111562002565578182fd5b602080820262002577828201620037dd565b838152935081840185830182870184018810156200259457600080fd5b600092505b84831015620025b957803582526001929092019190830190830162002599565b505050505092915050565b60008083601f840112620025d6578182fd5b5081356001600160401b03811115620025ed578182fd5b6020830191508360208285010111156200260657600080fd5b9250929050565b8035600d811062000a3857600080fd5b600082601f8301126200262e578081fd5b81356001600160401b0381111562002644578182fd5b62002659601f8201601f1916602001620037dd565b91508082528360208285010111156200267157600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156200269c578081fd5b620026a86020620037dd565b9050620026b683836200260d565b815292915050565b600060208284031215620026d0578081fd5b620026dc6020620037dd565b905081356001600160401b03811115620026f557600080fd5b62002703848285016200261d565b82525092915050565b600060a082840312156200271e578081fd5b6200272a60a0620037dd565b90506200273883836200268a565b815260208201356200274a8162003861565b602082015260408201356200275f8162003861565b604082015260608201356001600160401b03808211156200277f57600080fd5b6200278d858386016200253e565b60608401526080840135915080821115620027a757600080fd5b50620027b6848285016200253e565b60808301525092915050565b600060a08284031215620027d4578081fd5b620027e060a0620037dd565b9050620027ee83836200268a565b81526020820135620028008162003861565b60208201526040820135620028158162003861565b80604083015250606082013560608201526080820135608082015292915050565b60006020828403121562002848578081fd5b8135620010228162003861565b600080600080608085870312156200286b578283fd5b8435620028788162003861565b935060208501356200288a8162003861565b925060408501356001600160401b0380821115620028a6578384fd5b620028b4888389016200253e565b93506060870135915080821115620028ca578283fd5b50620028d9878288016200253e565b91505092959194509250565b60008060008060808587031215620028fb578384fd5b8435620029088162003861565b935060208501356200291a8162003861565b93969395505050506040820135916060013590565b6000806040838503121562002942578182fd5b82356200294f8162003861565b91506020830135620029618162003861565b809150509250929050565b6000602082840312156200297e578081fd5b8151801515811462001022578182fd5b600060208284031215620029a0578081fd5b5035919050565b60008060408385031215620029ba578182fd5b823591506020830135620029618162003861565b60008060008060608587031215620029e4578182fd5b843593506020850135620029f88162003861565b925060408501356001600160401b0381111562002a13578283fd5b62002a2187828801620025c4565b95989497509550505050565b6000806040838503121562002a40578182fd5b50508035926020909101359150565b60006020828403121562002a61578081fd5b6200102283836200260d565b6000806020838503121562002a80578182fd5b82356001600160401b0381111562002a96578283fd5b62002aa485828601620025c4565b90969095509350505050565b60008060006040848603121562002ac5578081fd5b83356001600160401b0381111562002adb578182fd5b62002ae986828701620025c4565b909450925050602084013562002aff8162003861565b809150509250925092565b60008060008060008060a0878903121562002b23578384fd5b86356001600160401b038082111562002b3a578586fd5b62002b488a838b01620025c4565b90985096506020890135915062002b5f8262003861565b90945060408801359062002b738262003861565b9093506060880135908082111562002b89578384fd5b62002b978a838b016200253e565b9350608089013591508082111562002bad578283fd5b5062002bbc89828a016200253e565b9150509295509295509295565b60008060008060008060a0878903121562002be2578384fd5b86356001600160401b0381111562002bf8578485fd5b62002c0689828a01620025c4565b909750955050602087013562002c1c8162003861565b9350604087013562002c2e8162003861565b959894975092956060810135946080909101359350915050565b600080600080600060a0868803121562002c60578283fd5b85356001600160401b0381111562002c76578384fd5b62002c84888289016200261d565b955050602086013562002c978162003861565b9350604086013562002ca98162003861565b9250606086013562002cbb8162003861565b9150608086013562002ccd8162003861565b809150509295509295909350565b60006020828403121562002ced578081fd5b81356001600160401b038082111562002d04578283fd5b9083019060c0828603121562002d18578283fd5b62002d246040620037dd565b62002d308684620027c2565b815260a08301358281111562002d44578485fd5b62002d5287828601620026be565b60208301525095945050505050565b60006020828403121562002d73578081fd5b81356001600160401b038082111562002d8a578283fd5b908301906040828603121562002d9e578283fd5b62002daa6040620037dd565b82358281111562002db9578485fd5b62002dc7878286016200270c565b82525060208301358281111562002d44578485fd5b60006020828403121562002dee578081fd5b81356001600160401b0381111562002e04578182fd5b62002e12848285016200270c565b949350505050565b600060a0828403121562002e2c578081fd5b620010228383620027c2565b6000815180845260208085019450808401835b8381101562002e695781518752958201959082019060010162002e4b565b509495945050505050565b6000815180845262002e8e8160208601602086016200382e565b601f01601f19169290920160200192915050565b8051600d811062002eaf57fe5b90915250565b6000828483379101908152919050565b6000825162002ed98184602087016200382e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038416815260606020820181905260009062002f379083018562002e38565b828103604084015262002f4b818562002e38565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b038416815260806020820181905260009062002f9c9083018562002e38565b828103604084015262002fb0818562002e38565b8381036060909401939093525081526020019392505050565b6001600160a01b039390931683526020830191909152604082015260806060820181905260009082015260a00190565b6000604082526200300e604083018562002e38565b828103602084015262003022818562002e38565b95945050505050565b901515815260200190565b90815260200190565b60006060825284606083015284866080840137608085830181018290526001600160a01b0385166020840152601f8601601f1916830183810382016040850152906200308e9082018562002e74565b979650505050505050565b60006020825262001022602083018462002e74565b600060608252620030c3606083018662002e74565b6001600160a01b0385166020840152828103604084015262002f4b818562002e74565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b60208082526035908201527f4d6573736167652074797065206973206e6f742045524331313535426174636860408201527420b7322a37b5b2b724b73337903a3930b739b332b960591b606082015260800190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526024908201527f4d6573736167652074797065206973206e6f742045524331313535207472616e60408201526339b332b960e11b606082015260800190565b60208082526030908201527f4d6573736167652074797065206973206e6f742045524331313535416e64546f60408201526f35b2b724b73337903a3930b739b332b960811b606082015260800190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526019908201527f4e6f7420616c6c6f776564204552433131353520546f6b656e00000000000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b60208082526029908201527f4d6573736167652074797065206973206e6f7420455243313135354261746368604082015268103a3930b739b332b960b91b606082015260800190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b6000602082526200372e60208301845162002ea2565b60208301516001600160a01b039081166040848101919091528401511660608084019190915283015160a060808401526200376d60c084018262002e38565b90506080840151601f198483030160a085015262003022828262002e38565b600060a082019050620037a182845162002ea2565b602083015160018060a01b0380821660208501528060408601511660408501525050606083015160608301526080830151608083015292915050565b6040518181016001600160401b0381118282101715620037fc57600080fd5b604052919050565b6000808585111562003814578182fd5b8386111562003821578182fd5b5050820193919092039150565b60005b838110156200384b57818101518382015260200162003831565b838111156200385b576000848401525b50505050565b6001600160a01b038116811462001afb57600080fdfe60806040523480156200001157600080fd5b506040516200381938038062003819833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052505050620001026200017360201b620017601760201c565b62000118816200023160201b620018121760201c565b6200012d620002fb60201b620018cd1760201c565b62000148600080516020620037f983398151915280620003a3565b6200016c600080516020620037f983398151915262000166620003f5565b620003f9565b5062000872565b600054610100900460ff16806200018f57506200018f62000405565b806200019e575060005460ff16155b620001db5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000207576000805460ff1961ff0019909116610100171660011790555b6200021162000423565b6200021b62000423565b80156200022e576000805461ff00191690555b50565b600054610100900460ff16806200024d57506200024d62000405565b806200025c575060005460ff16155b620002995760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff16158015620002c5576000805460ff1961ff0019909116610100171660011790555b620002cf62000423565b620002d9620004cb565b620002e48262000571565b8015620002f7576000805461ff00191690555b5050565b600054610100900460ff16806200031757506200031762000405565b8062000326575060005460ff16155b620003635760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200038f576000805460ff1961ff0019909116610100171660011790555b6200039962000423565b62000211620004cb565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620002f7828262000634565b60006200041d30620006af60201b6200196a1760201c565b15905090565b600054610100900460ff16806200043f57506200043f62000405565b806200044e575060005460ff16155b6200048b5760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200021b576000805460ff1961ff00199091166101001716600117905580156200022e576000805461ff001916905550565b600054610100900460ff1680620004e75750620004e762000405565b80620004f6575060005460ff16155b620005335760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff161580156200055f576000805460ff1961ff0019909116610100171660011790555b6200021b6301ffc9a760e01b620006b5565b600054610100900460ff16806200058d57506200058d62000405565b806200059c575060005460ff16155b620005d95760405162461bcd60e51b815260040180806020018281038252602e815260200180620037cb602e913960400191505060405180910390fd5b600054610100900460ff1615801562000605576000805460ff1961ff0019909116610100171660011790555b62000610826200073a565b62000622636cdb3d1360e11b620006b5565b620002e46303a24d0760e21b620006b5565b60008281526033602090815260409091206200065b918390620019706200074f821b17901c565b15620002f7576200066b620003f5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000715576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b8051620002f7906099906020840190620007d6565b600062000766836001600160a01b0384166200076f565b90505b92915050565b60006200077d8383620007be565b620007b55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000769565b50600062000769565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200081957805160ff191683800117855562000849565b8280016001018555821562000849579182015b82811115620008495782518255916020019190600101906200082c565b50620008579291506200085b565b5090565b5b808211156200085757600081556001016200085c565b612f4980620008826000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063731133e9116100b8578063ca15c8731161007c578063ca15c87314610a3d578063d539139314610a5a578063d547741f14610a62578063e985e9c514610a8e578063f242432a14610abc578063f5298aca14610b8557610136565b8063731133e9146108dc5780639010d07c1461099c57806391d14854146109db578063a217fddf14610a07578063a22cb46514610a0f57610136565b80632eb2c2d6116100ff5780632eb2c2d61461041d5780632f2ff15d146105de57806336568abe1461060a5780634e1273f4146106365780636b20c454146107a957610136565b8062fdd58e1461013b57806301ffc9a7146101795780630e89341c146101b45780631f7fdffa14610246578063248a9ca314610400575b600080fd5b6101676004803603604081101561015157600080fd5b506001600160a01b038135169060200135610bb7565b60408051918252519081900360200190f35b6101a06004803603602081101561018f57600080fd5b50356001600160e01b031916610c29565b604080519115158252519081900360200190f35b6101d1600480360360208110156101ca57600080fd5b5035610c48565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fe6004803603608081101561025c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561028657600080fd5b82018360208201111561029857600080fd5b803590602001918460208302840111600160201b831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561030857600080fd5b82018360208201111561031a57600080fd5b803590602001918460208302840111600160201b8311171561033b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561038a57600080fd5b82018360208201111561039c57600080fd5b803590602001918460018302840111600160201b831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b005b6101676004803603602081101561041657600080fd5b5035610d6d565b6103fe600480360360a081101561043357600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561046657600080fd5b82018360208201111561047857600080fd5b803590602001918460208302840111600160201b8311171561049957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156104e857600080fd5b8201836020820111156104fa57600080fd5b803590602001918460208302840111600160201b8311171561051b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460018302840111600160201b8311171561059d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d82945050505050565b6103fe600480360360408110156105f457600080fd5b50803590602001356001600160a01b0316611085565b6103fe6004803603604081101561062057600080fd5b50803590602001356001600160a01b03166110ec565b6107596004803603604081101561064c57600080fd5b810190602081018135600160201b81111561066657600080fd5b82018360208201111561067857600080fd5b803590602001918460208302840111600160201b8311171561069957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106e857600080fd5b8201836020820111156106fa57600080fd5b803590602001918460208302840111600160201b8311171561071b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061114d945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561079557818101518382015260200161077d565b505050509050019250505060405180910390f35b6103fe600480360360608110156107bf57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107e957600080fd5b8201836020820111156107fb57600080fd5b803590602001918460208302840111600160201b8311171561081c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561086b57600080fd5b82018360208201111561087d57600080fd5b803590602001918460208302840111600160201b8311171561089e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611239945050505050565b6103fe600480360360808110156108f257600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561092857600080fd5b82018360208201111561093a57600080fd5b803590602001918460018302840111600160201b8311171561095b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506112b2945050505050565b6109bf600480360360408110156109b257600080fd5b5080359060200135611334565b604080516001600160a01b039092168252519081900360200190f35b6101a0600480360360408110156109f157600080fd5b50803590602001356001600160a01b0316611353565b61016761136b565b6103fe60048036036040811015610a2557600080fd5b506001600160a01b0381351690602001351515611370565b61016760048036036020811015610a5357600080fd5b503561145f565b610167611476565b6103fe60048036036040811015610a7857600080fd5b50803590602001356001600160a01b031661149a565b6101a060048036036040811015610aa457600080fd5b506001600160a01b03813581169160200135166114f3565b6103fe600480360360a0811015610ad257600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b1157600080fd5b820183602082011115610b2357600080fd5b803590602001918460018302840111600160201b83111715610b4457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611521945050505050565b6103fe60048036036060811015610b9b57600080fd5b506001600160a01b0381351690602081013590604001356116ec565b60006001600160a01b038316610bfe5760405162461bcd60e51b815260040180806020018281038252602b815260200180612cd0602b913960400191505060405180910390fd5b5060008181526097602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526065602052604090205460ff1690565b60998054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b50505050509050919050565b610d117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611353565b610d5b576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461198a565b50505050565b60009081526033602052604090206002015490565b8151835114610dc25760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6001600160a01b038416610e075760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b610e0f611985565b6001600160a01b0316856001600160a01b03161480610e3a5750610e3a85610e35611985565b6114f3565b610e755760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b6000610e7f611985565b9050610e8f81878787878761107d565b60005b8451811015610f95576000858281518110610ea957fe5b602002602001015190506000858381518110610ec157fe5b60200260200101519050610f2e816040518060600160405280602a8152602001612e20602a91396097600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b60008381526097602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610f659082611c76565b60009283526097602090815260408085206001600160a01b038c1686529091529092209190915550600101610e92565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561101b578181015183820152602001611003565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561105a578181015183820152602001611042565b5050505090500194505050505060405180910390a461107d818787878787611cd0565b505050505050565b6000828152603360205260409020600201546110a390610d0c611985565b6110de5760405162461bcd60e51b815260040180806020018281038252602f815260200180612ca1602f913960400191505060405180910390fd5b6110e88282611f4f565b5050565b6110f4611985565b6001600160a01b0316816001600160a01b0316146111435760405162461bcd60e51b815260040180806020018281038252602f815260200180612ee5602f913960400191505060405180910390fd5b6110e88282611fb8565b6060815183511461118f5760405162461bcd60e51b8152600401808060200182810382526029815260200180612e736029913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156111a957600080fd5b506040519080825280602002602001820160405280156111d3578160200160208202803683370190505b50905060005b8451811015611231576112128582815181106111f157fe5b602002602001015185838151811061120557fe5b6020026020010151610bb7565b82828151811061121e57fe5b60209081029190910101526001016111d9565b509392505050565b611241611985565b6001600160a01b0316836001600160a01b03161480611267575061126783610e35611985565b6112a25760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612021565b505050565b6112de7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d0c611985565b611328576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610d678484848461228f565b600082815260336020526040812061134c9083612390565b9392505050565b600082815260336020526040812061134c908361239c565b600081565b816001600160a01b0316611382611985565b6001600160a01b031614156113c85760405162461bcd60e51b8152600401808060200182810382526029815260200180612e4a6029913960400191505060405180910390fd5b80609860006113d5611985565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611419611985565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152603360205260408120610c23906123b1565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152603360205260409020600201546114b890610d0c611985565b6111435760405162461bcd60e51b8152600401808060200182810382526030815260200180612d486030913960400191505060405180910390fd5b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166115665760405162461bcd60e51b8152600401808060200182810382526025815260200180612d786025913960400191505060405180910390fd5b61156e611985565b6001600160a01b0316856001600160a01b03161480611594575061159485610e35611985565b6115cf5760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b60006115d9611985565b90506115f98187876115ea886123bc565b6115f3886123bc565b8761107d565b611640836040518060600160405280602a8152602001612e20602a913960008781526097602090815260408083206001600160a01b038d1684529091529020549190611bdf565b60008581526097602090815260408083206001600160a01b038b811685529252808320939093558716815220546116779084611c76565b60008581526097602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a461107d818787878787612400565b6116f4611985565b6001600160a01b0316836001600160a01b0316148061171a575061171a83610e35611985565b6117555760405162461bcd60e51b8152600401808060200182810382526029815260200180612d1f6029913960400191505060405180910390fd5b6112ad838383612571565b600054610100900460ff168061177957506117796126a4565b80611787575060005460ff16155b6117c25760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117ed576000805460ff1961ff0019909116610100171660011790555b6117f56126b5565b6117fd6126b5565b801561180f576000805461ff00191690555b50565b600054610100900460ff168061182b575061182b6126a4565b80611839575060005460ff16155b6118745760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561189f576000805460ff1961ff0019909116610100171660011790555b6118a76126b5565b6118af612755565b6118b8826127f2565b80156110e8576000805461ff00191690555050565b600054610100900460ff16806118e657506118e66126a4565b806118f4575060005460ff16155b61192f5760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561195a576000805460ff1961ff0019909116610100171660011790555b6119626126b5565b6117f5612755565b3b151590565b600061134c836001600160a01b0384166128a8565b335b90565b6001600160a01b0384166119cf5760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b8151835114611a0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b6000611a19611985565b9050611a2a8160008787878761107d565b60005b8451811015611aee57611aa560976000878481518110611a4957fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054858381518110611a8f57fe5b6020026020010151611c7690919063ffffffff16565b60976000878481518110611ab557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611a2d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b75578181015183820152602001611b5d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bb4578181015183820152602001611b9c565b5050505090500194505050505060405180910390a4611bd881600087878787611cd0565b5050505050565b60008184841115611c6e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c33578181015183820152602001611c1b565b50505050905090810190601f168015611c605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611ce2846001600160a01b031661196a565b1561107d57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d70578181015183820152602001611d58565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611daf578181015183820152602001611d97565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611e3d57600080fd5b505af1925050508015611e6257506040513d6020811015611e5d57600080fd5b505160015b611ef757611e6e612b7d565b80611e795750611ec0565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611c33578181015183820152602001611c1b565b60405162461bcd60e51b8152600401808060200182810382526034815260200180612c236034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b50505050505050565b6000828152603360205260409020611f679082611970565b156110e857611f74611985565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611fd090826128f2565b156110e857611fdd611985565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b0383166120665760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b80518251146120a65760405162461bcd60e51b8152600401808060200182810382526028815260200180612e9c6028913960400191505060405180910390fd5b60006120b0611985565b90506120d08185600086866040518060200160405280600081525061107d565b60005b83518110156121ae576121658382815181106120eb57fe5b6020026020010151604051806060016040528060248152602001612cfb602491396097600088868151811061211c57fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611bdf9092919063ffffffff16565b6097600086848151811061217557fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120d3565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561223557818101518382015260200161221d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561227457818101518382015260200161225c565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122d45760405162461bcd60e51b8152600401808060200182810382526021815260200180612ec46021913960400191505060405180910390fd5b60006122de611985565b90506122f0816000876115ea886123bc565b60008481526097602090815260408083206001600160a01b038916845290915290205461231d9084611c76565b60008581526097602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611bd881600087878787612400565b600061134c8383612907565b600061134c836001600160a01b03841661296b565b6000610c2382612983565b6040805160018082528183019092526060918291906020808301908036833701905050905082816000815181106123ef57fe5b602090810291909101015292915050565b612412846001600160a01b031661196a565b1561107d57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124a1578181015183820152602001612489565b50505050905090810190601f1680156124ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156124f157600080fd5b505af192505050801561251657506040513d602081101561251157600080fd5b505160015b61252257611e6e612b7d565b6001600160e01b0319811663f23a6e6160e01b14611f465760405162461bcd60e51b8152600401808060200182810382526028815260200180612c796028913960400191505060405180910390fd5b6001600160a01b0383166125b65760405162461bcd60e51b8152600401808060200182810382526023815260200180612dfd6023913960400191505060405180910390fd5b60006125c0611985565b90506125f0818560006125d2876123bc565b6125db876123bc565b6040518060200160405280600081525061107d565b61263782604051806060016040528060248152602001612cfb6024913960008681526097602090815260408083206001600160a01b038b1684529091529020549190611bdf565b60008481526097602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b60006126af3061196a565b15905090565b600054610100900460ff16806126ce57506126ce6126a4565b806126dc575060005460ff16155b6127175760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff001990911661010017166001179055801561180f576000805461ff001916905550565b600054610100900460ff168061276e575061276e6126a4565b8061277c575060005460ff16155b6127b75760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff161580156127e2576000805460ff1961ff0019909116610100171660011790555b6117fd6301ffc9a760e01b612987565b600054610100900460ff168061280b575061280b6126a4565b80612819575060005460ff16155b6128545760405162461bcd60e51b815260040180806020018281038252602e815260200180612dcf602e913960400191505060405180910390fd5b600054610100900460ff1615801561287f576000805460ff1961ff0019909116610100171660011790555b61288882612a0b565b612898636cdb3d1360e11b612987565b6118b86303a24d0760e21b612987565b60006128b4838361296b565b6128ea57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c23565b506000610c23565b600061134c836001600160a01b038416612a1e565b815460009082106129495760405162461bcd60e51b8152600401808060200182810382526022815260200180612c576022913960400191505060405180910390fd5b82600001828154811061295857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6001600160e01b031980821614156129e6576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b80516110e8906099906020840190612ae4565b60008181526001830160205260408120548015612ada5783546000198083019190810190600090879083908110612a5157fe5b9060005260206000200154905080876000018481548110612a6e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080612a9e57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c23565b6000915050610c23565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b2557805160ff1916838001178555612b52565b82800160010185558215612b52579182015b82811115612b52578251825591602001919060010190612b37565b50612b5e929150612b62565b5090565b5b80821115612b5e5760008155600101612b63565b60e01c90565b600060443d1015612b8d57611987565b600481823e6308c379a0612ba18251612b77565b14612bab57611987565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612bdb5750505050611987565b82840192508251915080821115612bf55750505050611987565b503d83016020828401011115612c0d57505050611987565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212208082e80af5715fe3fac7824ad3b116a08ca0bb914f0d3fd373b87d6d3d635c7664736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba26469706673582212206bf00ba30bb34af44bf92128b57b7330a2e0d7dda2d608de431952c934fe131f64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.json new file mode 100644 index 000000000..2b8764108 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC20.json @@ -0,0 +1,730 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManagerERC20", + "sourceName": "contracts/schain/TokenManagers/TokenManagerERC20.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc20OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc20OnSchain", + "type": "address" + } + ], + "name": "ERC20TokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc20OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc20OnSchain", + "type": "address" + } + ], + "name": "ERC20TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc20OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc20OnSchain", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ERC20TokenReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AUTOMATIC_DEPLOY_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "erc20OnMainnet", + "type": "address" + }, + { + "internalType": "contract ERC20OnChain", + "name": "erc20OnSchain", + "type": "address" + } + ], + "name": "addERC20TokenByOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "addTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "automaticDeploy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "changeDepositBoxAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "clonesErc20", + "outputs": [ + { + "internalType": "contract ERC20OnChain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "communityLocker", + "outputs": [ + { + "internalType": "contract CommunityLocker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "depositBox", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "disableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "exitToMainERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newChainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initializeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "", + "type": "address" + } + ], + "name": "totalSupplyOnMainnet", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferToSchainERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50615098806100206000396000f3fe60806040523480156200001157600080fd5b50600436106200022c5760003560e01c80635573b8b61162000135578063b9581c5011620000bd578063cc5b715b1162000087578063cc5b715b146200046d578063d547741f1462000477578063dec2deb6146200048e578063edcc12b51462000498578063f429e38314620004af576200022c565b8063b9581c50146200041e578063c0e312dc1462000428578063ca15c873146200043f578063cb703bff1462000456576200022c565b8063884cee5a11620000ff578063884cee5a14620003cf5780639010d07c14620003e657806391d1485414620003fd578063a217fddf1462000414576200022c565b80635573b8b6146200039a5780636ce681d214620003a45780636d61128614620003bb5780636d6c68e614620003c5576200022c565b80632dc151de11620001b95780633b690b6b11620001835780633b690b6b14620003565780633fa194ce14620003605780634d58c889146200036a57806350f442801462000381576200022c565b80632dc151de14620002f85780632f2ff15d146200030257806336568abe146200031957806339927cf91462000330576200022c565b8063248a9ca311620001fb578063248a9ca3146200029a57806328c5e18214620002c05780632baaf64314620002ca5780632d6eea0614620002e1576200022c565b8063029996b814620002315780630472e00a146200023d5780630b885ac314620002545780630f1a8f74146200026b575b600080fd5b6200023b620004c6565b005b6200023b6200024e3660046200242a565b6200051e565b6200023b62000265366004620024a0565b6200093d565b620002826200027c366004620022ab565b62000953565b604051620002919190620026e9565b60405180910390f35b620002b1620002ab366004620022ab565b6200096e565b6040516200029191906200275f565b620002b162000983565b6200023b620002db36600462002207565b620009ce565b62000282620002f2366004620021e8565b62000d97565b6200028262000db2565b6200023b62000313366004620022c4565b62000dc1565b6200023b6200032a366004620022c4565b62000e11565b62000347620003413660046200238b565b62000e5a565b60405162000291919062002754565b620002b162000eb9565b620002b162000ebf565b6200023b6200037b3660046200224c565b62000ed2565b6200038b6200103c565b604051620002919190620027c2565b620002826200105f565b6200023b620003b5366004620024a0565b6200106e565b62000282620011d5565b62000282620011e4565b62000347620003e0366004620022eb565b620011f3565b62000282620003f73660046200234b565b62001369565b620003476200040e366004620022c4565b6200138a565b620002b1620013a4565b6200023b620013a9565b6200023b620004393660046200238b565b620013f2565b620002b162000450366004620022ab565b620014ba565b6200023b62000467366004620023cf565b620014d3565b620002b1620015d5565b6200023b62000488366004620022c4565b620015f9565b6200034762001639565b6200023b620004a9366004620021e8565b62001649565b620002b1620004c0366004620021e8565b62001697565b620004e160008051602062005043833981519152336200138a565b620005095760405162461bcd60e51b8152600401620005009062002a65565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6001600160a01b038216620005475760405162461bcd60e51b8152600401620005009062002cae565b600085856040516020016200055e929190620026bb565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b848301529151919350620005a0929101620026cb565b60405160208183030381529060405280519060200120811415620005d85760405162461bcd60e51b81526004016200050090620029b0565b6000818152606a60205260409020546001600160a01b03166200060f5760405162461bcd60e51b815260040162000500906200284b565b6001600160a01b038085166000908152606b6020526040902054166200063581620016a9565b620006545760405162461bcd60e51b8152600401620005009062002e42565b6040516370a0823160e01b815283906001600160a01b038316906370a082319062000684903390600401620026e9565b60206040518083038186803b1580156200069d57600080fd5b505afa158015620006b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d8919062002674565b1015620006f95760405162461bcd60e51b8152600401620005009062002aa6565b604051636eb1769f60e11b815283906001600160a01b0383169063dd62ed3e906200072b9033903090600401620026fd565b60206040518083038186803b1580156200074457600080fd5b505afa15801562000759573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200077f919062002674565b1015620007a05760405162461bcd60e51b8152600401620005009062002bdc565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd90620007d29033903090889060040162002717565b602060405180830381600087803b158015620007ed57600080fd5b505af115801562000802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000828919062002289565b620008475760405162461bcd60e51b8152600401620005009062002da5565b604051630852cd8d60e31b81526001600160a01b038216906342966c6890620008759086906004016200275f565b600060405180830381600087803b1580156200089057600080fd5b505af1158015620008a5573d6000803e3d6000fd5b50506065546000858152606a60205260409020546001600160a01b0391821693506365e3781f92508a918a9116620008df8a8a8a620016af565b6040518563ffffffff1660e01b815260040162000900949392919062002768565b600060405180830381600087803b1580156200091b57600080fd5b505af115801562000930573d6000803e3d6000fd5b5050505050505050505050565b6200094c85858585856200106e565b5050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001620009b59190620026cb565b6040516020818303038152906040528051906020012081565b6001600160a01b038216620009f75760405162461bcd60e51b8152600401620005009062002cae565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a9062000a29908590600401620026e9565b600060405180830381600087803b15801562000a4457600080fd5b505af115801562000a59573d6000803e3d6000fd5b505050506001600160a01b038381166000908152606b60205260409020541662000a8381620016a9565b62000aa25760405162461bcd60e51b8152600401620005009062002e42565b6040516370a0823160e01b815282906001600160a01b038316906370a082319062000ad2903390600401620026e9565b60206040518083038186803b15801562000aeb57600080fd5b505afa15801562000b00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b26919062002674565b101562000b475760405162461bcd60e51b8152600401620005009062002aa6565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e9062000b799033903090600401620026fd565b60206040518083038186803b15801562000b9257600080fd5b505afa15801562000ba7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bcd919062002674565b101562000bee5760405162461bcd60e51b8152600401620005009062002bdc565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd9062000c209033903090879060040162002717565b602060405180830381600087803b15801562000c3b57600080fd5b505af115801562000c50573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c76919062002289565b62000c955760405162461bcd60e51b8152600401620005009062002da5565b604051630852cd8d60e31b81526001600160a01b038216906342966c689062000cc39085906004016200275f565b600060405180830381600087803b15801562000cde57600080fd5b505af115801562000cf3573d6000803e3d6000fd5b505060655460408051808201909152600781526613585a5b9b995d60ca1b60208201526069546001600160a01b0392831694506365e3781f935090911662000d3d888888620016af565b6040518463ffffffff1660e01b815260040162000d5d93929190620027d7565b600060405180830381600087803b15801562000d7857600080fd5b505af115801562000d8d573d6000803e3d6000fd5b5050505050505050565b606b602052600090815260409020546001600160a01b031681565b6066546001600160a01b031681565b60008281526033602052604090206002015462000de2906200040e62001726565b62000e015760405162461bcd60e51b81526004016200050090620028f3565b62000e0d82826200172a565b5050565b62000e1b62001726565b6001600160a01b0316816001600160a01b03161462000e4e5760405162461bcd60e51b8152600401620005009062002e79565b62000e0d828262001798565b6000806001600160a01b0316606a6000858560405160200162000e7f929190620026bb565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b6000805160206200504383398151915281565b62000efe7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba8336200138a565b62000f1d5760405162461bcd60e51b8152600401620005009062002b22565b62000f31816001600160a01b0316620016a9565b62000f505760405162461bcd60e51b8152600401620005009062002ce5565b806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000f8a57600080fd5b505afa15801562000f9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fc5919062002674565b1562000fe55760405162461bcd60e51b8152600401620005009062002ba5565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517fc6e93524baaa4770b94da082aa0caeac9ba78c87f7edc7c3d2820f2e9fdf400a9190a35050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff16806200108a57506200108a62001806565b8062001099575060005460ff16155b620010b85760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff16158015620010e4576000805460ff1961ff0019909116610100171660011790555b620010ee62001819565b620010fb60003362000e01565b62001116600080516020620050438339815191523362000e01565b620011427ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000e01565b85604051602001620011559190620026cb565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015620011cd576000805461ff00191690555b505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6065546000906001600160a01b03163314620012235760405162461bcd60e51b8152600401620005009062002942565b6068548514158015620012b557506040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001620012639190620026cb565b604051602081830303815290604052805190602001208514620012a3576000858152606a60205260409020546001600160a01b03858116911614620012b5565b6069546001600160a01b038581169116145b620012d45760405162461bcd60e51b8152600401620005009062002d1c565b6000620012e28484620018b9565b9050600481600c811115620012f357fe5b14806200130c5750600381600c8111156200130a57fe5b145b1562001343576200131e848462001904565b6200133d5760405162461bcd60e51b8152600401620005009062002a37565b6200135d565b60405162461bcd60e51b8152600401620005009062002ec8565b50600195945050505050565b600082815260336020526040812062001383908362001caf565b9392505050565b600082815260336020526040812062001383908362001cbd565b600081565b620013c460008051602062005043833981519152336200138a565b620013e35760405162461bcd60e51b8152600401620005009062002a65565b6069805460ff60a01b19169055565b6066546001600160a01b0316331480620014145750620014146000336200138a565b620014335760405162461bcd60e51b8152600401620005009062002e13565b600082826040516020016200144a929190620026bb565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b03166200149a5760405162461bcd60e51b8152600401620005009062002a00565b6000908152606a6020526040902080546001600160a01b03191690555050565b600081815260336020526040812062000eb39062001cd4565b6066546001600160a01b0316331480620014f55750620014f56000336200138a565b620015145760405162461bcd60e51b8152600401620005009062002e13565b600083836040516020016200152b929190620026bb565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316156200157c5760405162461bcd60e51b8152600401620005009062002ddc565b6001600160a01b038216620015a55760405162461bcd60e51b815260040162000500906200284b565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b6000828152603360205260409020600201546200161a906200040e62001726565b62000e4e5760405162461bcd60e51b8152600401620005009062002ad2565b606954600160a01b900460ff1681565b620016566000336200138a565b620016755760405162461bcd60e51b8152600401620005009062002979565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b606c6020526000908152604090205481565b3b151590565b6060620016bb62001fbd565b6040805160a0810190915280608081018060028152508152602001866001600160a01b03168152602001856001600160a01b03168152602001848152509050806040516020016200170d919062002ef8565b6040516020818303038152906040529150509392505050565b3390565b600082815260336020526040902062001744908262001ce1565b1562000e0d576200175462001726565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020620017b2908262001cf8565b1562000e0d57620017c262001726565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006200181330620016a9565b15905090565b600054610100900460ff16806200183557506200183562001806565b8062001844575060005460ff16155b620018635760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff161580156200188f576000805460ff1961ff0019909116610100171660011790555b6200189962001d0f565b620018a362001d0f565b8015620018b6576000805461ff00191690555b50565b600080620018ca83850185620022ab565b905060208106620018f657620018ed620018e78483818862002f69565b620018b9565b91505062000eb3565b620018ed838501856200236d565b600080620019138484620018b9565b9050600080808080600386600c8111156200192a57fe5b141562001990576200193b62001fed565b620019478a8a62001d99565b8051604080820151602080840151606090940151948101516001600160a01b038086166000908152606b9093529390912054919a5092985092965090945016915062001ac29050565b6200199a6200200f565b620019a68a8a62001deb565b8051604080820151602080840151606090940151818601516001600160a01b038087166000908152606b9094529490922054929b5093995092975091955016925090508162001ac057606954600160a01b900460ff1662001a1b5760405162461bcd60e51b8152600401620005009062002c77565b80604001516000015181604001516040015160405162001a3b906200203f565b62001a4892919062002819565b604051809103906000f08015801562001a65573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939550919290917fcdae5f6ddbda7847ad809fcd087e35946ef42729ff7ecdbcc81a03eb3a52ab2891a35b505b62001ad6816001600160a01b0316620016a9565b62001af55760405162461bcd60e51b8152600401620005009062002ce5565b6001600160a01b0381166000908152606c6020526040902054821462001b31576001600160a01b0381166000908152606c602052604090208290555b606c6000826001600160a01b03166001600160a01b031681526020019081526020016000205483826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801562001b9257600080fd5b505afa15801562001ba7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bcd919062002674565b01111562001bef5760405162461bcd60e51b81526004016200050090620028c4565b6040516340c10f1960e01b81526001600160a01b038216906340c10f199062001c1f90889087906004016200273b565b600060405180830381600087803b15801562001c3a57600080fd5b505af115801562001c4f573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f3799680c99183658e109873f9f352e8f136e8ef04c1963b80064ff525c2d4d898560405162001c9891906200275f565b60405180910390a350600198975050505050505050565b600062001383838362001e3d565b600062001383836001600160a01b03841662001e86565b600062000eb38262001e9e565b600062001383836001600160a01b03841662001ea2565b600062001383836001600160a01b03841662001ef1565b600054610100900460ff168062001d2b575062001d2b62001806565b8062001d3a575060005460ff16155b62001d595760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff16158015620018a3576000805460ff1961ff0019909116610100171660011790558015620018b6576000805461ff001916905550565b62001da362001fed565b600362001db18484620018b9565b600c81111562001dbd57fe5b1462001ddd5760405162461bcd60e51b8152600401620005009062002c24565b620013838284018462002636565b62001df56200200f565b600462001e038484620018b9565b600c81111562001e0f57fe5b1462001e2f5760405162461bcd60e51b8152600401620005009062002d53565b620013838284018462002534565b8154600090821062001e635760405162461bcd60e51b8152600401620005009062002882565b82600001828154811062001e7357fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600062001eb0838362001e86565b62001ee85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000eb3565b50600062000eb3565b6000818152600183016020526040812054801562001fb2578354600019808301919081019060009087908390811062001f2657fe5b906000526020600020015490508087600001848154811062001f4457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908062001f7557fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000eb3565b600091505062000eb3565b604051806080016040528062001fd26200204d565b81526000602082018190526040820181905260609091015290565b60405180604001604052806200200262001fbd565b8152602001600081525090565b60405180606001604052806200202462001fbd565b8152602001600081526020016200203a62002061565b905290565b6120668062002fdd83390190565b60408051602081019091528060006200203a565b604051806060016040528060608152602001600060ff168152602001606081525090565b60008083601f84011262002097578182fd5b50813567ffffffffffffffff811115620020af578182fd5b602083019150836020828501011115620020c857600080fd5b9250929050565b8035600d811062000eb357600080fd5b600082601f830112620020f0578081fd5b813567ffffffffffffffff81111562002107578182fd5b6200211c601f8201601f191660200162002f41565b91508082528360208285010111156200213457600080fd5b8060208401602084013760009082016020015292915050565b6000818303608081121562002160578182fd5b6200216c608062002f41565b915060208112156200217d57600080fd5b506200218a602062002f41565b620021968484620020cf565b815281526020820135620021aa8162002fc6565b60208201526040820135620021bf8162002fc6565b806040830152506060820135606082015292915050565b803560ff8116811462000eb357600080fd5b600060208284031215620021fa578081fd5b8135620013838162002fc6565b6000806000606084860312156200221c578182fd5b8335620022298162002fc6565b925060208401356200223b8162002fc6565b929592945050506040919091013590565b600080604083850312156200225f578182fd5b82356200226c8162002fc6565b915060208301356200227e8162002fc6565b809150509250929050565b6000602082840312156200229b578081fd5b8151801515811462001383578182fd5b600060208284031215620022bd578081fd5b5035919050565b60008060408385031215620022d7578182fd5b8235915060208301356200227e8162002fc6565b6000806000806060858703121562002301578182fd5b843593506020850135620023158162002fc6565b9250604085013567ffffffffffffffff81111562002331578283fd5b6200233f8782880162002085565b95989497509550505050565b600080604083850312156200235e578182fd5b50508035926020909101359150565b6000602082840312156200237f578081fd5b620013838383620020cf565b600080602083850312156200239e578182fd5b823567ffffffffffffffff811115620023b5578283fd5b620023c38582860162002085565b90969095509350505050565b600080600060408486031215620023e4578081fd5b833567ffffffffffffffff811115620023fb578182fd5b620024098682870162002085565b90945092505060208401356200241f8162002fc6565b809150509250925092565b60008060008060006080868803121562002442578283fd5b853567ffffffffffffffff81111562002459578384fd5b620024678882890162002085565b90965094505060208601356200247d8162002fc6565b925060408601356200248f8162002fc6565b949793965091946060013592915050565b600080600080600060a08688031215620024b8578283fd5b853567ffffffffffffffff811115620024cf578384fd5b620024dd88828901620020df565b9550506020860135620024f08162002fc6565b93506040860135620025028162002fc6565b92506060860135620025148162002fc6565b91506080860135620025268162002fc6565b809150509295509295909350565b60006020828403121562002546578081fd5b813567ffffffffffffffff808211156200255e578283fd5b9083019060c0828603121562002572578283fd5b6200257e606062002f41565b6200258a86846200214d565b81526080830135602082015260a083013582811115620025a8578485fd5b929092019160608387031215620025bd578384fd5b620025c9606062002f41565b833583811115620025d8578586fd5b620025e688828701620020df565b825250620025f88760208601620021d6565b60208201526040840135838111156200260f578586fd5b6200261d88828701620020df565b6040830152508060408301525080935050505092915050565b600060a0828403121562002648578081fd5b62002654604062002f41565b6200266084846200214d565b815260809290920135602083015250919050565b60006020828403121562002686578081fd5b5051919050565b60008151808452620026a781602086016020860162002f93565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b60008251620026df81846020870162002f93565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60006060825284606083015284866080840137608085830181018290526001600160a01b0385166020840152601f8601601f191683018381038201604085015290620027b7908201856200268d565b979650505050505050565b6000602082526200138360208301846200268d565b600060608252620027ec60608301866200268d565b6001600160a01b038516602084015282810360408401526200280f81856200268d565b9695505050505050565b6000604082526200282e60408301856200268d565b82810360208401526200284281856200268d565b95945050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b602080825260159082015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526014908201527304661696c656420746f2073656e642045524332360641b604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b602080825260129082015271496e73756666696369656e742066756e647360701b604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526017908201527f546f74616c537570706c79206973206e6f74207a65726f000000000000000000604082015260600190565b60208082526028908201527f5472616e73666572206973206e6f7420617070726f76656420627920746f6b6560408201526737103437b63232b960c11b606082015260800190565b60208082526033908201527f4d6573736167652074797065206973206e6f74204552433230207472616e7366604082015272657220616e6420746f74616c20737570706c7960681b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b60208082526032908201527f4d6573736167652074797065206973206e6f74204552433230207472616e73666040820152716572207769746820746f6b656e20696e666f60701b606082015260800190565b6020808252601e908201527f436f756c64206e6f74207472616e7366657220455243323020546f6b656e0000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b8151516080820190600d811062002f0b57fe5b80835250602083015160018060a01b03808216602085015280604086015116604085015250506060830151606083015292915050565b60405181810167ffffffffffffffff8111828210171562002f6157600080fd5b604052919050565b6000808585111562002f79578182fd5b8386111562002f86578182fd5b5050820193919092039150565b60005b8381101562002fb057818101518382015260200162002f96565b8381111562002fc0576000848401525b50505050565b6001600160a01b0381168114620018b657600080fdfe60806040523480156200001157600080fd5b506040516200206638038062002066833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b62000a681760201c565b620001cb8282620002e560201b62000b191760201c565b620001e06200022760201b62000a681760201c565b620001fb6000805160206200204683398151915280620003a7565b6200021f6000805160206200204683398151915262000219620003f9565b620003fd565b50506200075b565b600054610100900460ff1680620002435750620002436200040d565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c56200042b565b620002cf6200042b565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff1680620003015750620003016200040d565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b620003836200042b565b6200038f8383620004d3565b8015620003a2576000805461ff00191690555b505050565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004098282620005b7565b5050565b600062000425306200063260201b62000bce1760201c565b15905090565b600054610100900460ff1680620004475750620004476200040d565b8062000456575060005460ff16155b620004935760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620004ef5750620004ef6200040d565b80620004fe575060005460ff16155b6200053b5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000567576000805460ff1961ff0019909116610100171660011790555b82516200057c906068906020860190620006bf565b50815162000592906069906020850190620006bf565b50606a805460ff191660121790558015620003a2576000805461ff0019169055505050565b6000828152603360209081526040909120620005de91839062000bd462000638821b17901c565b156200040957620005ee620003f9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b60006200064f836001600160a01b03841662000658565b90505b92915050565b6000620006668383620006a7565b6200069e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000652565b50600062000652565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200070257805160ff191683800117855562000732565b8280016001018555821562000732579182015b828111156200073257825182559160200191906001019062000715565b506200074092915062000744565b5090565b5b8082111562000740576000815560010162000745565b6118ad806200076b6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d714610436578063a9059cbb14610462578063ca15c8731461048e578063d5391393146104ab578063d547741f146104b3578063dd62ed3e146104df5761014d565b806370a082311461036957806379cc67901461038f5780639010d07c146103bb57806391d14854146103fa57806395d89b4114610426578063a217fddf1461042e5761014d565b80632f2ff15d116101155780632f2ff15d1461027c578063313ce567146102aa57806336568abe146102c857806339509351146102f457806340c10f191461032057806342966c681461034c5761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063248a9ca31461025f575b600080fd5b61015a61050d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356105a3565b604080519115158252519081900360200190f35b6102176105c1565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b038135811691602081013590911690604001356105c7565b6102176004803603602081101561027557600080fd5b503561064e565b6102a86004803603604081101561029257600080fd5b50803590602001356001600160a01b0316610663565b005b6102b26106cf565b6040805160ff9092168252519081900360200190f35b6102a8600480360360408110156102de57600080fd5b50803590602001356001600160a01b03166106d8565b6101fb6004803603604081101561030a57600080fd5b506001600160a01b038135169060200135610739565b6102a86004803603604081101561033657600080fd5b506001600160a01b038135169060200135610787565b6102a86004803603602081101561036257600080fd5b5035610807565b6102176004803603602081101561037f57600080fd5b50356001600160a01b031661081b565b6102a8600480360360408110156103a557600080fd5b506001600160a01b038135169060200135610836565b6103de600480360360408110156103d157600080fd5b5080359060200135610890565b604080516001600160a01b039092168252519081900360200190f35b6101fb6004803603604081101561041057600080fd5b50803590602001356001600160a01b03166108af565b61015a6108c7565b610217610928565b6101fb6004803603604081101561044c57600080fd5b506001600160a01b03813516906020013561092d565b6101fb6004803603604081101561047857600080fd5b506001600160a01b038135169060200135610995565b610217600480360360208110156104a457600080fd5b50356109a9565b6102176109c0565b6102a8600480360360408110156104c957600080fd5b50803590602001356001600160a01b03166109e4565b610217600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610a3d565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b60006105b76105b0610be9565b8484610bed565b5060015b92915050565b60675490565b60006105d4848484610cd9565b610644846105e0610be9565b61063f8560405180606001604052806028815260200161176e602891396001600160a01b038a1660009081526066602052604081209061061e610be9565b6001600160a01b031681526020810191909152604001600020549190610e36565b610bed565b5060019392505050565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461068690610681610be9565b6108af565b6106c15760405162461bcd60e51b815260040180806020018281038252602f815260200180611677602f913960400191505060405180910390fd5b6106cb8282610ecd565b5050565b606a5460ff1690565b6106e0610be9565b6001600160a01b0316816001600160a01b03161461072f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611849602f913960400191505060405180910390fd5b6106cb8282610f36565b60006105b7610746610be9565b8461063f8560666000610757610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f9f565b6107b37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610681610be9565b6107fd576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b6106cb8282610ff9565b610818610812610be9565b826110eb565b50565b6001600160a01b031660009081526065602052604090205490565b600061086d826040518060600160405280602481526020016117966024913961086686610861610be9565b610a3d565b9190610e36565b90506108818361087b610be9565b83610bed565b61088b83836110eb565b505050565b60008281526033602052604081206108a890836111e7565b9392505050565b60008281526033602052604081206108a890836111f3565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b600081565b60006105b761093a610be9565b8461063f856040518060600160405280602581526020016118246025913960666000610964610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e36565b60006105b76109a2610be9565b8484610cd9565b60008181526033602052604081206105bb90611208565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610a0290610681610be9565b61072f5760405162461bcd60e51b81526004018080602001828103825260308152602001806117106030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff1680610a815750610a81611213565b80610a8f575060005460ff16155b610aca5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610af5576000805460ff1961ff0019909116610100171660011790555b610afd611224565b610b05611224565b8015610818576000805461ff001916905550565b600054610100900460ff1680610b325750610b32611213565b80610b40575060005460ff16155b610b7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba6576000805460ff1961ff0019909116610100171660011790555b610bae611224565b610bb883836112c4565b801561088b576000805461ff0019169055505050565b3b151590565b60006108a8836001600160a01b03841661139c565b3390565b6001600160a01b038316610c325760405162461bcd60e51b81526004018080602001828103825260248152602001806118006024913960400191505060405180910390fd5b6001600160a01b038216610c775760405162461bcd60e51b81526004018080602001828103825260228152602001806116c86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d1e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117db6025913960400191505060405180910390fd5b6001600160a01b038216610d635760405162461bcd60e51b81526004018080602001828103825260238152602001806116546023913960400191505060405180910390fd5b610d6e83838361088b565b610dab816040518060600160405280602681526020016116ea602691396001600160a01b0386166000908152606560205260409020549190610e36565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610dda9082610f9f565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ec55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e8a578181015183820152602001610e72565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152603360205260409020610ee59082610bd4565b156106cb57610ef2610be9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610f4e90826113e6565b156106cb57610f5b610be9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156108a8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611054576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6110606000838361088b565b60675461106d9082610f9f565b6067556001600160a01b0382166000908152606560205260409020546110939082610f9f565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166111305760405162461bcd60e51b81526004018080602001828103825260218152602001806117ba6021913960400191505060405180910390fd5b61113c8260008361088b565b611179816040518060600160405280602281526020016116a6602291396001600160a01b0385166000908152606560205260409020549190610e36565b6001600160a01b03831660009081526065602052604090205560675461119f90826113fb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006108a88383611458565b60006108a8836001600160a01b0384166114bc565b60006105bb826114d4565b600061121e30610bce565b15905090565b600054610100900460ff168061123d575061123d611213565b8061124b575060005460ff16155b6112865760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610b05576000805460ff1961ff0019909116610100171660011790558015610818576000805461ff001916905550565b600054610100900460ff16806112dd57506112dd611213565b806112eb575060005460ff16155b6113265760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015611351576000805460ff1961ff0019909116610100171660011790555b825161136490606890602086019061159e565b50815161137890606990602085019061159e565b50606a805460ff19166012179055801561088b576000805461ff0019169055505050565b60006113a883836114bc565b6113de575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105bb565b5060006105bb565b60006108a8836001600160a01b0384166114d8565b600082821115611452576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061149a5760405162461bcd60e51b81526004018080602001828103825260228152602001806116326022913960400191505060405180910390fd5b8260000182815481106114a957fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015611594578354600019808301919081019060009087908390811061150b57fe5b906000526020600020015490508087600001848154811061152857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061155857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105bb565b60009150506105bb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115df57805160ff191683800117855561160c565b8280016001018555821561160c579182015b8281111561160c5782518255916020019190600101906115f1565b5061161892915061161c565b5090565b5b80821115611618576000815560010161161d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220f5fd5b9f427fa0188f9574676da4de58e3fd195487cc5f2ba14cd5cbd4d68d2464736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba2646970667358221220fe207ed89cc17d38d8f034964b3e08743099bc2cf9e6a046aed52f29ac1f19c564736f6c634300060c0033", + "deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200022c5760003560e01c80635573b8b61162000135578063b9581c5011620000bd578063cc5b715b1162000087578063cc5b715b146200046d578063d547741f1462000477578063dec2deb6146200048e578063edcc12b51462000498578063f429e38314620004af576200022c565b8063b9581c50146200041e578063c0e312dc1462000428578063ca15c873146200043f578063cb703bff1462000456576200022c565b8063884cee5a11620000ff578063884cee5a14620003cf5780639010d07c14620003e657806391d1485414620003fd578063a217fddf1462000414576200022c565b80635573b8b6146200039a5780636ce681d214620003a45780636d61128614620003bb5780636d6c68e614620003c5576200022c565b80632dc151de11620001b95780633b690b6b11620001835780633b690b6b14620003565780633fa194ce14620003605780634d58c889146200036a57806350f442801462000381576200022c565b80632dc151de14620002f85780632f2ff15d146200030257806336568abe146200031957806339927cf91462000330576200022c565b8063248a9ca311620001fb578063248a9ca3146200029a57806328c5e18214620002c05780632baaf64314620002ca5780632d6eea0614620002e1576200022c565b8063029996b814620002315780630472e00a146200023d5780630b885ac314620002545780630f1a8f74146200026b575b600080fd5b6200023b620004c6565b005b6200023b6200024e3660046200242a565b6200051e565b6200023b62000265366004620024a0565b6200093d565b620002826200027c366004620022ab565b62000953565b604051620002919190620026e9565b60405180910390f35b620002b1620002ab366004620022ab565b6200096e565b6040516200029191906200275f565b620002b162000983565b6200023b620002db36600462002207565b620009ce565b62000282620002f2366004620021e8565b62000d97565b6200028262000db2565b6200023b62000313366004620022c4565b62000dc1565b6200023b6200032a366004620022c4565b62000e11565b62000347620003413660046200238b565b62000e5a565b60405162000291919062002754565b620002b162000eb9565b620002b162000ebf565b6200023b6200037b3660046200224c565b62000ed2565b6200038b6200103c565b604051620002919190620027c2565b620002826200105f565b6200023b620003b5366004620024a0565b6200106e565b62000282620011d5565b62000282620011e4565b62000347620003e0366004620022eb565b620011f3565b62000282620003f73660046200234b565b62001369565b620003476200040e366004620022c4565b6200138a565b620002b1620013a4565b6200023b620013a9565b6200023b620004393660046200238b565b620013f2565b620002b162000450366004620022ab565b620014ba565b6200023b62000467366004620023cf565b620014d3565b620002b1620015d5565b6200023b62000488366004620022c4565b620015f9565b6200034762001639565b6200023b620004a9366004620021e8565b62001649565b620002b1620004c0366004620021e8565b62001697565b620004e160008051602062005043833981519152336200138a565b620005095760405162461bcd60e51b8152600401620005009062002a65565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6001600160a01b038216620005475760405162461bcd60e51b8152600401620005009062002cae565b600085856040516020016200055e929190620026bb565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b848301529151919350620005a0929101620026cb565b60405160208183030381529060405280519060200120811415620005d85760405162461bcd60e51b81526004016200050090620029b0565b6000818152606a60205260409020546001600160a01b03166200060f5760405162461bcd60e51b815260040162000500906200284b565b6001600160a01b038085166000908152606b6020526040902054166200063581620016a9565b620006545760405162461bcd60e51b8152600401620005009062002e42565b6040516370a0823160e01b815283906001600160a01b038316906370a082319062000684903390600401620026e9565b60206040518083038186803b1580156200069d57600080fd5b505afa158015620006b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d8919062002674565b1015620006f95760405162461bcd60e51b8152600401620005009062002aa6565b604051636eb1769f60e11b815283906001600160a01b0383169063dd62ed3e906200072b9033903090600401620026fd565b60206040518083038186803b1580156200074457600080fd5b505afa15801562000759573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200077f919062002674565b1015620007a05760405162461bcd60e51b8152600401620005009062002bdc565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd90620007d29033903090889060040162002717565b602060405180830381600087803b158015620007ed57600080fd5b505af115801562000802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000828919062002289565b620008475760405162461bcd60e51b8152600401620005009062002da5565b604051630852cd8d60e31b81526001600160a01b038216906342966c6890620008759086906004016200275f565b600060405180830381600087803b1580156200089057600080fd5b505af1158015620008a5573d6000803e3d6000fd5b50506065546000858152606a60205260409020546001600160a01b0391821693506365e3781f92508a918a9116620008df8a8a8a620016af565b6040518563ffffffff1660e01b815260040162000900949392919062002768565b600060405180830381600087803b1580156200091b57600080fd5b505af115801562000930573d6000803e3d6000fd5b5050505050505050505050565b6200094c85858585856200106e565b5050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001620009b59190620026cb565b6040516020818303038152906040528051906020012081565b6001600160a01b038216620009f75760405162461bcd60e51b8152600401620005009062002cae565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a9062000a29908590600401620026e9565b600060405180830381600087803b15801562000a4457600080fd5b505af115801562000a59573d6000803e3d6000fd5b505050506001600160a01b038381166000908152606b60205260409020541662000a8381620016a9565b62000aa25760405162461bcd60e51b8152600401620005009062002e42565b6040516370a0823160e01b815282906001600160a01b038316906370a082319062000ad2903390600401620026e9565b60206040518083038186803b15801562000aeb57600080fd5b505afa15801562000b00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b26919062002674565b101562000b475760405162461bcd60e51b8152600401620005009062002aa6565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e9062000b799033903090600401620026fd565b60206040518083038186803b15801562000b9257600080fd5b505afa15801562000ba7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bcd919062002674565b101562000bee5760405162461bcd60e51b8152600401620005009062002bdc565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd9062000c209033903090879060040162002717565b602060405180830381600087803b15801562000c3b57600080fd5b505af115801562000c50573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c76919062002289565b62000c955760405162461bcd60e51b8152600401620005009062002da5565b604051630852cd8d60e31b81526001600160a01b038216906342966c689062000cc39085906004016200275f565b600060405180830381600087803b15801562000cde57600080fd5b505af115801562000cf3573d6000803e3d6000fd5b505060655460408051808201909152600781526613585a5b9b995d60ca1b60208201526069546001600160a01b0392831694506365e3781f935090911662000d3d888888620016af565b6040518463ffffffff1660e01b815260040162000d5d93929190620027d7565b600060405180830381600087803b15801562000d7857600080fd5b505af115801562000d8d573d6000803e3d6000fd5b5050505050505050565b606b602052600090815260409020546001600160a01b031681565b6066546001600160a01b031681565b60008281526033602052604090206002015462000de2906200040e62001726565b62000e015760405162461bcd60e51b81526004016200050090620028f3565b62000e0d82826200172a565b5050565b62000e1b62001726565b6001600160a01b0316816001600160a01b03161462000e4e5760405162461bcd60e51b8152600401620005009062002e79565b62000e0d828262001798565b6000806001600160a01b0316606a6000858560405160200162000e7f929190620026bb565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b6000805160206200504383398151915281565b62000efe7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba8336200138a565b62000f1d5760405162461bcd60e51b8152600401620005009062002b22565b62000f31816001600160a01b0316620016a9565b62000f505760405162461bcd60e51b8152600401620005009062002ce5565b806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000f8a57600080fd5b505afa15801562000f9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fc5919062002674565b1562000fe55760405162461bcd60e51b8152600401620005009062002ba5565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517fc6e93524baaa4770b94da082aa0caeac9ba78c87f7edc7c3d2820f2e9fdf400a9190a35050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff16806200108a57506200108a62001806565b8062001099575060005460ff16155b620010b85760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff16158015620010e4576000805460ff1961ff0019909116610100171660011790555b620010ee62001819565b620010fb60003362000e01565b62001116600080516020620050438339815191523362000e01565b620011427ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000e01565b85604051602001620011559190620026cb565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015620011cd576000805461ff00191690555b505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6065546000906001600160a01b03163314620012235760405162461bcd60e51b8152600401620005009062002942565b6068548514158015620012b557506040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001620012639190620026cb565b604051602081830303815290604052805190602001208514620012a3576000858152606a60205260409020546001600160a01b03858116911614620012b5565b6069546001600160a01b038581169116145b620012d45760405162461bcd60e51b8152600401620005009062002d1c565b6000620012e28484620018b9565b9050600481600c811115620012f357fe5b14806200130c5750600381600c8111156200130a57fe5b145b1562001343576200131e848462001904565b6200133d5760405162461bcd60e51b8152600401620005009062002a37565b6200135d565b60405162461bcd60e51b8152600401620005009062002ec8565b50600195945050505050565b600082815260336020526040812062001383908362001caf565b9392505050565b600082815260336020526040812062001383908362001cbd565b600081565b620013c460008051602062005043833981519152336200138a565b620013e35760405162461bcd60e51b8152600401620005009062002a65565b6069805460ff60a01b19169055565b6066546001600160a01b0316331480620014145750620014146000336200138a565b620014335760405162461bcd60e51b8152600401620005009062002e13565b600082826040516020016200144a929190620026bb565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b03166200149a5760405162461bcd60e51b8152600401620005009062002a00565b6000908152606a6020526040902080546001600160a01b03191690555050565b600081815260336020526040812062000eb39062001cd4565b6066546001600160a01b0316331480620014f55750620014f56000336200138a565b620015145760405162461bcd60e51b8152600401620005009062002e13565b600083836040516020016200152b929190620026bb565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316156200157c5760405162461bcd60e51b8152600401620005009062002ddc565b6001600160a01b038216620015a55760405162461bcd60e51b815260040162000500906200284b565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b6000828152603360205260409020600201546200161a906200040e62001726565b62000e4e5760405162461bcd60e51b8152600401620005009062002ad2565b606954600160a01b900460ff1681565b620016566000336200138a565b620016755760405162461bcd60e51b8152600401620005009062002979565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b606c6020526000908152604090205481565b3b151590565b6060620016bb62001fbd565b6040805160a0810190915280608081018060028152508152602001866001600160a01b03168152602001856001600160a01b03168152602001848152509050806040516020016200170d919062002ef8565b6040516020818303038152906040529150509392505050565b3390565b600082815260336020526040902062001744908262001ce1565b1562000e0d576200175462001726565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020620017b2908262001cf8565b1562000e0d57620017c262001726565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006200181330620016a9565b15905090565b600054610100900460ff16806200183557506200183562001806565b8062001844575060005460ff16155b620018635760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff161580156200188f576000805460ff1961ff0019909116610100171660011790555b6200189962001d0f565b620018a362001d0f565b8015620018b6576000805461ff00191690555b50565b600080620018ca83850185620022ab565b905060208106620018f657620018ed620018e78483818862002f69565b620018b9565b91505062000eb3565b620018ed838501856200236d565b600080620019138484620018b9565b9050600080808080600386600c8111156200192a57fe5b141562001990576200193b62001fed565b620019478a8a62001d99565b8051604080820151602080840151606090940151948101516001600160a01b038086166000908152606b9093529390912054919a5092985092965090945016915062001ac29050565b6200199a6200200f565b620019a68a8a62001deb565b8051604080820151602080840151606090940151818601516001600160a01b038087166000908152606b9094529490922054929b5093995092975091955016925090508162001ac057606954600160a01b900460ff1662001a1b5760405162461bcd60e51b8152600401620005009062002c77565b80604001516000015181604001516040015160405162001a3b906200203f565b62001a4892919062002819565b604051809103906000f08015801562001a65573d6000803e3d6000fd5b506001600160a01b038681166000818152606b602052604080822080546001600160a01b031916948616948517905551939550919290917fcdae5f6ddbda7847ad809fcd087e35946ef42729ff7ecdbcc81a03eb3a52ab2891a35b505b62001ad6816001600160a01b0316620016a9565b62001af55760405162461bcd60e51b8152600401620005009062002ce5565b6001600160a01b0381166000908152606c6020526040902054821462001b31576001600160a01b0381166000908152606c602052604090208290555b606c6000826001600160a01b03166001600160a01b031681526020019081526020016000205483826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801562001b9257600080fd5b505afa15801562001ba7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bcd919062002674565b01111562001bef5760405162461bcd60e51b81526004016200050090620028c4565b6040516340c10f1960e01b81526001600160a01b038216906340c10f199062001c1f90889087906004016200273b565b600060405180830381600087803b15801562001c3a57600080fd5b505af115801562001c4f573d6000803e3d6000fd5b50505050806001600160a01b0316846001600160a01b03167f3799680c99183658e109873f9f352e8f136e8ef04c1963b80064ff525c2d4d898560405162001c9891906200275f565b60405180910390a350600198975050505050505050565b600062001383838362001e3d565b600062001383836001600160a01b03841662001e86565b600062000eb38262001e9e565b600062001383836001600160a01b03841662001ea2565b600062001383836001600160a01b03841662001ef1565b600054610100900460ff168062001d2b575062001d2b62001806565b8062001d3a575060005460ff16155b62001d595760405162461bcd60e51b8152600401620005009062002b57565b600054610100900460ff16158015620018a3576000805460ff1961ff0019909116610100171660011790558015620018b6576000805461ff001916905550565b62001da362001fed565b600362001db18484620018b9565b600c81111562001dbd57fe5b1462001ddd5760405162461bcd60e51b8152600401620005009062002c24565b620013838284018462002636565b62001df56200200f565b600462001e038484620018b9565b600c81111562001e0f57fe5b1462001e2f5760405162461bcd60e51b8152600401620005009062002d53565b620013838284018462002534565b8154600090821062001e635760405162461bcd60e51b8152600401620005009062002882565b82600001828154811062001e7357fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600062001eb0838362001e86565b62001ee85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000eb3565b50600062000eb3565b6000818152600183016020526040812054801562001fb2578354600019808301919081019060009087908390811062001f2657fe5b906000526020600020015490508087600001848154811062001f4457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908062001f7557fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000eb3565b600091505062000eb3565b604051806080016040528062001fd26200204d565b81526000602082018190526040820181905260609091015290565b60405180604001604052806200200262001fbd565b8152602001600081525090565b60405180606001604052806200202462001fbd565b8152602001600081526020016200203a62002061565b905290565b6120668062002fdd83390190565b60408051602081019091528060006200203a565b604051806060016040528060608152602001600060ff168152602001606081525090565b60008083601f84011262002097578182fd5b50813567ffffffffffffffff811115620020af578182fd5b602083019150836020828501011115620020c857600080fd5b9250929050565b8035600d811062000eb357600080fd5b600082601f830112620020f0578081fd5b813567ffffffffffffffff81111562002107578182fd5b6200211c601f8201601f191660200162002f41565b91508082528360208285010111156200213457600080fd5b8060208401602084013760009082016020015292915050565b6000818303608081121562002160578182fd5b6200216c608062002f41565b915060208112156200217d57600080fd5b506200218a602062002f41565b620021968484620020cf565b815281526020820135620021aa8162002fc6565b60208201526040820135620021bf8162002fc6565b806040830152506060820135606082015292915050565b803560ff8116811462000eb357600080fd5b600060208284031215620021fa578081fd5b8135620013838162002fc6565b6000806000606084860312156200221c578182fd5b8335620022298162002fc6565b925060208401356200223b8162002fc6565b929592945050506040919091013590565b600080604083850312156200225f578182fd5b82356200226c8162002fc6565b915060208301356200227e8162002fc6565b809150509250929050565b6000602082840312156200229b578081fd5b8151801515811462001383578182fd5b600060208284031215620022bd578081fd5b5035919050565b60008060408385031215620022d7578182fd5b8235915060208301356200227e8162002fc6565b6000806000806060858703121562002301578182fd5b843593506020850135620023158162002fc6565b9250604085013567ffffffffffffffff81111562002331578283fd5b6200233f8782880162002085565b95989497509550505050565b600080604083850312156200235e578182fd5b50508035926020909101359150565b6000602082840312156200237f578081fd5b620013838383620020cf565b600080602083850312156200239e578182fd5b823567ffffffffffffffff811115620023b5578283fd5b620023c38582860162002085565b90969095509350505050565b600080600060408486031215620023e4578081fd5b833567ffffffffffffffff811115620023fb578182fd5b620024098682870162002085565b90945092505060208401356200241f8162002fc6565b809150509250925092565b60008060008060006080868803121562002442578283fd5b853567ffffffffffffffff81111562002459578384fd5b620024678882890162002085565b90965094505060208601356200247d8162002fc6565b925060408601356200248f8162002fc6565b949793965091946060013592915050565b600080600080600060a08688031215620024b8578283fd5b853567ffffffffffffffff811115620024cf578384fd5b620024dd88828901620020df565b9550506020860135620024f08162002fc6565b93506040860135620025028162002fc6565b92506060860135620025148162002fc6565b91506080860135620025268162002fc6565b809150509295509295909350565b60006020828403121562002546578081fd5b813567ffffffffffffffff808211156200255e578283fd5b9083019060c0828603121562002572578283fd5b6200257e606062002f41565b6200258a86846200214d565b81526080830135602082015260a083013582811115620025a8578485fd5b929092019160608387031215620025bd578384fd5b620025c9606062002f41565b833583811115620025d8578586fd5b620025e688828701620020df565b825250620025f88760208601620021d6565b60208201526040840135838111156200260f578586fd5b6200261d88828701620020df565b6040830152508060408301525080935050505092915050565b600060a0828403121562002648578081fd5b62002654604062002f41565b6200266084846200214d565b815260809290920135602083015250919050565b60006020828403121562002686578081fd5b5051919050565b60008151808452620026a781602086016020860162002f93565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b60008251620026df81846020870162002f93565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60006060825284606083015284866080840137608085830181018290526001600160a01b0385166020840152601f8601601f191683018381038201604085015290620027b7908201856200268d565b979650505050505050565b6000602082526200138360208301846200268d565b600060608252620027ec60608301866200268d565b6001600160a01b038516602084015282810360408401526200280f81856200268d565b9695505050505050565b6000604082526200282e60408301856200268d565b82810360208401526200284281856200268d565b95945050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b602080825260159082015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526014908201527304661696c656420746f2073656e642045524332360641b604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b602080825260129082015271496e73756666696369656e742066756e647360701b604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526017908201527f546f74616c537570706c79206973206e6f74207a65726f000000000000000000604082015260600190565b60208082526028908201527f5472616e73666572206973206e6f7420617070726f76656420627920746f6b6560408201526737103437b63232b960c11b606082015260800190565b60208082526033908201527f4d6573736167652074797065206973206e6f74204552433230207472616e7366604082015272657220616e6420746f74616c20737570706c7960681b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b60208082526032908201527f4d6573736167652074797065206973206e6f74204552433230207472616e73666040820152716572207769746820746f6b656e20696e666f60701b606082015260800190565b6020808252601e908201527f436f756c64206e6f74207472616e7366657220455243323020546f6b656e0000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b8151516080820190600d811062002f0b57fe5b80835250602083015160018060a01b03808216602085015280604086015116604085015250506060830151606083015292915050565b60405181810167ffffffffffffffff8111828210171562002f6157600080fd5b604052919050565b6000808585111562002f79578182fd5b8386111562002f86578182fd5b5050820193919092039150565b60005b8381101562002fb057818101518382015260200162002f96565b8381111562002fc0576000848401525b50505050565b6001600160a01b0381168114620018b657600080fdfe60806040523480156200001157600080fd5b506040516200206638038062002066833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b62000a681760201c565b620001cb8282620002e560201b62000b191760201c565b620001e06200022760201b62000a681760201c565b620001fb6000805160206200204683398151915280620003a7565b6200021f6000805160206200204683398151915262000219620003f9565b620003fd565b50506200075b565b600054610100900460ff1680620002435750620002436200040d565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c56200042b565b620002cf6200042b565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff1680620003015750620003016200040d565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b620003836200042b565b6200038f8383620004d3565b8015620003a2576000805461ff00191690555b505050565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004098282620005b7565b5050565b600062000425306200063260201b62000bce1760201c565b15905090565b600054610100900460ff1680620004475750620004476200040d565b8062000456575060005460ff16155b620004935760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620004ef5750620004ef6200040d565b80620004fe575060005460ff16155b6200053b5760405162461bcd60e51b815260040180806020018281038252602e81526020018062002018602e913960400191505060405180910390fd5b600054610100900460ff1615801562000567576000805460ff1961ff0019909116610100171660011790555b82516200057c906068906020860190620006bf565b50815162000592906069906020850190620006bf565b50606a805460ff191660121790558015620003a2576000805461ff0019169055505050565b6000828152603360209081526040909120620005de91839062000bd462000638821b17901c565b156200040957620005ee620003f9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b60006200064f836001600160a01b03841662000658565b90505b92915050565b6000620006668383620006a7565b6200069e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000652565b50600062000652565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200070257805160ff191683800117855562000732565b8280016001018555821562000732579182015b828111156200073257825182559160200191906001019062000715565b506200074092915062000744565b5090565b5b8082111562000740576000815560010162000745565b6118ad806200076b6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d714610436578063a9059cbb14610462578063ca15c8731461048e578063d5391393146104ab578063d547741f146104b3578063dd62ed3e146104df5761014d565b806370a082311461036957806379cc67901461038f5780639010d07c146103bb57806391d14854146103fa57806395d89b4114610426578063a217fddf1461042e5761014d565b80632f2ff15d116101155780632f2ff15d1461027c578063313ce567146102aa57806336568abe146102c857806339509351146102f457806340c10f191461032057806342966c681461034c5761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063248a9ca31461025f575b600080fd5b61015a61050d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356105a3565b604080519115158252519081900360200190f35b6102176105c1565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b038135811691602081013590911690604001356105c7565b6102176004803603602081101561027557600080fd5b503561064e565b6102a86004803603604081101561029257600080fd5b50803590602001356001600160a01b0316610663565b005b6102b26106cf565b6040805160ff9092168252519081900360200190f35b6102a8600480360360408110156102de57600080fd5b50803590602001356001600160a01b03166106d8565b6101fb6004803603604081101561030a57600080fd5b506001600160a01b038135169060200135610739565b6102a86004803603604081101561033657600080fd5b506001600160a01b038135169060200135610787565b6102a86004803603602081101561036257600080fd5b5035610807565b6102176004803603602081101561037f57600080fd5b50356001600160a01b031661081b565b6102a8600480360360408110156103a557600080fd5b506001600160a01b038135169060200135610836565b6103de600480360360408110156103d157600080fd5b5080359060200135610890565b604080516001600160a01b039092168252519081900360200190f35b6101fb6004803603604081101561041057600080fd5b50803590602001356001600160a01b03166108af565b61015a6108c7565b610217610928565b6101fb6004803603604081101561044c57600080fd5b506001600160a01b03813516906020013561092d565b6101fb6004803603604081101561047857600080fd5b506001600160a01b038135169060200135610995565b610217600480360360208110156104a457600080fd5b50356109a9565b6102176109c0565b6102a8600480360360408110156104c957600080fd5b50803590602001356001600160a01b03166109e4565b610217600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610a3d565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b60006105b76105b0610be9565b8484610bed565b5060015b92915050565b60675490565b60006105d4848484610cd9565b610644846105e0610be9565b61063f8560405180606001604052806028815260200161176e602891396001600160a01b038a1660009081526066602052604081209061061e610be9565b6001600160a01b031681526020810191909152604001600020549190610e36565b610bed565b5060019392505050565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461068690610681610be9565b6108af565b6106c15760405162461bcd60e51b815260040180806020018281038252602f815260200180611677602f913960400191505060405180910390fd5b6106cb8282610ecd565b5050565b606a5460ff1690565b6106e0610be9565b6001600160a01b0316816001600160a01b03161461072f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611849602f913960400191505060405180910390fd5b6106cb8282610f36565b60006105b7610746610be9565b8461063f8560666000610757610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f9f565b6107b37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610681610be9565b6107fd576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b6106cb8282610ff9565b610818610812610be9565b826110eb565b50565b6001600160a01b031660009081526065602052604090205490565b600061086d826040518060600160405280602481526020016117966024913961086686610861610be9565b610a3d565b9190610e36565b90506108818361087b610be9565b83610bed565b61088b83836110eb565b505050565b60008281526033602052604081206108a890836111e7565b9392505050565b60008281526033602052604081206108a890836111f3565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b600081565b60006105b761093a610be9565b8461063f856040518060600160405280602581526020016118246025913960666000610964610be9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e36565b60006105b76109a2610be9565b8484610cd9565b60008181526033602052604081206105bb90611208565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260336020526040902060020154610a0290610681610be9565b61072f5760405162461bcd60e51b81526004018080602001828103825260308152602001806117106030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff1680610a815750610a81611213565b80610a8f575060005460ff16155b610aca5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610af5576000805460ff1961ff0019909116610100171660011790555b610afd611224565b610b05611224565b8015610818576000805461ff001916905550565b600054610100900460ff1680610b325750610b32611213565b80610b40575060005460ff16155b610b7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba6576000805460ff1961ff0019909116610100171660011790555b610bae611224565b610bb883836112c4565b801561088b576000805461ff0019169055505050565b3b151590565b60006108a8836001600160a01b03841661139c565b3390565b6001600160a01b038316610c325760405162461bcd60e51b81526004018080602001828103825260248152602001806118006024913960400191505060405180910390fd5b6001600160a01b038216610c775760405162461bcd60e51b81526004018080602001828103825260228152602001806116c86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d1e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117db6025913960400191505060405180910390fd5b6001600160a01b038216610d635760405162461bcd60e51b81526004018080602001828103825260238152602001806116546023913960400191505060405180910390fd5b610d6e83838361088b565b610dab816040518060600160405280602681526020016116ea602691396001600160a01b0386166000908152606560205260409020549190610e36565b6001600160a01b038085166000908152606560205260408082209390935590841681522054610dda9082610f9f565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ec55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e8a578181015183820152602001610e72565b50505050905090810190601f168015610eb75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152603360205260409020610ee59082610bd4565b156106cb57610ef2610be9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610f4e90826113e6565b156106cb57610f5b610be9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156108a8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611054576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6110606000838361088b565b60675461106d9082610f9f565b6067556001600160a01b0382166000908152606560205260409020546110939082610f9f565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166111305760405162461bcd60e51b81526004018080602001828103825260218152602001806117ba6021913960400191505060405180910390fd5b61113c8260008361088b565b611179816040518060600160405280602281526020016116a6602291396001600160a01b0385166000908152606560205260409020549190610e36565b6001600160a01b03831660009081526065602052604090205560675461119f90826113fb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006108a88383611458565b60006108a8836001600160a01b0384166114bc565b60006105bb826114d4565b600061121e30610bce565b15905090565b600054610100900460ff168061123d575061123d611213565b8061124b575060005460ff16155b6112865760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015610b05576000805460ff1961ff0019909116610100171660011790558015610818576000805461ff001916905550565b600054610100900460ff16806112dd57506112dd611213565b806112eb575060005460ff16155b6113265760405162461bcd60e51b815260040180806020018281038252602e815260200180611740602e913960400191505060405180910390fd5b600054610100900460ff16158015611351576000805460ff1961ff0019909116610100171660011790555b825161136490606890602086019061159e565b50815161137890606990602085019061159e565b50606a805460ff19166012179055801561088b576000805461ff0019169055505050565b60006113a883836114bc565b6113de575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105bb565b5060006105bb565b60006108a8836001600160a01b0384166114d8565b600082821115611452576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8154600090821061149a5760405162461bcd60e51b81526004018080602001828103825260228152602001806116326022913960400191505060405180910390fd5b8260000182815481106114a957fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015611594578354600019808301919081019060009087908390811061150b57fe5b906000526020600020015490508087600001848154811061152857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061155857fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105bb565b60009150506105bb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115df57805160ff191683800117855561160c565b8280016001018555821561160c579182015b8281111561160c5782518255916020019190600101906115f1565b5061161892915061161c565b5090565b5b80821115611618576000815560010161161d56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220f5fd5b9f427fa0188f9574676da4de58e3fd195487cc5f2ba14cd5cbd4d68d2464736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba2646970667358221220fe207ed89cc17d38d8f034964b3e08743099bc2cf9e6a046aed52f29ac1f19c564736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.json new file mode 100644 index 000000000..2dbe1fd77 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerERC721.json @@ -0,0 +1,711 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManagerERC721", + "sourceName": "contracts/schain/TokenManagers/TokenManagerERC721.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc721OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc721OnSchain", + "type": "address" + } + ], + "name": "ERC721TokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc721OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc721OnSchain", + "type": "address" + } + ], + "name": "ERC721TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "erc721OnMainnet", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "erc721OnSchain", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721TokenReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AUTOMATIC_DEPLOY_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "erc721OnMainnet", + "type": "address" + }, + { + "internalType": "contract ERC721OnChain", + "name": "erc721OnSchain", + "type": "address" + } + ], + "name": "addERC721TokenByOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "addTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "automaticDeploy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "changeDepositBoxAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "clonesErc721", + "outputs": [ + { + "internalType": "contract ERC721OnChain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "communityLocker", + "outputs": [ + { + "internalType": "contract CommunityLocker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "depositBox", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "disableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "exitToMainERC721", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newChainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initializeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + }, + { + "internalType": "address", + "name": "contractOnMainnet", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferToSchainERC721", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50615c98806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620002205760003560e01c80636d6112861162000129578063b9581c5011620000b1578063cc5b715b116200007b578063cc5b715b1462000461578063d547741f146200046b578063dec2deb61462000482578063edcc12b5146200048c5762000220565b8063b9581c501462000412578063c0e312dc146200041c578063ca15c8731462000433578063cb703bff146200044a5762000220565b80638a8fe42111620000f35780638a8fe42114620003c35780639010d07c14620003da57806391d1485414620003f1578063a217fddf14620004085762000220565b80636d61128614620003815780636d6c68e6146200038b5780637b69620f1462000395578063884cee5a14620003ac5762000220565b806336568abe11620001ad5780633fa194ce11620001775780633fa194ce146200033d57806350f4428014620003475780635573b8b614620003605780636ce681d2146200036a5762000220565b806336568abe14620002df57806339927cf914620002f65780633b4612c1146200031c5780633b690b6b14620003335762000220565b806328c5e18211620001ef57806328c5e182146200029d5780632dc151de14620002a75780632f2ff15d14620002b157806330d86b2a14620002c85762000220565b8063029996b814620002255780630b885ac314620002315780630f1a8f741462000248578063248a9ca31462000277575b600080fd5b6200022f620004a3565b005b6200022f6200024236600462001ea3565b620004fb565b6200025f6200025936600462001cae565b62000511565b6040516200026e919062002095565b60405180910390f35b6200028e6200028836600462001cae565b6200052c565b6040516200026e9190620020f1565b6200028e62000541565b6200025f6200058c565b6200022f620002c236600462001cc7565b6200059b565b6200022f620002d936600462001c2c565b620005eb565b6200022f620002f036600462001cc7565b62000690565b6200030d6200030736600462001d8e565b620006d9565b6040516200026e9190620020e6565b6200022f6200032d36600462001e2d565b62000738565b6200028e62000863565b6200028e62000869565b620003516200087c565b6040516200026e9190620020fa565b6200025f6200089f565b6200022f6200037b36600462001ea3565b620008ae565b6200025f62000a14565b6200025f62000a23565b6200022f620003a636600462001c71565b62000a32565b6200030d620003bd36600462001cee565b62000b07565b6200025f620003d436600462001bee565b62000c5e565b6200025f620003eb36600462001d4e565b62000c79565b6200030d6200040236600462001cc7565b62000c9a565b6200028e62000cb4565b6200022f62000cb9565b6200022f6200042d36600462001d8e565b62000d02565b6200028e6200044436600462001cae565b62000dca565b6200022f6200045b36600462001dd2565b62000de3565b6200028e62000ee5565b6200022f6200047c36600462001cc7565b62000f09565b6200030d62000f49565b6200022f6200049d36600462001bee565b62000f59565b620004be60008051602062005c438339815191523362000c9a565b620004e65760405162461bcd60e51b8152600401620004dd9062002340565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6200050a8585858585620008ae565b5050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000573919062002077565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b600082815260336020526040902060020154620005bc906200040262000fa7565b620005db5760405162461bcd60e51b8152600401620004dd90620021fc565b620005e7828262000fab565b5050565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a906200061d90859060040162002095565b600060405180830381600087803b1580156200063857600080fd5b505af11580156200064d573d6000803e3d6000fd5b505060408051808201909152600781526613585a5b9b995d60ca1b60208201526069546200068b93509091506001600160a01b031685858562001019565b505050565b6200069a62000fa7565b6001600160a01b0316816001600160a01b031614620006cd5760405162461bcd60e51b8152600401620004dd9062002657565b620005e782826200127f565b6000806001600160a01b0316606a60008585604051602001620006fe92919062002067565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b600085856040516020016200074f92919062002067565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b8483015291519193506200079192910162002077565b60405160208183030381529060405280519060200120811415620007c95760405162461bcd60e51b8152600401620004dd90620022b9565b6000818152606a60205260409020546001600160a01b0316620008005760405162461bcd60e51b8152600401620004dd9062002183565b6200085b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250868152606a60205260409020546001600160a01b031692508891508790508662001019565b505050505050565b60685481565b60008051602062005c4383398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff1680620008ca5750620008ca620012ed565b80620008d9575060005460ff16155b620008f85760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff1615801562000924576000805460ff1961ff0019909116610100171660011790555b6200092e62001300565b6200093b600033620005db565b6200095660008051602062005c4383398151915233620005db565b620009827ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba833620005db565b8560405160200162000995919062002077565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b0319928316179092556066805487841690831617905560678054868416908316179055606980549285169290911691909117905580156200085b576000805461ff0019169055505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b62000a5e7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000c9a565b62000a7d5760405162461bcd60e51b8152600401620004dd90620023d1565b62000a91816001600160a01b0316620013a0565b62000ab05760405162461bcd60e51b8152600401620004dd90620024c2565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517f8d7013baea57225dad80fd4e01f9abc0a832b852212426af1dee770b843472029190a35050565b6065546000906001600160a01b0316331462000b375760405162461bcd60e51b8152600401620004dd906200224b565b606854851415801562000bc957506040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000b77919062002077565b60405160208183030381529060405280519060200120851462000bb7576000858152606a60205260409020546001600160a01b0385811691161462000bc9565b6069546001600160a01b038581169116145b62000be85760405162461bcd60e51b8152600401620004dd9062002583565b600062000bf68484620013a6565b9050600681600c81111562000c0757fe5b148062000c205750600581600c81111562000c1e57fe5b145b1562000c385762000c328484620013f1565b62000c52565b60405162461bcd60e51b8152600401620004dd90620026e9565b50600195945050505050565b606b602052600090815260409020546001600160a01b031681565b600082815260336020526040812062000c93908362001683565b9392505050565b600082815260336020526040812062000c93908362001691565b600081565b62000cd460008051602062005c438339815191523362000c9a565b62000cf35760405162461bcd60e51b8152600401620004dd9062002340565b6069805460ff60a01b19169055565b6066546001600160a01b031633148062000d24575062000d2460003362000c9a565b62000d435760405162461bcd60e51b8152600401620004dd90620025f1565b6000828260405160200162000d5a92919062002067565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031662000daa5760405162461bcd60e51b8152600401620004dd9062002309565b6000908152606a6020526040902080546001600160a01b03191690555050565b60008181526033602052604081206200073290620016a8565b6066546001600160a01b031633148062000e05575062000e0560003362000c9a565b62000e245760405162461bcd60e51b8152600401620004dd90620025f1565b6000838360405160200162000e3b92919062002067565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b03161562000e8c5760405162461bcd60e51b8152600401620004dd90620025ba565b6001600160a01b03821662000eb55760405162461bcd60e51b8152600401620004dd9062002183565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b60008281526033602052604090206002015462000f2a906200040262000fa7565b620006cd5760405162461bcd60e51b8152600401620004dd9062002381565b606954600160a01b900460ff1681565b62000f6660003362000c9a565b62000f855760405162461bcd60e51b8152600401620004dd9062002282565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082815260336020526040902062000fc59082620016b5565b15620005e75762000fd562000fa7565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b038216620010425760405162461bcd60e51b8152600401620004dd906200248b565b6001600160a01b038084166000908152606b6020526040902054166200106881620013a0565b620010875760405162461bcd60e51b8152600401620004dd9062002620565b60405163020604bf60e21b815230906001600160a01b0383169063081812fc90620010b7908690600401620020f1565b60206040518083038186803b158015620010d057600080fd5b505afa158015620010e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200110b919062001c0d565b6001600160a01b031614620011345760405162461bcd60e51b8152600401620004dd90620024f9565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd906200116690339030908790600401620020a9565b600060405180830381600087803b1580156200118157600080fd5b505af115801562001196573d6000803e3d6000fd5b5050604051630852cd8d60e31b81526001600160a01b03841692506342966c689150620011c8908590600401620020f1565b600060405180830381600087803b158015620011e357600080fd5b505af1158015620011f8573d6000803e3d6000fd5b5050505060606200120b858585620016cc565b6065546040516365e3781f60e01b81529192506001600160a01b0316906365e3781f9062001242908a908a9086906004016200210f565b600060405180830381600087803b1580156200125d57600080fd5b505af115801562001272573d6000803e3d6000fd5b5050505050505050505050565b600082815260336020526040902062001299908262001743565b15620005e757620012a962000fa7565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000620012fa30620013a0565b15905090565b600054610100900460ff16806200131c57506200131c620012ed565b806200132b575060005460ff16155b6200134a5760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff1615801562001376576000805460ff1961ff0019909116610100171660011790555b620013806200175a565b6200138a6200175a565b80156200139d576000805461ff00191690555b50565b3b151590565b600080620013b78385018562001cae565b905060208106620013e357620013da620013d4848381886200278a565b620013a6565b91505062000732565b620013da8385018562001d70565b6000620013ff8383620013a6565b90506000808080600585600c8111156200141557fe5b141562001472576200142662001a08565b620014328888620017e4565b6040808201516020808401516060909401516001600160a01b038086166000908152606b9093529390912054919850929650919450169150620015969050565b6200147c62001a38565b62001488888862001836565b80516040808201516020808401516060909401516001600160a01b038086166000908152606b90935293909120549199509297509195501692509050816200159457606954600160a01b900460ff16620014f65760405162461bcd60e51b8152600401620004dd9062002454565b60208082015180519101516040516200150f9062001a61565b6200151c92919062002151565b604051809103906000f08015801562001539573d6000803e3d6000fd5b506001600160a01b038581166000818152606b602052604080822080546001600160a01b031916948616948517905551939550919290917faa19c94b56abf04a93a1f32d59067d3918d378afd32b2d1bea847773b7d08f3991a35b505b620015aa816001600160a01b0316620013a0565b620015c95760405162461bcd60e51b8152600401620004dd90620024c2565b6040516340c10f1960e01b81526001600160a01b038216906340c10f1990620015f99087908690600401620020cd565b600060405180830381600087803b1580156200161457600080fd5b505af115801562001629573d6000803e3d6000fd5b50505050806001600160a01b0316836001600160a01b03167fb1196fae12e56db8b0fc57623312e966cbf6b4a45adc9b3002df48577de9f3b184604051620016729190620020f1565b60405180910390a350505050505050565b600062000c93838362001888565b600062000c93836001600160a01b038416620018d1565b60006200073282620018e9565b600062000c93836001600160a01b038416620018ed565b6060620016d862001a08565b6040805160a0810190915280608081018060058152508152602001866001600160a01b03168152602001856001600160a01b03168152602001848152509050806040516020016200172a919062002719565b6040516020818303038152906040529150509392505050565b600062000c93836001600160a01b0384166200193c565b600054610100900460ff168062001776575062001776620012ed565b8062001785575060005460ff16155b620017a45760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff161580156200138a576000805460ff1961ff00199091166101001716600117905580156200139d576000805461ff001916905550565b620017ee62001a08565b6005620017fc8484620013a6565b600c8111156200180857fe5b14620018285760405162461bcd60e51b8152600401620004dd90620026a6565b62000c93828401846200201b565b6200184062001a38565b60066200184e8484620013a6565b600c8111156200185a57fe5b146200187a5760405162461bcd60e51b8152600401620004dd9062002530565b62000c938284018462001f37565b81546000908210620018ae5760405162461bcd60e51b8152600401620004dd90620021ba565b826000018281548110620018be57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000620018fb8383620018d1565b620019335750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000732565b50600062000732565b60008181526001830160205260408120548015620019fd57835460001980830191908101906000908790839081106200197157fe5b90600052602060002001549050808760000184815481106200198f57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080620019c057fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000732565b600091505062000732565b604051806080016040528062001a1d62001a6f565b81526000602082018190526040820181905260609091015290565b604051806040016040528062001a4d62001a08565b815260200162001a5c62001a83565b905290565b61344580620027fe83390190565b604080516020810190915280600062001a5c565b604051806040016040528060608152602001606081525090565b60008083601f84011262001aaf578182fd5b50813567ffffffffffffffff81111562001ac7578182fd5b60208301915083602082850101111562001ae057600080fd5b9250929050565b8035600d81106200073257600080fd5b600082601f83011262001b08578081fd5b813567ffffffffffffffff81111562001b1f578182fd5b62001b34601f8201601f191660200162002762565b915080825283602082850101111562001b4c57600080fd5b8060208401602084013760009082016020015292915050565b6000818303608081121562001b78578182fd5b62001b84608062002762565b9150602081121562001b9557600080fd5b5062001ba2602062002762565b62001bae848462001ae7565b81528152602082013562001bc281620027e7565b6020820152604082013562001bd781620027e7565b806040830152506060820135606082015292915050565b60006020828403121562001c00578081fd5b813562000c9381620027e7565b60006020828403121562001c1f578081fd5b815162000c9381620027e7565b60008060006060848603121562001c41578182fd5b833562001c4e81620027e7565b9250602084013562001c6081620027e7565b929592945050506040919091013590565b6000806040838503121562001c84578182fd5b823562001c9181620027e7565b9150602083013562001ca381620027e7565b809150509250929050565b60006020828403121562001cc0578081fd5b5035919050565b6000806040838503121562001cda578182fd5b82359150602083013562001ca381620027e7565b6000806000806060858703121562001d04578081fd5b84359350602085013562001d1881620027e7565b9250604085013567ffffffffffffffff81111562001d34578182fd5b62001d428782880162001a9d565b95989497509550505050565b6000806040838503121562001d61578182fd5b50508035926020909101359150565b60006020828403121562001d82578081fd5b62000c93838362001ae7565b6000806020838503121562001da1578182fd5b823567ffffffffffffffff81111562001db8578283fd5b62001dc68582860162001a9d565b90969095509350505050565b60008060006040848603121562001de7578081fd5b833567ffffffffffffffff81111562001dfe578182fd5b62001e0c8682870162001a9d565b909450925050602084013562001e2281620027e7565b809150509250925092565b60008060008060006080868803121562001e45578283fd5b853567ffffffffffffffff81111562001e5c578384fd5b62001e6a8882890162001a9d565b909650945050602086013562001e8081620027e7565b9250604086013562001e9281620027e7565b949793965091946060013592915050565b600080600080600060a0868803121562001ebb578283fd5b853567ffffffffffffffff81111562001ed2578384fd5b62001ee08882890162001af7565b955050602086013562001ef381620027e7565b9350604086013562001f0581620027e7565b9250606086013562001f1781620027e7565b9150608086013562001f2981620027e7565b809150509295509295909350565b60006020828403121562001f49578081fd5b813567ffffffffffffffff8082111562001f61578283fd5b9083019060a0828603121562001f75578283fd5b62001f81604062002762565b62001f8d868462001b65565b815260808301358281111562001fa1578485fd5b92909201916040838703121562001fb6578384fd5b62001fc2604062002762565b83358381111562001fd1578586fd5b62001fdf8882870162001af7565b82525060208401358381111562001ff4578586fd5b620020028882870162001af7565b6020830152508060208301525080935050505092915050565b6000608082840312156200202d578081fd5b62000c93838362001b65565b6000815180845262002053816020860160208601620027b4565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b600082516200208b818460208701620027b4565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60006020825262000c93602083018462002039565b60006060825262002124606083018662002039565b6001600160a01b0385166020840152828103604084015262002147818562002039565b9695505050505050565b60006040825262002166604083018562002039565b82810360208401526200217a818562002039565b95945050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b60208082526018908201527f4e6f7420616c6c6f7765642045524337323120546f6b656e0000000000000000604082015260600190565b60208082526033908201527f4d6573736167652074797065206973206e6f7420455243373231207472616e73604082015272666572207769746820746f6b656e20696e666f60681b606082015260800190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526023908201527f4d6573736167652074797065206973206e6f7420455243373231207472616e736040820152623332b960e91b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b8151516080820190600d81106200272c57fe5b80835250602083015160018060a01b03808216602085015280604086015116604085015250506060830151606083015292915050565b60405181810167ffffffffffffffff811182821017156200278257600080fd5b604052919050565b600080858511156200279a578182fd5b83861115620027a7578182fd5b5050820193919092039150565b60005b83811015620027d1578181015183820152602001620027b7565b83811115620027e1576000848401525b50505050565b6001600160a01b03811681146200139d57600080fdfe60806040523480156200001157600080fd5b506040516200344538038062003445833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b620012c81760201c565b620001cb8282620002e560201b620013791760201c565b620001e0620003b160201b620014361760201c565b620001fb600080516020620034258339815191528062000459565b6200021f6000805160206200342583398151915262000219620004ab565b620004af565b50506200094a565b600054610100900460ff168062000243575062000243620004bf565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c5620004dd565b620002cf620004dd565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff168062000301575062000301620004bf565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b62000383620004dd565b6200038d62000585565b6200039983836200062b565b8015620003ac576000805461ff00191690555b505050565b600054610100900460ff1680620003cd5750620003cd620004bf565b80620003dc575060005460ff16155b620004195760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000445576000805460ff1961ff0019909116610100171660011790555b6200044f620004dd565b620002c562000585565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004bb828262000721565b5050565b6000620004d7306200079c60201b620014d31760201c565b15905090565b600054610100900460ff1680620004f95750620004f9620004bf565b8062000508575060005460ff16155b620005455760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620005a15750620005a1620004bf565b80620005b0575060005460ff16155b620005ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000619576000805460ff1961ff0019909116610100171660011790555b620002cf6301ffc9a760e01b620007a2565b600054610100900460ff168062000647575062000647620004bf565b8062000656575060005460ff16155b620006935760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620006bf576000805460ff1961ff0019909116610100171660011790555b8251620006d490609c906020860190620008ae565b508151620006ea90609d906020850190620008ae565b50620006fd6380ac58cd60e01b620007a2565b6200070f635b5e139f60e01b620007a2565b6200039963780e9d6360e01b620007a2565b600082815260336020908152604090912062000748918390620014d962000827821b17901c565b15620004bb5762000758620004ab565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000802576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b60006200083e836001600160a01b03841662000847565b90505b92915050565b600062000855838362000896565b6200088d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000841565b50600062000841565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008f157805160ff191683800117855562000921565b8280016001018555821562000921579182015b828111156200092157825182559160200191906001019062000904565b506200092f92915062000933565b5090565b5b808211156200092f576000815560010162000934565b612a9d806200095a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634f6ccce711610104578063a217fddf116100a2578063ca15c87311610071578063ca15c873146106b2578063d5391393146106cf578063d547741f146106d7578063e985e9c514610703576101cf565b8063a217fddf14610599578063a22cb465146105a1578063b88d4fde146105cf578063c87b56dd14610695576101cf565b806370a08231116100de57806370a082311461051c5780639010d07c1461054257806391d148541461056557806395d89b4114610591576101cf565b80634f6ccce7146104da5780636352211e146104f75780636c0360eb14610514576101cf565b8063248a9ca31161017157806336568abe1161014b57806336568abe1461042f57806340c10f191461045b57806342842e0e1461048757806342966c68146104bd576101cf565b8063248a9ca3146103ba5780632f2ff15d146103d75780632f745c5914610403576101cf565b8063095ea7b3116101ad578063095ea7b3146102c5578063162094c4146102f357806318160ddd1461036a57806323b872dd14610384576101cf565b806301ffc9a7146101d457806306fdde031461020f578063081812fc1461028c575b600080fd5b6101fb600480360360208110156101ea57600080fd5b50356001600160e01b031916610731565b604080519115158252519081900360200190f35b610217610754565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a9600480360360208110156102a257600080fd5b50356107ea565b604080516001600160a01b039092168252519081900360200190f35b6102f1600480360360408110156102db57600080fd5b506001600160a01b03813516906020013561084c565b005b6101fb6004803603604081101561030957600080fd5b8135919081019060408101602082013564010000000081111561032b57600080fd5b82018360208201111561033d57600080fd5b8035906020019184600183028401116401000000008311171561035f57600080fd5b509092509050610927565b610372610a21565b60408051918252519081900360200190f35b6102f16004803603606081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060400135610a32565b610372600480360360208110156103d057600080fd5b5035610a89565b6102f1600480360360408110156103ed57600080fd5b50803590602001356001600160a01b0316610a9e565b6103726004803603604081101561041957600080fd5b506001600160a01b038135169060200135610b0a565b6102f16004803603604081101561044557600080fd5b50803590602001356001600160a01b0316610b35565b6102f16004803603604081101561047157600080fd5b506001600160a01b038135169060200135610b96565b6102f16004803603606081101561049d57600080fd5b506001600160a01b03813581169160208101359091169060400135610c16565b6102f1600480360360208110156104d357600080fd5b5035610c31565b610372600480360360208110156104f057600080fd5b5035610c83565b6102a96004803603602081101561050d57600080fd5b5035610c99565b610217610cc1565b6103726004803603602081101561053257600080fd5b50356001600160a01b0316610d22565b6102a96004803603604081101561055857600080fd5b5080359060200135610d8a565b6101fb6004803603604081101561057b57600080fd5b50803590602001356001600160a01b0316610da2565b610217610dba565b610372610e1b565b6102f1600480360360408110156105b757600080fd5b506001600160a01b0381351690602001351515610e20565b6102f1600480360360808110156105e557600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184600183028401116401000000008311171561065457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f25945050505050565b610217600480360360208110156106ab57600080fd5b5035610f83565b610372600480360360208110156106c857600080fd5b5035611206565b61037261121d565b6102f1600480360360408110156106ed57600080fd5b50803590602001356001600160a01b0316611241565b6101fb6004803603604081101561071957600080fd5b506001600160a01b038135811691602001351661129a565b6001600160e01b0319811660009081526065602052604090205460ff165b919050565b609c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b60006107f5826114ee565b6108305760405162461bcd60e51b815260040180806020018281038252602c815260200180612907602c913960400191505060405180910390fd5b506000908152609a60205260409020546001600160a01b031690565b600061085782610c99565b9050806001600160a01b0316836001600160a01b031614156108aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806129b76021913960400191505060405180910390fd5b806001600160a01b03166108bc6114fb565b6001600160a01b031614806108dd57506108dd816108d86114fb565b61129a565b6109185760405162461bcd60e51b815260040180806020018281038252603881526020018061282c6038913960400191505060405180910390fd5b61092283836114ff565b505050565b6000610932846114ee565b61097b576040805162461bcd60e51b8152602060048201526015602482015274546f6b656e20646f6573206e6f742065786973747360581b604482015290519081900360640190fd5b610985338561156d565b6109d6576040805162461bcd60e51b815260206004820152601c60248201527f53656e6465722063616e206e6f742073657420746f6b656e2055524900000000604482015290519081900360640190fd5b610a168484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161192505050565b5060015b9392505050565b6000610a2d6098611674565b905090565b610a43610a3d6114fb565b8261156d565b610a7e5760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b61092283838361167f565b60009081526033602052604090206002015490565b600082815260336020526040902060020154610ac190610abc6114fb565b610da2565b610afc5760405162461bcd60e51b815260040180806020018281038252602f81526020018061274b602f913960400191505060405180910390fd5b610b0682826117cb565b5050565b6001600160a01b0382166000908152609760205260408120610b2c9083611834565b90505b92915050565b610b3d6114fb565b6001600160a01b0316816001600160a01b031614610b8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a39602f913960400191505060405180910390fd5b610b068282611840565b610bc27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610abc6114fb565b610c0c576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610b0682826118a9565b61092283838360405180602001604052806000815250610f25565b610c3c610a3d6114fb565b610c775760405162461bcd60e51b8152600401808060200182810382526030815260200180612a096030913960400191505060405180910390fd5b610c80816119d7565b50565b600080610c91609884611aa4565b509392505050565b6000610b2f8260405180606001604052806029815260200161288e6029913960989190611ac0565b609f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b60006001600160a01b038216610d695760405162461bcd60e51b815260040180806020018281038252602a815260200180612864602a913960400191505060405180910390fd5b6001600160a01b0382166000908152609760205260409020610b2f90611674565b6000828152603360205260408120610b2c9083611834565b6000828152603360205260408120610b2c9083611acd565b609d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b600081565b610e286114fb565b6001600160a01b0316826001600160a01b03161415610e8e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80609b6000610e9b6114fb565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610edf6114fb565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f36610f306114fb565b8361156d565b610f715760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b610f7d84848484611ae2565b50505050565b6060610f8e826114ee565b610fc95760405162461bcd60e51b815260040180806020018281038252602f815260200180612988602f913960400191505060405180910390fd5b6000828152609e602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561105e5780601f106110335761010080835404028352916020019161105e565b820191906000526020600020905b81548152906001019060200180831161104157829003601f168201915b50505050509050606061106f610cc1565b90508051600014156110835750905061074f565b8151156111445780826040516020018083805190602001908083835b602083106110be5780518252601f19909201916020918201910161109f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111065780518252601f1990920191602091820191016110e7565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529250505061074f565b8061114e85611b34565b6040516020018083805190602001908083835b602083106111805780518252601f199092019160209182019101611161565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111c85780518252601f1990920191602091820191016111a9565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050919050565b6000818152603360205260408120610b2f90611674565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b60008281526033602052604090206002015461125f90610abc6114fb565b610b8c5760405162461bcd60e51b81526004018080602001828103825260308152602001806127fc6030913960400191505060405180910390fd5b6001600160a01b039182166000908152609b6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16806112e157506112e1611c0f565b806112ef575060005460ff16155b61132a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611355576000805460ff1961ff0019909116610100171660011790555b61135d611c20565b611365611c20565b8015610c80576000805461ff001916905550565b600054610100900460ff16806113925750611392611c0f565b806113a0575060005460ff16155b6113db5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611406576000805460ff1961ff0019909116610100171660011790555b61140e611c20565b611416611cc0565b6114208383611d5d565b8015610922576000805461ff0019169055505050565b600054610100900460ff168061144f575061144f611c0f565b8061145d575060005460ff16155b6114985760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff161580156114c3576000805460ff1961ff0019909116610100171660011790555b6114cb611c20565b61135d611cc0565b3b151590565b6000610b2c836001600160a01b038416611e42565b6000610b2f609883611e8c565b3390565b6000818152609a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061153482610c99565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611578826114ee565b6115b35760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d0602c913960400191505060405180910390fd5b60006115be83610c99565b9050806001600160a01b0316846001600160a01b031614806115f95750836001600160a01b03166115ee846107ea565b6001600160a01b0316145b806116095750611609818561129a565b949350505050565b61161a826114ee565b6116555760405162461bcd60e51b815260040180806020018281038252602c815260200180612933602c913960400191505060405180910390fd5b6000828152609e60209081526040909120825161092292840190612655565b6000610b2f82611e98565b826001600160a01b031661169282610c99565b6001600160a01b0316146116d75760405162461bcd60e51b815260040180806020018281038252602981526020018061295f6029913960400191505060405180910390fd5b6001600160a01b03821661171c5760405162461bcd60e51b81526004018080602001828103825260248152602001806127ac6024913960400191505060405180910390fd5b611727838383610922565b6117326000826114ff565b6001600160a01b03831660009081526097602052604090206117549082611e9c565b506001600160a01b03821660009081526097602052604090206117779082611ea8565b5061178460988284611eb4565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008281526033602052604090206117e390826114d9565b15610b06576117f06114fb565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b2c8383611eca565b60008281526033602052604090206118589082611f2e565b15610b06576118656114fb565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b038216611904576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61190d816114ee565b1561195f576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b61196b60008383610922565b6001600160a01b038216600090815260976020526040902061198d9082611ea8565b5061199a60988284611eb4565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006119e282610c99565b90506119f081600084610922565b6119fb6000836114ff565b6000828152609e60205260409020546002600019610100600184161502019091160415611a39576000828152609e60205260408120611a39916126d3565b6001600160a01b0381166000908152609760205260409020611a5b9083611e9c565b50611a67609883611f43565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080611ab38686611f4f565b9097909650945050505050565b6000611609848484611fca565b6000610b2c836001600160a01b038416612094565b611aed84848461167f565b611af9848484846120ac565b610f7d5760405162461bcd60e51b815260040180806020018281038252603281526020018061277a6032913960400191505060405180910390fd5b606081611b5957506040805180820190915260018152600360fc1b602082015261074f565b8160005b8115611b7157600101600a82049150611b5d565b60608167ffffffffffffffff81118015611b8a57600080fd5b506040519080825280601f01601f191660200182016040528015611bb5576020820181803683370190505b50859350905060001982015b8315611c0657600a840660300160f81b82828060019003935081518110611be457fe5b60200101906001600160f81b031916908160001a905350600a84049350611bc1565b50949350505050565b6000611c1a306114d3565b15905090565b600054610100900460ff1680611c395750611c39611c0f565b80611c47575060005460ff16155b611c825760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611365576000805460ff1961ff0019909116610100171660011790558015610c80576000805461ff001916905550565b600054610100900460ff1680611cd95750611cd9611c0f565b80611ce7575060005460ff16155b611d225760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611d4d576000805460ff1961ff0019909116610100171660011790555b6113656301ffc9a760e01b612214565b600054610100900460ff1680611d765750611d76611c0f565b80611d84575060005460ff16155b611dbf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611dea576000805460ff1961ff0019909116610100171660011790555b8251611dfd90609c906020860190612655565b508151611e1190609d906020850190612655565b50611e226380ac58cd60e01b612214565b611e32635b5e139f60e01b612214565b61142063780e9d6360e01b612214565b6000611e4e8383612094565b611e8457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b2f565b506000610b2f565b6000610b2c8383612094565b5490565b6000610b2c8383612298565b6000610b2c8383611e42565b600061160984846001600160a01b03851661235e565b81546000908210611f0c5760405162461bcd60e51b81526004018080602001828103825260228152602001806127296022913960400191505060405180910390fd5b826000018281548110611f1b57fe5b9060005260206000200154905092915050565b6000610b2c836001600160a01b038416612298565b6000610b2c83836123f5565b815460009081908310611f935760405162461bcd60e51b81526004018080602001828103825260228152602001806128e56022913960400191505060405180910390fd5b6000846000018481548110611fa457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816120655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202a578181015183820152602001612012565b50505050905090810190601f1680156120575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061207857fe5b9060005260206000209060020201600101549150509392505050565b60009081526001919091016020526040902054151590565b60006120c0846001600160a01b03166114d3565b6120cc57506001611609565b60606121da630a85bd0160e11b6120e16114fb565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612148578181015183820152602001612130565b50505050905090810190601f1680156121755780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505060405180606001604052806032815260200161277a603291396001600160a01b03881691906124c9565b905060008180602001905160208110156121f357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6001600160e01b03198082161415612273576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b6000818152600183016020526040812054801561235457835460001980830191908101906000908790839081106122cb57fe5b90600052602060002001549050808760000184815481106122e857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061231857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610b2f565b6000915050610b2f565b6000828152600184016020526040812054806123c3575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610a1a565b828560000160018303815481106123d657fe5b9060005260206000209060020201600101819055506000915050610a1a565b60008181526001830160205260408120548015612354578354600019808301919081019060009087908390811061242857fe5b906000526020600020906002020190508087600001848154811061244857fe5b60009182526020808320845460029093020191825560019384015491840191909155835482528983019052604090209084019055865487908061248757fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450610b2f9350505050565b60606116098484600085856124dd856114d3565b61252e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061256d5780518252601f19909201916020918201910161254e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146125cf576040519150601f19603f3d011682016040523d82523d6000602084013e6125d4565b606091505b50915091506125e48282866125ef565b979650505050505050565b606083156125fe575081610a1a565b82511561260e5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561202a578181015183820152602001612012565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061269657805160ff19168380011785556126c3565b828001600101855582156126c3579182015b828111156126c35782518255916020019190600101906126a8565b506126cf929150612713565b5090565b50805460018160011615610100020316600290046000825580601f106126f95750610c80565b601f016020900490600052602060002090810190610c8091905b5b808211156126cf576000815560010161271456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212206cfed4af0d06c86fc24af2eff048829ddbcce69495200e80936dbbfb68bcbc3964736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba26469706673582212203dcb732cfab6450457532ede4a1839d6b27deedb542d9b799556400ffd8941ff64736f6c634300060c0033", + "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620002205760003560e01c80636d6112861162000129578063b9581c5011620000b1578063cc5b715b116200007b578063cc5b715b1462000461578063d547741f146200046b578063dec2deb61462000482578063edcc12b5146200048c5762000220565b8063b9581c501462000412578063c0e312dc146200041c578063ca15c8731462000433578063cb703bff146200044a5762000220565b80638a8fe42111620000f35780638a8fe42114620003c35780639010d07c14620003da57806391d1485414620003f1578063a217fddf14620004085762000220565b80636d61128614620003815780636d6c68e6146200038b5780637b69620f1462000395578063884cee5a14620003ac5762000220565b806336568abe11620001ad5780633fa194ce11620001775780633fa194ce146200033d57806350f4428014620003475780635573b8b614620003605780636ce681d2146200036a5762000220565b806336568abe14620002df57806339927cf914620002f65780633b4612c1146200031c5780633b690b6b14620003335762000220565b806328c5e18211620001ef57806328c5e182146200029d5780632dc151de14620002a75780632f2ff15d14620002b157806330d86b2a14620002c85762000220565b8063029996b814620002255780630b885ac314620002315780630f1a8f741462000248578063248a9ca31462000277575b600080fd5b6200022f620004a3565b005b6200022f6200024236600462001ea3565b620004fb565b6200025f6200025936600462001cae565b62000511565b6040516200026e919062002095565b60405180910390f35b6200028e6200028836600462001cae565b6200052c565b6040516200026e9190620020f1565b6200028e62000541565b6200025f6200058c565b6200022f620002c236600462001cc7565b6200059b565b6200022f620002d936600462001c2c565b620005eb565b6200022f620002f036600462001cc7565b62000690565b6200030d6200030736600462001d8e565b620006d9565b6040516200026e9190620020e6565b6200022f6200032d36600462001e2d565b62000738565b6200028e62000863565b6200028e62000869565b620003516200087c565b6040516200026e9190620020fa565b6200025f6200089f565b6200022f6200037b36600462001ea3565b620008ae565b6200025f62000a14565b6200025f62000a23565b6200022f620003a636600462001c71565b62000a32565b6200030d620003bd36600462001cee565b62000b07565b6200025f620003d436600462001bee565b62000c5e565b6200025f620003eb36600462001d4e565b62000c79565b6200030d6200040236600462001cc7565b62000c9a565b6200028e62000cb4565b6200022f62000cb9565b6200022f6200042d36600462001d8e565b62000d02565b6200028e6200044436600462001cae565b62000dca565b6200022f6200045b36600462001dd2565b62000de3565b6200028e62000ee5565b6200022f6200047c36600462001cc7565b62000f09565b6200030d62000f49565b6200022f6200049d36600462001bee565b62000f59565b620004be60008051602062005c438339815191523362000c9a565b620004e65760405162461bcd60e51b8152600401620004dd9062002340565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b6200050a8585858585620008ae565b5050505050565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000573919062002077565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b600082815260336020526040902060020154620005bc906200040262000fa7565b620005db5760405162461bcd60e51b8152600401620004dd90620021fc565b620005e7828262000fab565b5050565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a906200061d90859060040162002095565b600060405180830381600087803b1580156200063857600080fd5b505af11580156200064d573d6000803e3d6000fd5b505060408051808201909152600781526613585a5b9b995d60ca1b60208201526069546200068b93509091506001600160a01b031685858562001019565b505050565b6200069a62000fa7565b6001600160a01b0316816001600160a01b031614620006cd5760405162461bcd60e51b8152600401620004dd9062002657565b620005e782826200127f565b6000806001600160a01b0316606a60008585604051602001620006fe92919062002067565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b600085856040516020016200074f92919062002067565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b8483015291519193506200079192910162002077565b60405160208183030381529060405280519060200120811415620007c95760405162461bcd60e51b8152600401620004dd90620022b9565b6000818152606a60205260409020546001600160a01b0316620008005760405162461bcd60e51b8152600401620004dd9062002183565b6200085b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250868152606a60205260409020546001600160a01b031692508891508790508662001019565b505050505050565b60685481565b60008051602062005c4383398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff1680620008ca5750620008ca620012ed565b80620008d9575060005460ff16155b620008f85760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff1615801562000924576000805460ff1961ff0019909116610100171660011790555b6200092e62001300565b6200093b600033620005db565b6200095660008051602062005c4383398151915233620005db565b620009827ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba833620005db565b8560405160200162000995919062002077565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b0319928316179092556066805487841690831617905560678054868416908316179055606980549285169290911691909117905580156200085b576000805461ff0019169055505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b62000a5e7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83362000c9a565b62000a7d5760405162461bcd60e51b8152600401620004dd90620023d1565b62000a91816001600160a01b0316620013a0565b62000ab05760405162461bcd60e51b8152600401620004dd90620024c2565b6001600160a01b038281166000818152606b602052604080822080546001600160a01b0319169486169485179055517f8d7013baea57225dad80fd4e01f9abc0a832b852212426af1dee770b843472029190a35050565b6065546000906001600160a01b0316331462000b375760405162461bcd60e51b8152600401620004dd906200224b565b606854851415801562000bc957506040518060400160405280600781526020016613585a5b9b995d60ca1b81525060405160200162000b77919062002077565b60405160208183030381529060405280519060200120851462000bb7576000858152606a60205260409020546001600160a01b0385811691161462000bc9565b6069546001600160a01b038581169116145b62000be85760405162461bcd60e51b8152600401620004dd9062002583565b600062000bf68484620013a6565b9050600681600c81111562000c0757fe5b148062000c205750600581600c81111562000c1e57fe5b145b1562000c385762000c328484620013f1565b62000c52565b60405162461bcd60e51b8152600401620004dd90620026e9565b50600195945050505050565b606b602052600090815260409020546001600160a01b031681565b600082815260336020526040812062000c93908362001683565b9392505050565b600082815260336020526040812062000c93908362001691565b600081565b62000cd460008051602062005c438339815191523362000c9a565b62000cf35760405162461bcd60e51b8152600401620004dd9062002340565b6069805460ff60a01b19169055565b6066546001600160a01b031633148062000d24575062000d2460003362000c9a565b62000d435760405162461bcd60e51b8152600401620004dd90620025f1565b6000828260405160200162000d5a92919062002067565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031662000daa5760405162461bcd60e51b8152600401620004dd9062002309565b6000908152606a6020526040902080546001600160a01b03191690555050565b60008181526033602052604081206200073290620016a8565b6066546001600160a01b031633148062000e05575062000e0560003362000c9a565b62000e245760405162461bcd60e51b8152600401620004dd90620025f1565b6000838360405160200162000e3b92919062002067565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b03161562000e8c5760405162461bcd60e51b8152600401620004dd90620025ba565b6001600160a01b03821662000eb55760405162461bcd60e51b8152600401620004dd9062002183565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b60008281526033602052604090206002015462000f2a906200040262000fa7565b620006cd5760405162461bcd60e51b8152600401620004dd9062002381565b606954600160a01b900460ff1681565b62000f6660003362000c9a565b62000f855760405162461bcd60e51b8152600401620004dd9062002282565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082815260336020526040902062000fc59082620016b5565b15620005e75762000fd562000fa7565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b038216620010425760405162461bcd60e51b8152600401620004dd906200248b565b6001600160a01b038084166000908152606b6020526040902054166200106881620013a0565b620010875760405162461bcd60e51b8152600401620004dd9062002620565b60405163020604bf60e21b815230906001600160a01b0383169063081812fc90620010b7908690600401620020f1565b60206040518083038186803b158015620010d057600080fd5b505afa158015620010e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200110b919062001c0d565b6001600160a01b031614620011345760405162461bcd60e51b8152600401620004dd90620024f9565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd906200116690339030908790600401620020a9565b600060405180830381600087803b1580156200118157600080fd5b505af115801562001196573d6000803e3d6000fd5b5050604051630852cd8d60e31b81526001600160a01b03841692506342966c689150620011c8908590600401620020f1565b600060405180830381600087803b158015620011e357600080fd5b505af1158015620011f8573d6000803e3d6000fd5b5050505060606200120b858585620016cc565b6065546040516365e3781f60e01b81529192506001600160a01b0316906365e3781f9062001242908a908a9086906004016200210f565b600060405180830381600087803b1580156200125d57600080fd5b505af115801562001272573d6000803e3d6000fd5b5050505050505050505050565b600082815260336020526040902062001299908262001743565b15620005e757620012a962000fa7565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000620012fa30620013a0565b15905090565b600054610100900460ff16806200131c57506200131c620012ed565b806200132b575060005460ff16155b6200134a5760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff1615801562001376576000805460ff1961ff0019909116610100171660011790555b620013806200175a565b6200138a6200175a565b80156200139d576000805461ff00191690555b50565b3b151590565b600080620013b78385018562001cae565b905060208106620013e357620013da620013d4848381886200278a565b620013a6565b91505062000732565b620013da8385018562001d70565b6000620013ff8383620013a6565b90506000808080600585600c8111156200141557fe5b141562001472576200142662001a08565b620014328888620017e4565b6040808201516020808401516060909401516001600160a01b038086166000908152606b9093529390912054919850929650919450169150620015969050565b6200147c62001a38565b62001488888862001836565b80516040808201516020808401516060909401516001600160a01b038086166000908152606b90935293909120549199509297509195501692509050816200159457606954600160a01b900460ff16620014f65760405162461bcd60e51b8152600401620004dd9062002454565b60208082015180519101516040516200150f9062001a61565b6200151c92919062002151565b604051809103906000f08015801562001539573d6000803e3d6000fd5b506001600160a01b038581166000818152606b602052604080822080546001600160a01b031916948616948517905551939550919290917faa19c94b56abf04a93a1f32d59067d3918d378afd32b2d1bea847773b7d08f3991a35b505b620015aa816001600160a01b0316620013a0565b620015c95760405162461bcd60e51b8152600401620004dd90620024c2565b6040516340c10f1960e01b81526001600160a01b038216906340c10f1990620015f99087908690600401620020cd565b600060405180830381600087803b1580156200161457600080fd5b505af115801562001629573d6000803e3d6000fd5b50505050806001600160a01b0316836001600160a01b03167fb1196fae12e56db8b0fc57623312e966cbf6b4a45adc9b3002df48577de9f3b184604051620016729190620020f1565b60405180910390a350505050505050565b600062000c93838362001888565b600062000c93836001600160a01b038416620018d1565b60006200073282620018e9565b600062000c93836001600160a01b038416620018ed565b6060620016d862001a08565b6040805160a0810190915280608081018060058152508152602001866001600160a01b03168152602001856001600160a01b03168152602001848152509050806040516020016200172a919062002719565b6040516020818303038152906040529150509392505050565b600062000c93836001600160a01b0384166200193c565b600054610100900460ff168062001776575062001776620012ed565b8062001785575060005460ff16155b620017a45760405162461bcd60e51b8152600401620004dd9062002406565b600054610100900460ff161580156200138a576000805460ff1961ff00199091166101001716600117905580156200139d576000805461ff001916905550565b620017ee62001a08565b6005620017fc8484620013a6565b600c8111156200180857fe5b14620018285760405162461bcd60e51b8152600401620004dd90620026a6565b62000c93828401846200201b565b6200184062001a38565b60066200184e8484620013a6565b600c8111156200185a57fe5b146200187a5760405162461bcd60e51b8152600401620004dd9062002530565b62000c938284018462001f37565b81546000908210620018ae5760405162461bcd60e51b8152600401620004dd90620021ba565b826000018281548110620018be57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000620018fb8383620018d1565b620019335750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000732565b50600062000732565b60008181526001830160205260408120548015620019fd57835460001980830191908101906000908790839081106200197157fe5b90600052602060002001549050808760000184815481106200198f57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080620019c057fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505062000732565b600091505062000732565b604051806080016040528062001a1d62001a6f565b81526000602082018190526040820181905260609091015290565b604051806040016040528062001a4d62001a08565b815260200162001a5c62001a83565b905290565b61344580620027fe83390190565b604080516020810190915280600062001a5c565b604051806040016040528060608152602001606081525090565b60008083601f84011262001aaf578182fd5b50813567ffffffffffffffff81111562001ac7578182fd5b60208301915083602082850101111562001ae057600080fd5b9250929050565b8035600d81106200073257600080fd5b600082601f83011262001b08578081fd5b813567ffffffffffffffff81111562001b1f578182fd5b62001b34601f8201601f191660200162002762565b915080825283602082850101111562001b4c57600080fd5b8060208401602084013760009082016020015292915050565b6000818303608081121562001b78578182fd5b62001b84608062002762565b9150602081121562001b9557600080fd5b5062001ba2602062002762565b62001bae848462001ae7565b81528152602082013562001bc281620027e7565b6020820152604082013562001bd781620027e7565b806040830152506060820135606082015292915050565b60006020828403121562001c00578081fd5b813562000c9381620027e7565b60006020828403121562001c1f578081fd5b815162000c9381620027e7565b60008060006060848603121562001c41578182fd5b833562001c4e81620027e7565b9250602084013562001c6081620027e7565b929592945050506040919091013590565b6000806040838503121562001c84578182fd5b823562001c9181620027e7565b9150602083013562001ca381620027e7565b809150509250929050565b60006020828403121562001cc0578081fd5b5035919050565b6000806040838503121562001cda578182fd5b82359150602083013562001ca381620027e7565b6000806000806060858703121562001d04578081fd5b84359350602085013562001d1881620027e7565b9250604085013567ffffffffffffffff81111562001d34578182fd5b62001d428782880162001a9d565b95989497509550505050565b6000806040838503121562001d61578182fd5b50508035926020909101359150565b60006020828403121562001d82578081fd5b62000c93838362001ae7565b6000806020838503121562001da1578182fd5b823567ffffffffffffffff81111562001db8578283fd5b62001dc68582860162001a9d565b90969095509350505050565b60008060006040848603121562001de7578081fd5b833567ffffffffffffffff81111562001dfe578182fd5b62001e0c8682870162001a9d565b909450925050602084013562001e2281620027e7565b809150509250925092565b60008060008060006080868803121562001e45578283fd5b853567ffffffffffffffff81111562001e5c578384fd5b62001e6a8882890162001a9d565b909650945050602086013562001e8081620027e7565b9250604086013562001e9281620027e7565b949793965091946060013592915050565b600080600080600060a0868803121562001ebb578283fd5b853567ffffffffffffffff81111562001ed2578384fd5b62001ee08882890162001af7565b955050602086013562001ef381620027e7565b9350604086013562001f0581620027e7565b9250606086013562001f1781620027e7565b9150608086013562001f2981620027e7565b809150509295509295909350565b60006020828403121562001f49578081fd5b813567ffffffffffffffff8082111562001f61578283fd5b9083019060a0828603121562001f75578283fd5b62001f81604062002762565b62001f8d868462001b65565b815260808301358281111562001fa1578485fd5b92909201916040838703121562001fb6578384fd5b62001fc2604062002762565b83358381111562001fd1578586fd5b62001fdf8882870162001af7565b82525060208401358381111562001ff4578586fd5b620020028882870162001af7565b6020830152508060208301525080935050505092915050565b6000608082840312156200202d578081fd5b62000c93838362001b65565b6000815180845262002053816020860160208601620027b4565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b600082516200208b818460208701620027b4565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60006020825262000c93602083018462002039565b60006060825262002124606083018662002039565b6001600160a01b0385166020840152828103604084015262002147818562002039565b9695505050505050565b60006040825262002166604083018562002039565b82810360208401526200217a818562002039565b95945050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f544f4b454e5f5245474953545241525f524f4c45206973207265717569726564604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601c908201527f4175746f6d61746963206465706c6f792069732064697361626c656400000000604082015260600190565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b6020808252601f908201527f476976656e2061646472657373206973206e6f74206120636f6e747261637400604082015260600190565b60208082526018908201527f4e6f7420616c6c6f7765642045524337323120546f6b656e0000000000000000604082015260600190565b60208082526033908201527f4d6573736167652074797065206973206e6f7420455243373231207472616e73604082015272666572207769746820746f6b656e20696e666f60681b606082015260800190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b60208082526018908201527f4e6f20746f6b656e20636c6f6e65206f6e2073636861696e0000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526023908201527f4d6573736167652074797065206973206e6f7420455243373231207472616e736040820152623332b960e91b606082015260800190565b60208082526016908201527526b2b9b9b0b3b2aa3cb8329034b9903ab735b737bbb760511b604082015260600190565b8151516080820190600d81106200272c57fe5b80835250602083015160018060a01b03808216602085015280604086015116604085015250506060830151606083015292915050565b60405181810167ffffffffffffffff811182821017156200278257600080fd5b604052919050565b600080858511156200279a578182fd5b83861115620027a7578182fd5b5050820193919092039150565b60005b83811015620027d1578181015183820152602001620027b7565b83811115620027e1576000848401525b50505050565b6001600160a01b03811681146200139d57600080fdfe60806040523480156200001157600080fd5b506040516200344538038062003445833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050620001b46200022760201b620012c81760201c565b620001cb8282620002e560201b620013791760201c565b620001e0620003b160201b620014361760201c565b620001fb600080516020620034258339815191528062000459565b6200021f6000805160206200342583398151915262000219620004ab565b620004af565b50506200094a565b600054610100900460ff168062000243575062000243620004bf565b8062000252575060005460ff16155b6200028f5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002bb576000805460ff1961ff0019909116610100171660011790555b620002c5620004dd565b620002cf620004dd565b8015620002e2576000805461ff00191690555b50565b600054610100900460ff168062000301575062000301620004bf565b8062000310575060005460ff16155b6200034d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000379576000805460ff1961ff0019909116610100171660011790555b62000383620004dd565b6200038d62000585565b6200039983836200062b565b8015620003ac576000805461ff00191690555b505050565b600054610100900460ff1680620003cd5750620003cd620004bf565b80620003dc575060005460ff16155b620004195760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000445576000805460ff1961ff0019909116610100171660011790555b6200044f620004dd565b620002c562000585565b600082815260336020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526033602052604090912060020155565b3390565b620004bb828262000721565b5050565b6000620004d7306200079c60201b620014d31760201c565b15905090565b600054610100900460ff1680620004f95750620004f9620004bf565b8062000508575060005460ff16155b620005455760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620002cf576000805460ff1961ff0019909116610100171660011790558015620002e2576000805461ff001916905550565b600054610100900460ff1680620005a15750620005a1620004bf565b80620005b0575060005460ff16155b620005ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff1615801562000619576000805460ff1961ff0019909116610100171660011790555b620002cf6301ffc9a760e01b620007a2565b600054610100900460ff168062000647575062000647620004bf565b8062000656575060005460ff16155b620006935760405162461bcd60e51b815260040180806020018281038252602e815260200180620033f7602e913960400191505060405180910390fd5b600054610100900460ff16158015620006bf576000805460ff1961ff0019909116610100171660011790555b8251620006d490609c906020860190620008ae565b508151620006ea90609d906020850190620008ae565b50620006fd6380ac58cd60e01b620007a2565b6200070f635b5e139f60e01b620007a2565b6200039963780e9d6360e01b620007a2565b600082815260336020908152604090912062000748918390620014d962000827821b17901c565b15620004bb5762000758620004ab565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3b151590565b6001600160e01b0319808216141562000802576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b60006200083e836001600160a01b03841662000847565b90505b92915050565b600062000855838362000896565b6200088d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000841565b50600062000841565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008f157805160ff191683800117855562000921565b8280016001018555821562000921579182015b828111156200092157825182559160200191906001019062000904565b506200092f92915062000933565b5090565b5b808211156200092f576000815560010162000934565b612a9d806200095a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634f6ccce711610104578063a217fddf116100a2578063ca15c87311610071578063ca15c873146106b2578063d5391393146106cf578063d547741f146106d7578063e985e9c514610703576101cf565b8063a217fddf14610599578063a22cb465146105a1578063b88d4fde146105cf578063c87b56dd14610695576101cf565b806370a08231116100de57806370a082311461051c5780639010d07c1461054257806391d148541461056557806395d89b4114610591576101cf565b80634f6ccce7146104da5780636352211e146104f75780636c0360eb14610514576101cf565b8063248a9ca31161017157806336568abe1161014b57806336568abe1461042f57806340c10f191461045b57806342842e0e1461048757806342966c68146104bd576101cf565b8063248a9ca3146103ba5780632f2ff15d146103d75780632f745c5914610403576101cf565b8063095ea7b3116101ad578063095ea7b3146102c5578063162094c4146102f357806318160ddd1461036a57806323b872dd14610384576101cf565b806301ffc9a7146101d457806306fdde031461020f578063081812fc1461028c575b600080fd5b6101fb600480360360208110156101ea57600080fd5b50356001600160e01b031916610731565b604080519115158252519081900360200190f35b610217610754565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610251578181015183820152602001610239565b50505050905090810190601f16801561027e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a9600480360360208110156102a257600080fd5b50356107ea565b604080516001600160a01b039092168252519081900360200190f35b6102f1600480360360408110156102db57600080fd5b506001600160a01b03813516906020013561084c565b005b6101fb6004803603604081101561030957600080fd5b8135919081019060408101602082013564010000000081111561032b57600080fd5b82018360208201111561033d57600080fd5b8035906020019184600183028401116401000000008311171561035f57600080fd5b509092509050610927565b610372610a21565b60408051918252519081900360200190f35b6102f16004803603606081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060400135610a32565b610372600480360360208110156103d057600080fd5b5035610a89565b6102f1600480360360408110156103ed57600080fd5b50803590602001356001600160a01b0316610a9e565b6103726004803603604081101561041957600080fd5b506001600160a01b038135169060200135610b0a565b6102f16004803603604081101561044557600080fd5b50803590602001356001600160a01b0316610b35565b6102f16004803603604081101561047157600080fd5b506001600160a01b038135169060200135610b96565b6102f16004803603606081101561049d57600080fd5b506001600160a01b03813581169160208101359091169060400135610c16565b6102f1600480360360208110156104d357600080fd5b5035610c31565b610372600480360360208110156104f057600080fd5b5035610c83565b6102a96004803603602081101561050d57600080fd5b5035610c99565b610217610cc1565b6103726004803603602081101561053257600080fd5b50356001600160a01b0316610d22565b6102a96004803603604081101561055857600080fd5b5080359060200135610d8a565b6101fb6004803603604081101561057b57600080fd5b50803590602001356001600160a01b0316610da2565b610217610dba565b610372610e1b565b6102f1600480360360408110156105b757600080fd5b506001600160a01b0381351690602001351515610e20565b6102f1600480360360808110156105e557600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184600183028401116401000000008311171561065457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f25945050505050565b610217600480360360208110156106ab57600080fd5b5035610f83565b610372600480360360208110156106c857600080fd5b5035611206565b61037261121d565b6102f1600480360360408110156106ed57600080fd5b50803590602001356001600160a01b0316611241565b6101fb6004803603604081101561071957600080fd5b506001600160a01b038135811691602001351661129a565b6001600160e01b0319811660009081526065602052604090205460ff165b919050565b609c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b60006107f5826114ee565b6108305760405162461bcd60e51b815260040180806020018281038252602c815260200180612907602c913960400191505060405180910390fd5b506000908152609a60205260409020546001600160a01b031690565b600061085782610c99565b9050806001600160a01b0316836001600160a01b031614156108aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806129b76021913960400191505060405180910390fd5b806001600160a01b03166108bc6114fb565b6001600160a01b031614806108dd57506108dd816108d86114fb565b61129a565b6109185760405162461bcd60e51b815260040180806020018281038252603881526020018061282c6038913960400191505060405180910390fd5b61092283836114ff565b505050565b6000610932846114ee565b61097b576040805162461bcd60e51b8152602060048201526015602482015274546f6b656e20646f6573206e6f742065786973747360581b604482015290519081900360640190fd5b610985338561156d565b6109d6576040805162461bcd60e51b815260206004820152601c60248201527f53656e6465722063616e206e6f742073657420746f6b656e2055524900000000604482015290519081900360640190fd5b610a168484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161192505050565b5060015b9392505050565b6000610a2d6098611674565b905090565b610a43610a3d6114fb565b8261156d565b610a7e5760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b61092283838361167f565b60009081526033602052604090206002015490565b600082815260336020526040902060020154610ac190610abc6114fb565b610da2565b610afc5760405162461bcd60e51b815260040180806020018281038252602f81526020018061274b602f913960400191505060405180910390fd5b610b0682826117cb565b5050565b6001600160a01b0382166000908152609760205260408120610b2c9083611834565b90505b92915050565b610b3d6114fb565b6001600160a01b0316816001600160a01b031614610b8c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a39602f913960400191505060405180910390fd5b610b068282611840565b610bc27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610abc6114fb565b610c0c576040805162461bcd60e51b815260206004820152601660248201527529b2b73232b91034b9903737ba10309026b4b73a32b960511b604482015290519081900360640190fd5b610b0682826118a9565b61092283838360405180602001604052806000815250610f25565b610c3c610a3d6114fb565b610c775760405162461bcd60e51b8152600401808060200182810382526030815260200180612a096030913960400191505060405180910390fd5b610c80816119d7565b50565b600080610c91609884611aa4565b509392505050565b6000610b2f8260405180606001604052806029815260200161288e6029913960989190611ac0565b609f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b60006001600160a01b038216610d695760405162461bcd60e51b815260040180806020018281038252602a815260200180612864602a913960400191505060405180910390fd5b6001600160a01b0382166000908152609760205260409020610b2f90611674565b6000828152603360205260408120610b2c9083611834565b6000828152603360205260408120610b2c9083611acd565b609d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107e05780601f106107b5576101008083540402835291602001916107e0565b600081565b610e286114fb565b6001600160a01b0316826001600160a01b03161415610e8e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80609b6000610e9b6114fb565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610edf6114fb565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f36610f306114fb565b8361156d565b610f715760405162461bcd60e51b81526004018080602001828103825260318152602001806129d86031913960400191505060405180910390fd5b610f7d84848484611ae2565b50505050565b6060610f8e826114ee565b610fc95760405162461bcd60e51b815260040180806020018281038252602f815260200180612988602f913960400191505060405180910390fd5b6000828152609e602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561105e5780601f106110335761010080835404028352916020019161105e565b820191906000526020600020905b81548152906001019060200180831161104157829003601f168201915b50505050509050606061106f610cc1565b90508051600014156110835750905061074f565b8151156111445780826040516020018083805190602001908083835b602083106110be5780518252601f19909201916020918201910161109f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111065780518252601f1990920191602091820191016110e7565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529250505061074f565b8061114e85611b34565b6040516020018083805190602001908083835b602083106111805780518252601f199092019160209182019101611161565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106111c85780518252601f1990920191602091820191016111a9565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050919050565b6000818152603360205260408120610b2f90611674565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b60008281526033602052604090206002015461125f90610abc6114fb565b610b8c5760405162461bcd60e51b81526004018080602001828103825260308152602001806127fc6030913960400191505060405180910390fd5b6001600160a01b039182166000908152609b6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16806112e157506112e1611c0f565b806112ef575060005460ff16155b61132a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611355576000805460ff1961ff0019909116610100171660011790555b61135d611c20565b611365611c20565b8015610c80576000805461ff001916905550565b600054610100900460ff16806113925750611392611c0f565b806113a0575060005460ff16155b6113db5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611406576000805460ff1961ff0019909116610100171660011790555b61140e611c20565b611416611cc0565b6114208383611d5d565b8015610922576000805461ff0019169055505050565b600054610100900460ff168061144f575061144f611c0f565b8061145d575060005460ff16155b6114985760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff161580156114c3576000805460ff1961ff0019909116610100171660011790555b6114cb611c20565b61135d611cc0565b3b151590565b6000610b2c836001600160a01b038416611e42565b6000610b2f609883611e8c565b3390565b6000818152609a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061153482610c99565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611578826114ee565b6115b35760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d0602c913960400191505060405180910390fd5b60006115be83610c99565b9050806001600160a01b0316846001600160a01b031614806115f95750836001600160a01b03166115ee846107ea565b6001600160a01b0316145b806116095750611609818561129a565b949350505050565b61161a826114ee565b6116555760405162461bcd60e51b815260040180806020018281038252602c815260200180612933602c913960400191505060405180910390fd5b6000828152609e60209081526040909120825161092292840190612655565b6000610b2f82611e98565b826001600160a01b031661169282610c99565b6001600160a01b0316146116d75760405162461bcd60e51b815260040180806020018281038252602981526020018061295f6029913960400191505060405180910390fd5b6001600160a01b03821661171c5760405162461bcd60e51b81526004018080602001828103825260248152602001806127ac6024913960400191505060405180910390fd5b611727838383610922565b6117326000826114ff565b6001600160a01b03831660009081526097602052604090206117549082611e9c565b506001600160a01b03821660009081526097602052604090206117779082611ea8565b5061178460988284611eb4565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008281526033602052604090206117e390826114d9565b15610b06576117f06114fb565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b2c8383611eca565b60008281526033602052604090206118589082611f2e565b15610b06576118656114fb565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b038216611904576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61190d816114ee565b1561195f576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b61196b60008383610922565b6001600160a01b038216600090815260976020526040902061198d9082611ea8565b5061199a60988284611eb4565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006119e282610c99565b90506119f081600084610922565b6119fb6000836114ff565b6000828152609e60205260409020546002600019610100600184161502019091160415611a39576000828152609e60205260408120611a39916126d3565b6001600160a01b0381166000908152609760205260409020611a5b9083611e9c565b50611a67609883611f43565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080611ab38686611f4f565b9097909650945050505050565b6000611609848484611fca565b6000610b2c836001600160a01b038416612094565b611aed84848461167f565b611af9848484846120ac565b610f7d5760405162461bcd60e51b815260040180806020018281038252603281526020018061277a6032913960400191505060405180910390fd5b606081611b5957506040805180820190915260018152600360fc1b602082015261074f565b8160005b8115611b7157600101600a82049150611b5d565b60608167ffffffffffffffff81118015611b8a57600080fd5b506040519080825280601f01601f191660200182016040528015611bb5576020820181803683370190505b50859350905060001982015b8315611c0657600a840660300160f81b82828060019003935081518110611be457fe5b60200101906001600160f81b031916908160001a905350600a84049350611bc1565b50949350505050565b6000611c1a306114d3565b15905090565b600054610100900460ff1680611c395750611c39611c0f565b80611c47575060005460ff16155b611c825760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611365576000805460ff1961ff0019909116610100171660011790558015610c80576000805461ff001916905550565b600054610100900460ff1680611cd95750611cd9611c0f565b80611ce7575060005460ff16155b611d225760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611d4d576000805460ff1961ff0019909116610100171660011790555b6113656301ffc9a760e01b612214565b600054610100900460ff1680611d765750611d76611c0f565b80611d84575060005460ff16155b611dbf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611dea576000805460ff1961ff0019909116610100171660011790555b8251611dfd90609c906020860190612655565b508151611e1190609d906020850190612655565b50611e226380ac58cd60e01b612214565b611e32635b5e139f60e01b612214565b61142063780e9d6360e01b612214565b6000611e4e8383612094565b611e8457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b2f565b506000610b2f565b6000610b2c8383612094565b5490565b6000610b2c8383612298565b6000610b2c8383611e42565b600061160984846001600160a01b03851661235e565b81546000908210611f0c5760405162461bcd60e51b81526004018080602001828103825260228152602001806127296022913960400191505060405180910390fd5b826000018281548110611f1b57fe5b9060005260206000200154905092915050565b6000610b2c836001600160a01b038416612298565b6000610b2c83836123f5565b815460009081908310611f935760405162461bcd60e51b81526004018080602001828103825260228152602001806128e56022913960400191505060405180910390fd5b6000846000018481548110611fa457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816120655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202a578181015183820152602001612012565b50505050905090810190601f1680156120575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061207857fe5b9060005260206000209060020201600101549150509392505050565b60009081526001919091016020526040902054151590565b60006120c0846001600160a01b03166114d3565b6120cc57506001611609565b60606121da630a85bd0160e11b6120e16114fb565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612148578181015183820152602001612130565b50505050905090810190601f1680156121755780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505060405180606001604052806032815260200161277a603291396001600160a01b03881691906124c9565b905060008180602001905160208110156121f357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6001600160e01b03198082161415612273576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152606560205260409020805460ff19166001179055565b6000818152600183016020526040812054801561235457835460001980830191908101906000908790839081106122cb57fe5b90600052602060002001549050808760000184815481106122e857fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061231857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610b2f565b6000915050610b2f565b6000828152600184016020526040812054806123c3575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610a1a565b828560000160018303815481106123d657fe5b9060005260206000209060020201600101819055506000915050610a1a565b60008181526001830160205260408120548015612354578354600019808301919081019060009087908390811061242857fe5b906000526020600020906002020190508087600001848154811061244857fe5b60009182526020808320845460029093020191825560019384015491840191909155835482528983019052604090209084019055865487908061248757fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450610b2f9350505050565b60606116098484600085856124dd856114d3565b61252e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061256d5780518252601f19909201916020918201910161254e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146125cf576040519150601f19603f3d011682016040523d82523d6000602084013e6125d4565b606091505b50915091506125e48282866125ef565b979650505050505050565b606083156125fe575081610a1a565b82511561260e5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561202a578181015183820152602001612012565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061269657805160ff19168380011785556126c3565b828001600101855582156126c3579182015b828111156126c35782518255916020019190600101906126a8565b506126cf929150612713565b5090565b50805460018160011615610100020316600290046000825580601f106126f95750610c80565b601f016020900490600052602060002090810190610c8091905b5b808211156126cf576000815560010161271456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a26469706673582212206cfed4af0d06c86fc24af2eff048829ddbcce69495200e80936dbbfb68bcbc3964736f6c634300060c0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba26469706673582212203dcb732cfab6450457532ede4a1839d6b27deedb542d9b799556400ffd8941ff64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.dbg.json new file mode 100644 index 000000000..00f5ae209 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.json new file mode 100644 index 000000000..dc9f032d5 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerEth.json @@ -0,0 +1,632 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManagerEth", + "sourceName": "contracts/schain/TokenManagers/TokenManagerEth.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AUTOMATIC_DEPLOY_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "addTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "automaticDeploy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "changeDepositBoxAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "communityLocker", + "outputs": [ + { + "internalType": "contract CommunityLocker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "depositBox", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "disableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableAutomaticDeploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "ethErc20", + "outputs": [ + { + "internalType": "contract EthErc20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "exitToMain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newChainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + }, + { + "internalType": "contract EthErc20", + "name": "ethErc20Address", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newSchainName", + "type": "string" + }, + { + "internalType": "contract MessageProxyForSchain", + "name": "newMessageProxy", + "type": "address" + }, + { + "internalType": "contract TokenManagerLinker", + "name": "newIMALinker", + "type": "address" + }, + { + "internalType": "contract CommunityLocker", + "name": "newCommunityLocker", + "type": "address" + }, + { + "internalType": "address", + "name": "newDepositBox", + "type": "address" + } + ], + "name": "initializeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract MessageProxyForSchain", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "schainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract EthErc20", + "name": "newEthErc20Address", + "type": "address" + } + ], + "name": "setEthErc20Address", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "tokenManagerLinker", + "outputs": [ + { + "internalType": "contract TokenManagerLinker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "targetSchainName", + "type": "string" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferToSchain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611fca806100206000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80638182e7071161010f578063c0e312dc116100a2578063d547741f11610071578063d547741f146103b9578063dec2deb6146103cc578063e4a9eaaf146103d4578063edcc12b5146103e7576101f0565b8063c0e312dc14610378578063ca15c8731461038b578063cb703bff1461039e578063cc5b715b146103b1576101f0565b806391d14854116100de57806391d148541461034d57806392d7846a14610360578063a217fddf14610368578063b9581c5014610370576101f0565b80638182e70714610301578063884cee5a146103145780638b71b4b5146103275780639010d07c1461033a576101f0565b80633b690b6b116101875780636ce681d2116101565780636ce681d2146102cb5780636d611286146102de5780636d6c68e6146102e657806372838baa146102ee576101f0565b80633b690b6b1461029e5780633fa194ce146102a657806350f44280146102ae5780635573b8b6146102c3576101f0565b80632dc151de116101c35780632dc151de146102505780632f2ff15d1461025857806336568abe1461026b57806339927cf91461027e576101f0565b8063029996b8146101f55780630f1a8f74146101ff578063248a9ca31461022857806328c5e18214610248575b600080fd5b6101fd6103fa565b005b61021261020d3660046115d4565b61044c565b60405161021f9190611985565b60405180910390f35b61023b6102363660046115d4565b610467565b60405161021f91906119bd565b61023b61047c565b6102126104c5565b6101fd6102663660046115ec565b6104d4565b6101fd6102793660046115ec565b61051c565b61029161028c3660046116b1565b61055e565b60405161021f91906119b2565b61023b6105bb565b61023b6105c1565b6102b66105d3565b60405161021f91906119c6565b6102126105f6565b6101fd6102d936600461179e565b610605565b610212610758565b610212610767565b6101fd6102fc366004611746565b610776565b6101fd61030f366004611826565b6108e9565b61029161032236600461161b565b61099a565b6101fd61033536600461158d565b610b25565b610212610348366004611675565b610b9c565b61029161035b3660046115ec565b610bbb565b610212610bd3565b61023b610be2565b6101fd610be7565b6101fd6103863660046116b1565b610c2a565b61023b6103993660046115d4565b610ce7565b6101fd6103ac3660046116f1565b610cfe565b61023b610df2565b6101fd6103c73660046115ec565b610e16565b610291610e50565b6101fd6103e23660046115a9565b610e60565b6101fd6103f536600461158d565b610f60565b610412600080516020611f7583398151915233610bbb565b6104375760405162461bcd60e51b815260040161042e90611bd4565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016104ac9190611969565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b6000828152603360205260409020600201546104f29061035b610fa9565b61050e5760405162461bcd60e51b815260040161042e90611a90565b6105188282610fad565b5050565b610524610fa9565b6001600160a01b0316816001600160a01b0316146105545760405162461bcd60e51b815260040161042e90611e59565b6105188282611016565b6000806001600160a01b0316606a60008585604051602001610581929190611959565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b600080516020611f7583398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff168061061e575061061e61107f565b8061062c575060005460ff16155b6106485760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff16158015610673576000805460ff1961ff0019909116610100171660011790555b61067b611090565b61068660003361050e565b61069e600080516020611f758339815191523361050e565b6106c87ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83361050e565b856040516020016106d99190611969565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015610750576000805461ff00191690555b505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6000836040516020016107899190611969565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b8483015291519193506107c9929101611969565b604051602081830303815290604052805190602001208114156107fe5760405162461bcd60e51b815260040161042e90611b4d565b6000818152606a60205260409020546001600160a01b03166108325760405162461bcd60e51b815260040161042e90611a17565b6001600160a01b0383166108585760405162461bcd60e51b815260040161042e90611d2f565b6108623383611123565b6065546000828152606a60205260409020546001600160a01b03918216916365e3781f91879116610893878761115b565b6040518463ffffffff1660e01b81526004016108b1939291906119d9565b600060405180830381600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b5050505050505050565b600054610100900460ff1680610902575061090261107f565b80610910575060005460ff16155b61092c5760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff16158015610957576000805460ff1961ff0019909116610100171660011790555b6109648787878787610605565b606b80546001600160a01b0319166001600160a01b0384161790558015610991576000805461ff00191690555b50505050505050565b6065546000906001600160a01b031633146109c75760405162461bcd60e51b815260040161042e90611adf565b6068548514158015610a5457506040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001610a049190611969565b604051602081830303815290604052805190602001208514610a42576000858152606a60205260409020546001600160a01b03858116911614610a54565b6069546001600160a01b038581169116145b610a705760405162461bcd60e51b815260040161042e90611d90565b610a78611495565b610a8284846111be565b60208101519091506001600160a01b038116610ab05760405162461bcd60e51b815260040161042e90611dfe565b606b5460408084015190516340c10f1960e01b81526001600160a01b03909216916340c10f1991610ae691859190600401611999565b600060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b5060019a9950505050505050505050565b610b30600033610bbb565b610b4c5760405162461bcd60e51b815260040161042e90611e2a565b606b546001600160a01b0382811691161415610b7a5760405162461bcd60e51b815260040161042e90611d66565b606b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152603360205260408120610bb49083611206565b9392505050565b6000828152603360205260408120610bb49083611212565b606b546001600160a01b031681565b600081565b610bff600080516020611f7583398151915233610bbb565b610c1b5760405162461bcd60e51b815260040161042e90611bd4565b6069805460ff60a01b19169055565b6066546001600160a01b0316331480610c495750610c49600033610bbb565b610c655760405162461bcd60e51b815260040161042e90611e2a565b60008282604051602001610c7a929190611959565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316610cc75760405162461bcd60e51b815260040161042e90611b9d565b6000908152606a6020526040902080546001600160a01b03191690555050565b60008181526033602052604081206105b590611227565b6066546001600160a01b0316331480610d1d5750610d1d600033610bbb565b610d395760405162461bcd60e51b815260040161042e90611e2a565b60008383604051602001610d4e929190611959565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031615610d9c5760405162461bcd60e51b815260040161042e90611dc7565b6001600160a01b038216610dc25760405162461bcd60e51b815260040161042e90611a17565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b600082815260336020526040902060020154610e349061035b610fa9565b6105545760405162461bcd60e51b815260040161042e90611c15565b606954600160a01b900460ff1681565b6001600160a01b038216610e865760405162461bcd60e51b815260040161042e90611d2f565b610e903382611123565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a90610ec0908590600401611985565b600060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b50506065546069546001600160a01b0391821693506365e3781f925016610f15858561115b565b6040518363ffffffff1660e01b8152600401610f32929190611ce8565b600060405180830381600087803b158015610f4c57600080fd5b505af1158015610750573d6000803e3d6000fd5b610f6b600033610bbb565b610f875760405162461bcd60e51b815260040161042e90611b16565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000828152603360205260409020610fc59082611232565b1561051857610fd2610fa9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260336020526040902061102e9082611247565b156105185761103b610fa9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061108a3061125c565b15905090565b600054610100900460ff16806110a957506110a961107f565b806110b7575060005460ff16155b6110d35760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff161580156110fe576000805460ff1961ff0019909116610100171660011790555b611106611262565b61110e611262565b8015611120576000805461ff00191690555b50565b801561051857606b546040516338b5bd8d60e21b81526001600160a01b039091169063e2d6f63490610f329085908590600401611999565b6060611165611495565b604080516080810190915280606081018060018152508152602001856001600160a01b03168152602001848152509050806040516020016111a69190611ea8565b60405160208183030381529060405291505092915050565b6111c6611495565b60016111d284846112e3565b600c8111156111dd57fe5b146111fa5760405162461bcd60e51b815260040161042e90611c65565b610bb4828401846118bf565b6000610bb48383611324565b6000610bb4836001600160a01b038416611369565b60006105b582611381565b6000610bb4836001600160a01b038416611385565b6000610bb4836001600160a01b0384166113cf565b3b151590565b600054610100900460ff168061127b575061127b61107f565b80611289575060005460ff16155b6112a55760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff1615801561110e576000805460ff1961ff0019909116610100171660011790558015611120576000805461ff001916905550565b6000806112f2838501856115d4565b9050602081066113185761131061130b84838188611f07565b6112e3565b9150506105b5565b61131083850185611696565b815460009082106113475760405162461bcd60e51b815260040161042e90611a4e565b82600001828154811061135657fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60006113918383611369565b6113c7575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105b5565b5060006105b5565b6000818152600183016020526040812054801561148b578354600019808301919081019060009087908390811061140257fe5b906000526020600020015490508087600001848154811061141f57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061144f57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105b5565b60009150506105b5565b60405180606001604052806114a86114bc565b815260006020820181905260409091015290565b60408051602081019091526000815290565b60008083601f8401126114df578182fd5b50813567ffffffffffffffff8111156114f6578182fd5b60208301915083602082850101111561150e57600080fd5b9250929050565b8035600d81106105b557600080fd5b600082601f830112611534578081fd5b813567ffffffffffffffff81111561154a578182fd5b61155d601f8201601f1916602001611ee0565b915080825283602082850101111561157457600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561159e578081fd5b8135610bb481611f5f565b600080604083850312156115bb578081fd5b82356115c681611f5f565b946020939093013593505050565b6000602082840312156115e5578081fd5b5035919050565b600080604083850312156115fe578182fd5b82359150602083013561161081611f5f565b809150509250929050565b60008060008060608587031215611630578182fd5b84359350602085013561164281611f5f565b9250604085013567ffffffffffffffff81111561165d578283fd5b611669878288016114ce565b95989497509550505050565b60008060408385031215611687578182fd5b50508035926020909101359150565b6000602082840312156116a7578081fd5b610bb48383611515565b600080602083850312156116c3578182fd5b823567ffffffffffffffff8111156116d9578283fd5b6116e5858286016114ce565b90969095509350505050565b600080600060408486031215611705578283fd5b833567ffffffffffffffff81111561171b578384fd5b611727868287016114ce565b909450925050602084013561173b81611f5f565b809150509250925092565b60008060006060848603121561175a578283fd5b833567ffffffffffffffff811115611770578384fd5b61177c86828701611524565b935050602084013561178d81611f5f565b929592945050506040919091013590565b600080600080600060a086880312156117b5578283fd5b853567ffffffffffffffff8111156117cb578384fd5b6117d788828901611524565b95505060208601356117e881611f5f565b935060408601356117f881611f5f565b9250606086013561180881611f5f565b9150608086013561181881611f5f565b809150509295509295909350565b60008060008060008060c0878903121561183e578384fd5b863567ffffffffffffffff811115611854578485fd5b61186089828a01611524565b965050602087013561187181611f5f565b9450604087013561188181611f5f565b9350606087013561189181611f5f565b925060808701356118a181611f5f565b915060a08701356118b181611f5f565b809150509295509295509295565b600081830360608112156118d1578182fd5b6118db6060611ee0565b60208212156118e8578283fd5b6118f26020611ee0565b91506118fe8585611515565b825290815260208301359061191282611f5f565b81602082015260408401356040820152809250505092915050565b60008151808452611945816020860160208601611f2f565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161197b818460208701611f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600060208252610bb4602083018461192d565b6000606082526119ec606083018661192d565b6001600160a01b03851660208401528281036040840152611a0d818561192d565b9695505050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f4d6573736167652074797065206973206e6f7420455448207472616e73666572604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060608252600760608301526613585a5b9b995d60ca1b608083015260018060a01b038416602083015260a06040830152611d2760a083018461192d565b949350505050565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b60208082526010908201526f5468652073616d65206164647265737360801b604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b60208082526012908201527124b731b7b93932b1ba103932b1b2b4bb32b960711b604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b8151516060820190600d8110611eba57fe5b82526020838101516001600160a01b031690830152604092830151929091019190915290565b60405181810167ffffffffffffffff81118282101715611eff57600080fd5b604052919050565b60008085851115611f16578182fd5b83861115611f22578182fd5b5050820193919092039150565b60005b83811015611f4a578181015183820152602001611f32565b83811115611f59576000848401525b50505050565b6001600160a01b038116811461112057600080fdfe7164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba2646970667358221220efde7fc38a3556c193046d11cb81323fb7f4529a06ea809d112822cf41fede0e64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80638182e7071161010f578063c0e312dc116100a2578063d547741f11610071578063d547741f146103b9578063dec2deb6146103cc578063e4a9eaaf146103d4578063edcc12b5146103e7576101f0565b8063c0e312dc14610378578063ca15c8731461038b578063cb703bff1461039e578063cc5b715b146103b1576101f0565b806391d14854116100de57806391d148541461034d57806392d7846a14610360578063a217fddf14610368578063b9581c5014610370576101f0565b80638182e70714610301578063884cee5a146103145780638b71b4b5146103275780639010d07c1461033a576101f0565b80633b690b6b116101875780636ce681d2116101565780636ce681d2146102cb5780636d611286146102de5780636d6c68e6146102e657806372838baa146102ee576101f0565b80633b690b6b1461029e5780633fa194ce146102a657806350f44280146102ae5780635573b8b6146102c3576101f0565b80632dc151de116101c35780632dc151de146102505780632f2ff15d1461025857806336568abe1461026b57806339927cf91461027e576101f0565b8063029996b8146101f55780630f1a8f74146101ff578063248a9ca31461022857806328c5e18214610248575b600080fd5b6101fd6103fa565b005b61021261020d3660046115d4565b61044c565b60405161021f9190611985565b60405180910390f35b61023b6102363660046115d4565b610467565b60405161021f91906119bd565b61023b61047c565b6102126104c5565b6101fd6102663660046115ec565b6104d4565b6101fd6102793660046115ec565b61051c565b61029161028c3660046116b1565b61055e565b60405161021f91906119b2565b61023b6105bb565b61023b6105c1565b6102b66105d3565b60405161021f91906119c6565b6102126105f6565b6101fd6102d936600461179e565b610605565b610212610758565b610212610767565b6101fd6102fc366004611746565b610776565b6101fd61030f366004611826565b6108e9565b61029161032236600461161b565b61099a565b6101fd61033536600461158d565b610b25565b610212610348366004611675565b610b9c565b61029161035b3660046115ec565b610bbb565b610212610bd3565b61023b610be2565b6101fd610be7565b6101fd6103863660046116b1565b610c2a565b61023b6103993660046115d4565b610ce7565b6101fd6103ac3660046116f1565b610cfe565b61023b610df2565b6101fd6103c73660046115ec565b610e16565b610291610e50565b6101fd6103e23660046115a9565b610e60565b6101fd6103f536600461158d565b610f60565b610412600080516020611f7583398151915233610bbb565b6104375760405162461bcd60e51b815260040161042e90611bd4565b60405180910390fd5b6069805460ff60a01b1916600160a01b179055565b606a602052600090815260409020546001600160a01b031681565b60009081526033602052604090206002015490565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016104ac9190611969565b6040516020818303038152906040528051906020012081565b6066546001600160a01b031681565b6000828152603360205260409020600201546104f29061035b610fa9565b61050e5760405162461bcd60e51b815260040161042e90611a90565b6105188282610fad565b5050565b610524610fa9565b6001600160a01b0316816001600160a01b0316146105545760405162461bcd60e51b815260040161042e90611e59565b6105188282611016565b6000806001600160a01b0316606a60008585604051602001610581929190611959565b60408051601f19818403018152918152815160209283012083529082019290925201600020546001600160a01b0316141590505b92915050565b60685481565b600080516020611f7583398151915281565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b600054610100900460ff168061061e575061061e61107f565b8061062c575060005460ff16155b6106485760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff16158015610673576000805460ff1961ff0019909116610100171660011790555b61067b611090565b61068660003361050e565b61069e600080516020611f758339815191523361050e565b6106c87ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba83361050e565b856040516020016106d99190611969565b60408051601f198184030181529190528051602090910120606855606580546001600160a01b038088166001600160a01b031992831617909255606680548784169083161790556067805486841690831617905560698054928516929091169190911790558015610750576000805461ff00191690555b505050505050565b6069546001600160a01b031681565b6067546001600160a01b031681565b6000836040516020016107899190611969565b60408051601f1981840301815282825280516020918201208383018352600784526613585a5b9b995d60ca1b8483015291519193506107c9929101611969565b604051602081830303815290604052805190602001208114156107fe5760405162461bcd60e51b815260040161042e90611b4d565b6000818152606a60205260409020546001600160a01b03166108325760405162461bcd60e51b815260040161042e90611a17565b6001600160a01b0383166108585760405162461bcd60e51b815260040161042e90611d2f565b6108623383611123565b6065546000828152606a60205260409020546001600160a01b03918216916365e3781f91879116610893878761115b565b6040518463ffffffff1660e01b81526004016108b1939291906119d9565b600060405180830381600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b5050505050505050565b600054610100900460ff1680610902575061090261107f565b80610910575060005460ff16155b61092c5760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff16158015610957576000805460ff1961ff0019909116610100171660011790555b6109648787878787610605565b606b80546001600160a01b0319166001600160a01b0384161790558015610991576000805461ff00191690555b50505050505050565b6065546000906001600160a01b031633146109c75760405162461bcd60e51b815260040161042e90611adf565b6068548514158015610a5457506040518060400160405280600781526020016613585a5b9b995d60ca1b815250604051602001610a049190611969565b604051602081830303815290604052805190602001208514610a42576000858152606a60205260409020546001600160a01b03858116911614610a54565b6069546001600160a01b038581169116145b610a705760405162461bcd60e51b815260040161042e90611d90565b610a78611495565b610a8284846111be565b60208101519091506001600160a01b038116610ab05760405162461bcd60e51b815260040161042e90611dfe565b606b5460408084015190516340c10f1960e01b81526001600160a01b03909216916340c10f1991610ae691859190600401611999565b600060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b5060019a9950505050505050505050565b610b30600033610bbb565b610b4c5760405162461bcd60e51b815260040161042e90611e2a565b606b546001600160a01b0382811691161415610b7a5760405162461bcd60e51b815260040161042e90611d66565b606b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152603360205260408120610bb49083611206565b9392505050565b6000828152603360205260408120610bb49083611212565b606b546001600160a01b031681565b600081565b610bff600080516020611f7583398151915233610bbb565b610c1b5760405162461bcd60e51b815260040161042e90611bd4565b6069805460ff60a01b19169055565b6066546001600160a01b0316331480610c495750610c49600033610bbb565b610c655760405162461bcd60e51b815260040161042e90611e2a565b60008282604051602001610c7a929190611959565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b0316610cc75760405162461bcd60e51b815260040161042e90611b9d565b6000908152606a6020526040902080546001600160a01b03191690555050565b60008181526033602052604081206105b590611227565b6066546001600160a01b0316331480610d1d5750610d1d600033610bbb565b610d395760405162461bcd60e51b815260040161042e90611e2a565b60008383604051602001610d4e929190611959565b60408051601f1981840301815291815281516020928301206000818152606a9093529120549091506001600160a01b031615610d9c5760405162461bcd60e51b815260040161042e90611dc7565b6001600160a01b038216610dc25760405162461bcd60e51b815260040161042e90611a17565b6000908152606a6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555050565b7ffda70c2cc66a36c14884ee85424961f51b1d92b4494751699b6d105b3bcbcba881565b600082815260336020526040902060020154610e349061035b610fa9565b6105545760405162461bcd60e51b815260040161042e90611c15565b606954600160a01b900460ff1681565b6001600160a01b038216610e865760405162461bcd60e51b815260040161042e90611d2f565b610e903382611123565b6067546040516311be333d60e11b81526001600160a01b039091169063237c667a90610ec0908590600401611985565b600060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b50506065546069546001600160a01b0391821693506365e3781f925016610f15858561115b565b6040518363ffffffff1660e01b8152600401610f32929190611ce8565b600060405180830381600087803b158015610f4c57600080fd5b505af1158015610750573d6000803e3d6000fd5b610f6b600033610bbb565b610f875760405162461bcd60e51b815260040161042e90611b16565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000828152603360205260409020610fc59082611232565b1561051857610fd2610fa9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260336020526040902061102e9082611247565b156105185761103b610fa9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061108a3061125c565b15905090565b600054610100900460ff16806110a957506110a961107f565b806110b7575060005460ff16155b6110d35760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff161580156110fe576000805460ff1961ff0019909116610100171660011790555b611106611262565b61110e611262565b8015611120576000805461ff00191690555b50565b801561051857606b546040516338b5bd8d60e21b81526001600160a01b039091169063e2d6f63490610f329085908590600401611999565b6060611165611495565b604080516080810190915280606081018060018152508152602001856001600160a01b03168152602001848152509050806040516020016111a69190611ea8565b60405160208183030381529060405291505092915050565b6111c6611495565b60016111d284846112e3565b600c8111156111dd57fe5b146111fa5760405162461bcd60e51b815260040161042e90611c65565b610bb4828401846118bf565b6000610bb48383611324565b6000610bb4836001600160a01b038416611369565b60006105b582611381565b6000610bb4836001600160a01b038416611385565b6000610bb4836001600160a01b0384166113cf565b3b151590565b600054610100900460ff168061127b575061127b61107f565b80611289575060005460ff16155b6112a55760405162461bcd60e51b815260040161042e90611c9a565b600054610100900460ff1615801561110e576000805460ff1961ff0019909116610100171660011790558015611120576000805461ff001916905550565b6000806112f2838501856115d4565b9050602081066113185761131061130b84838188611f07565b6112e3565b9150506105b5565b61131083850185611696565b815460009082106113475760405162461bcd60e51b815260040161042e90611a4e565b82600001828154811061135657fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60006113918383611369565b6113c7575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105b5565b5060006105b5565b6000818152600183016020526040812054801561148b578354600019808301919081019060009087908390811061140257fe5b906000526020600020015490508087600001848154811061141f57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061144f57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506105b5565b60009150506105b5565b60405180606001604052806114a86114bc565b815260006020820181905260409091015290565b60408051602081019091526000815290565b60008083601f8401126114df578182fd5b50813567ffffffffffffffff8111156114f6578182fd5b60208301915083602082850101111561150e57600080fd5b9250929050565b8035600d81106105b557600080fd5b600082601f830112611534578081fd5b813567ffffffffffffffff81111561154a578182fd5b61155d601f8201601f1916602001611ee0565b915080825283602082850101111561157457600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561159e578081fd5b8135610bb481611f5f565b600080604083850312156115bb578081fd5b82356115c681611f5f565b946020939093013593505050565b6000602082840312156115e5578081fd5b5035919050565b600080604083850312156115fe578182fd5b82359150602083013561161081611f5f565b809150509250929050565b60008060008060608587031215611630578182fd5b84359350602085013561164281611f5f565b9250604085013567ffffffffffffffff81111561165d578283fd5b611669878288016114ce565b95989497509550505050565b60008060408385031215611687578182fd5b50508035926020909101359150565b6000602082840312156116a7578081fd5b610bb48383611515565b600080602083850312156116c3578182fd5b823567ffffffffffffffff8111156116d9578283fd5b6116e5858286016114ce565b90969095509350505050565b600080600060408486031215611705578283fd5b833567ffffffffffffffff81111561171b578384fd5b611727868287016114ce565b909450925050602084013561173b81611f5f565b809150509250925092565b60008060006060848603121561175a578283fd5b833567ffffffffffffffff811115611770578384fd5b61177c86828701611524565b935050602084013561178d81611f5f565b929592945050506040919091013590565b600080600080600060a086880312156117b5578283fd5b853567ffffffffffffffff8111156117cb578384fd5b6117d788828901611524565b95505060208601356117e881611f5f565b935060408601356117f881611f5f565b9250606086013561180881611f5f565b9150608086013561181881611f5f565b809150509295509295909350565b60008060008060008060c0878903121561183e578384fd5b863567ffffffffffffffff811115611854578485fd5b61186089828a01611524565b965050602087013561187181611f5f565b9450604087013561188181611f5f565b9350606087013561189181611f5f565b925060808701356118a181611f5f565b915060a08701356118b181611f5f565b809150509295509295509295565b600081830360608112156118d1578182fd5b6118db6060611ee0565b60208212156118e8578283fd5b6118f26020611ee0565b91506118fe8585611515565b825290815260208301359061191282611f5f565b81602082015260408401356040820152809250505092915050565b60008151808452611945816020860160208601611f2f565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161197b818460208701611f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600060208252610bb4602083018461192d565b6000606082526119ec606083018661192d565b6001600160a01b03851660208401528281036040840152611a0d818561192d565b9695505050505050565b6020808252601f908201527f496e636f727265637420546f6b656e204d616e61676572206164647265737300604082015260600190565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601c908201527f53656e646572206973206e6f742061204d65737361676550726f787900000000604082015260600190565b6020808252601e908201527f44454641554c545f41444d494e5f524f4c452069732072657175697265640000604082015260600190565b60208082526030908201527f546869732066756e6374696f6e206973206e6f7420666f72207472616e73666560408201526f1c9c9a5b99c81d1bc813585a5b9b995d60821b606082015260800190565b60208082526018908201527f546f6b656e204d616e61676572206973206e6f74207365740000000000000000604082015260600190565b60208082526021908201527f4155544f4d415449435f4445504c4f595f524f4c4520697320726571756972656040820152601960fa1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f4d6573736167652074797065206973206e6f7420455448207472616e73666572604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060608252600760608301526613585a5b9b995d60ca1b608083015260018060a01b038416602083015260a06040830152611d2760a083018461192d565b949350505050565b6020808252601a908201527f496e636f72726563742072656365697665722061646472657373000000000000604082015260600190565b60208082526010908201526f5468652073616d65206164647265737360801b604082015260600190565b6020808252601b908201527f526563656976657220636861696e20697320696e636f72726563740000000000604082015260600190565b6020808252601c908201527f546f6b656e204d616e6167657220697320616c72656164792073657400000000604082015260600190565b60208082526012908201527124b731b7b93932b1ba103932b1b2b4bb32b960711b604082015260600190565b6020808252601590820152742737ba1030baba3437b934bd32b21031b0b63632b960591b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b8151516060820190600d8110611eba57fe5b82526020838101516001600160a01b031690830152604092830151929091019190915290565b60405181810167ffffffffffffffff81118282101715611eff57600080fd5b604052919050565b60008085851115611f16578182fd5b83861115611f22578182fd5b5050820193919092039150565b60005b83811015611f4a578181015183820152602001611f32565b83811115611f59576000848401525b50505050565b6001600160a01b038116811461112057600080fdfe7164765a3c8bd2513bdfa0c90f1bee9606e920fbf2c9071f310263fbd818684ba2646970667358221220efde7fc38a3556c193046d11cb81323fb7f4529a06ea809d112822cf41fede0e64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.dbg.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.dbg.json new file mode 100644 index 000000000..8431fa57a --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/09335595e801237ae04fc28c9dd0abe9.json" +} diff --git a/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.json b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.json new file mode 100644 index 000000000..da82ccba6 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/artifacts/TokenManagerLinker.json @@ -0,0 +1,491 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenManagerLinker", + "sourceName": "contracts/schain/TokenManagerLinker.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isAllowed", + "type": "bool" + } + ], + "name": "InterchainConnectionAllowed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_HASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAINNET_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRAR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + }, + { + "internalType": "address[]", + "name": "tokenManagerAddresses", + "type": "address[]" + } + ], + "name": "connectSchain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "disconnectSchain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "schainName", + "type": "string" + } + ], + "name": "hasSchain", + "outputs": [ + { + "internalType": "bool", + "name": "connected", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TokenManager", + "name": "tokenManager", + "type": "address" + } + ], + "name": "hasTokenManager", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IMessageProxy", + "name": "newMessageProxyAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "linker", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "interchainConnections", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "linkerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "messageProxy", + "outputs": [ + { + "internalType": "contract IMessageProxy", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fromChainHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "postMessage", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TokenManager", + "name": "newTokenManager", + "type": "address" + } + ], + "name": "registerTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TokenManager", + "name": "tokenManagerAddress", + "type": "address" + } + ], + "name": "removeTokenManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "tokenManagers", + "outputs": [ + { + "internalType": "contract TokenManager", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611b09806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80635573b8b6116100c3578063b4fd8e141161007c578063b4fd8e1414610292578063b9727f96146102a5578063ca15c873146102b8578063d547741f146102cb578063e953c992146102de578063f68e9553146102f15761014d565b80635573b8b61461024157806364a5142f14610249578063884cee5a146102515780639010d07c1461026457806391d1485414610277578063a217fddf1461028a5761014d565b8063291f60d311610115578063291f60d3146101c05780632f2ff15d146101d357806336568abe146101e657806341ecadf9146101f9578063485cc9551461021957806350f442801461022c5761014d565b8063041f4c9b146101525780630f4ef5fd1461017b578063173df64b14610183578063248a9ca31461019857806328c5e182146101b8575b600080fd5b6101656101603660046113f3565b6102f9565b6040516101729190611582565b60405180910390f35b610165610447565b6101966101913660046113f3565b610450565b005b6101ab6101a63660046112e9565b61058b565b604051610172919061158d565b6101ab6105a3565b6101966101ce3660046112aa565b6105ec565b6101966101e1366004611301565b610672565b6101966101f4366004611301565b6106ba565b61020c6102073660046112e9565b6106fc565b604051610172919061156e565b6101966102273660046113ab565b610723565b610234610803565b60405161017291906115d6565b61020c610826565b61020c610835565b61016561025f366004611330565b610844565b61020c61027236600461138a565b6109d5565b610165610285366004611301565b6109f6565b6101ab610a0e565b6101966102a0366004611433565b610a13565b6101966102b33660046112aa565b610ba6565b6101ab6102c63660046112e9565b610ce3565b6101966102d9366004611301565b610cfa565b6101656102ec3660046112aa565b610d34565b6101ab610d97565b60675460019060005b818110156103b4578280156103aa57506067818154811061031f57fe5b6000918252602090912001546040516339927cf960e01b81526001600160a01b03909116906339927cf99061035a9088908890600401611596565b60206040518083038186803b15801561037257600080fd5b505afa158015610386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103aa91906112cd565b9250600101610302565b5081801561043f5750606554604051634ccd5cd560e11b81526001600160a01b039091169063999ab9aa906103ef9087908790600401611596565b60206040518083038186803b15801561040757600080fd5b505afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f91906112cd565b949350505050565b60685460ff1681565b610468600080516020611ab4833981519152336109f6565b61048d5760405162461bcd60e51b815260040161048490611718565b60405180910390fd5b60675460005b8181101561052157606781815481106104a857fe5b600091825260209091200154604051633038c4b760e21b81526001600160a01b039091169063c0e312dc906104e39087908790600401611596565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050600190920191506104939050565b50606554604051633cdd2cc360e01b81526001600160a01b0390911690633cdd2cc3906105549086908690600401611596565b600060405180830381600087803b15801561056e57600080fd5b505af1158015610582573d6000803e3d6000fd5b50505050505050565b6000818152603360205260409020600201545b919050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016105d39190611552565b6040516020818303038152906040528051906020012081565b610604600080516020611ab4833981519152336109f6565b6106205760405162461bcd60e51b815260040161048490611718565b606780546001810182556000919091527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0180546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526033602052604090206002015461069090610285610da9565b6106ac5760405162461bcd60e51b81526004016104849061164b565b6106b68282610dad565b5050565b6106c2610da9565b6001600160a01b0316816001600160a01b0316146106f25760405162461bcd60e51b8152600401610484906119c2565b6106b68282610e16565b6067818154811061070957fe5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff168061073c575061073c610e7f565b8061074a575060005460ff16155b6107665760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610791576000805460ff1961ff0019909116610100171660011790555b610799610e90565b6107a46000336106ac565b6107bc600080516020611ab4833981519152336106ac565b606580546001600160a01b038086166001600160a01b031992831617909255606680549285169290911691909117905580156107fe576000805461ff00191690555b505050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b6066546001600160a01b031681565b6065546000906001600160a01b031633146108715760405162461bcd60e51b81526004016104849061198b565b6066546001600160a01b0385811691161461089e5760405162461bcd60e51b81526004016104849061169a565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016108ce9190611552565b6040516020818303038152906040528051906020012085146109025760405162461bcd60e51b815260040161048490611833565b600061090e8484610f23565b9050600881600c81111561091e57fe5b1461093b5760405162461bcd60e51b81526004016104849061174f565b610943611222565b61094d8585610f64565b6020810151606854919250151560ff9091161515141561097f5760405162461bcd60e51b81526004016104849061193c565b60208101516068805460ff19168215151790556040517fce4347a8c71d04a62f940154f3607d6a42f153b91cb09d9ec71356d2b36beb32916109c091611582565b60405180910390a15060019695505050505050565b60008281526033602052604081206109ed9083610fac565b90505b92915050565b60008281526033602052604081206109ed9083610fb8565b600081565b610a2b600080516020611ab4833981519152336109f6565b610a475760405162461bcd60e51b815260040161048490611718565b60685460ff16610a695760405162461bcd60e51b8152600401610484906118c4565b6067548114610a8a5760405162461bcd60e51b815260040161048490611905565b60005b81811015610b3b5760678181548110610aa257fe5b6000918252602090912001546001600160a01b031663cb703bff8686868686818110610aca57fe5b9050602002016020810190610adf91906112aa565b6040518463ffffffff1660e01b8152600401610afd939291906115aa565b600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505060019092019150610a8d9050565b5060655460405163f2f6360560e01b81526001600160a01b039091169063f2f6360590610b6e9087908790600401611596565b600060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b5050505050505050565b610bbe600080516020611ab4833981519152336109f6565b610bda5760405162461bcd60e51b815260040161048490611718565b6067546000905b80821015610c2b57826001600160a01b031660678381548110610c0057fe5b6000918252602090912001546001600160a01b03161415610c2057610c2b565b600190910190610be1565b808210156107fe57610c3e816001610fcd565b821015610cb1576067610c52826001610fcd565b81548110610c5c57fe5b600091825260209091200154606780546001600160a01b039092169184908110610c8257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6067805480610cbc57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b60008181526033602052604081206109f090610ff5565b600082815260336020526040902060020154610d1890610285610da9565b6106f25760405162461bcd60e51b8152600401610484906117e3565b60675460009081905b80821015610d8d57836001600160a01b031660678381548110610d5c57fe5b6000918252602090912001546001600160a01b03161415610d825760019250505061059e565b600190910190610d3d565b5060009392505050565b600080516020611ab483398151915281565b3390565b6000828152603360205260409020610dc59082611000565b156106b657610dd2610da9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610e2e9082611015565b156106b657610e3b610da9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610e8a3061102a565b15905090565b600054610100900460ff1680610ea95750610ea9610e7f565b80610eb7575060005460ff16155b610ed35760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610efe576000805460ff1961ff0019909116610100171660011790555b610f06611030565b610f0e611030565b8015610f20576000805461ff00191690555b50565b600080610f32838501856112e9565b905060208106610f5857610f50610f4b84838188611a38565b610f23565b9150506109f0565b610f50838501856113d8565b610f6c611222565b6008610f788484610f23565b600c811115610f8357fe5b14610fa05760405162461bcd60e51b8152600401610484906116cf565b6109ed828401846114c6565b60006109ed83836110b1565b60006109ed836001600160a01b0384166110f6565b600082821115610fef5760405162461bcd60e51b8152600401610484906117ac565b50900390565b60006109f08261110e565b60006109ed836001600160a01b038416611112565b60006109ed836001600160a01b03841661115c565b3b151590565b600054610100900460ff16806110495750611049610e7f565b80611057575060005460ff16155b6110735760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610f0e576000805460ff1961ff0019909116610100171660011790558015610f20576000805461ff001916905550565b815460009082106110d45760405162461bcd60e51b815260040161048490611609565b8260000182815481106110e357fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600061111e83836110f6565b611154575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109f0565b5060006109f0565b60008181526001830160205260408120548015611218578354600019808301919081019060009087908390811061118f57fe5b90600052602060002001549050808760000184815481106111ac57fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806111dc57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506109f0565b60009150506109f0565b6040518060400160405280611235611242565b8152600060209091015290565b60408051602081019091526000815290565b60008083601f840112611265578182fd5b50813567ffffffffffffffff81111561127c578182fd5b60208301915083602082850101111561129457600080fd5b9250929050565b8035600d81106109f057600080fd5b6000602082840312156112bb578081fd5b81356112c681611a90565b9392505050565b6000602082840312156112de578081fd5b81516112c681611aa5565b6000602082840312156112fa578081fd5b5035919050565b60008060408385031215611313578081fd5b82359150602083013561132581611a90565b809150509250929050565b60008060008060608587031215611345578182fd5b84359350602085013561135781611a90565b9250604085013567ffffffffffffffff811115611372578283fd5b61137e87828801611254565b95989497509550505050565b6000806040838503121561139c578182fd5b50508035926020909101359150565b600080604083850312156113bd578182fd5b82356113c881611a90565b9150602083013561132581611a90565b6000602082840312156113e9578081fd5b6109ed838361129b565b60008060208385031215611405578182fd5b823567ffffffffffffffff81111561141b578283fd5b61142785828601611254565b90969095509350505050565b60008060008060408587031215611448578384fd5b843567ffffffffffffffff8082111561145f578586fd5b61146b88838901611254565b90965094506020870135915080821115611483578384fd5b818701915087601f830112611496578384fd5b8135818111156114a4578485fd5b88602080830285010111156114b7578485fd5b95989497505060200194505050565b600081830360408112156114d8578182fd5b6114e26040611a11565b60208212156114ef578283fd5b6114f96020611a11565b9150611505858561129b565b825290815260208301359061151982611aa5565b60208101919091529392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611564818460208701611a60565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60006020825261043f602083018486611528565b6000604082526115be604083018587611528565b905060018060a01b0383166020830152949350505050565b60006020825282518060208401526115f5816040850160208701611a60565b601f01601f19169190910160400192915050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252818101527f53656e6465722066726f6d204d61696e6e657420697320696e636f7272656374604082015260600190565b60208082526029908201527f4d6573736167652074797065206973206e6f7420496e746572636861696e206360408201526837b73732b1ba34b7b760b91b606082015260800190565b6020808252601a908201527f5245474953545241525f524f4c45206973207265717569726564000000000000604082015260600190565b60208082526038908201527f546865206d6573736167652073686f756c6420636f6e7461696e206120696e7460408201527f6572636861696e20636f6e6e656374696f6e2073746174650000000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526023908201527f536f7572636520636861696e206e616d652073686f756c64206265204d61696e6040820152621b995d60ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f496e746572636861696e20636f6e6e656374696f6e206e6f7420616c6c6f77656040820152601960fa1b606082015260800190565b6020808252601d908201527f496e636f7272656374206e756d626572206f6620616464726573736573000000604082015260600190565b6020808252602f908201527f496e746572636861696e20636f6e6e656374696f6e2073746174652073686f7560408201526e1b1908189948191a5999995c995b9d608a1b606082015260800190565b6020808252601d908201527f53656e646572206973206e6f742061206d6573736167652070726f7879000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60405181810167ffffffffffffffff81118282101715611a3057600080fd5b604052919050565b60008085851115611a47578182fd5b83861115611a53578182fd5b5050820193919092039150565b60005b83811015611a7b578181015183820152602001611a63565b83811115611a8a576000848401525b50505050565b6001600160a01b0381168114610f2057600080fd5b8015158114610f2057600080fdfeedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238a2646970667358221220b5eb8c3b77cbd30cbf8084a2c674c7f133c5691aa16514e744eed381a945dd0864736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80635573b8b6116100c3578063b4fd8e141161007c578063b4fd8e1414610292578063b9727f96146102a5578063ca15c873146102b8578063d547741f146102cb578063e953c992146102de578063f68e9553146102f15761014d565b80635573b8b61461024157806364a5142f14610249578063884cee5a146102515780639010d07c1461026457806391d1485414610277578063a217fddf1461028a5761014d565b8063291f60d311610115578063291f60d3146101c05780632f2ff15d146101d357806336568abe146101e657806341ecadf9146101f9578063485cc9551461021957806350f442801461022c5761014d565b8063041f4c9b146101525780630f4ef5fd1461017b578063173df64b14610183578063248a9ca31461019857806328c5e182146101b8575b600080fd5b6101656101603660046113f3565b6102f9565b6040516101729190611582565b60405180910390f35b610165610447565b6101966101913660046113f3565b610450565b005b6101ab6101a63660046112e9565b61058b565b604051610172919061158d565b6101ab6105a3565b6101966101ce3660046112aa565b6105ec565b6101966101e1366004611301565b610672565b6101966101f4366004611301565b6106ba565b61020c6102073660046112e9565b6106fc565b604051610172919061156e565b6101966102273660046113ab565b610723565b610234610803565b60405161017291906115d6565b61020c610826565b61020c610835565b61016561025f366004611330565b610844565b61020c61027236600461138a565b6109d5565b610165610285366004611301565b6109f6565b6101ab610a0e565b6101966102a0366004611433565b610a13565b6101966102b33660046112aa565b610ba6565b6101ab6102c63660046112e9565b610ce3565b6101966102d9366004611301565b610cfa565b6101656102ec3660046112aa565b610d34565b6101ab610d97565b60675460019060005b818110156103b4578280156103aa57506067818154811061031f57fe5b6000918252602090912001546040516339927cf960e01b81526001600160a01b03909116906339927cf99061035a9088908890600401611596565b60206040518083038186803b15801561037257600080fd5b505afa158015610386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103aa91906112cd565b9250600101610302565b5081801561043f5750606554604051634ccd5cd560e11b81526001600160a01b039091169063999ab9aa906103ef9087908790600401611596565b60206040518083038186803b15801561040757600080fd5b505afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f91906112cd565b949350505050565b60685460ff1681565b610468600080516020611ab4833981519152336109f6565b61048d5760405162461bcd60e51b815260040161048490611718565b60405180910390fd5b60675460005b8181101561052157606781815481106104a857fe5b600091825260209091200154604051633038c4b760e21b81526001600160a01b039091169063c0e312dc906104e39087908790600401611596565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050600190920191506104939050565b50606554604051633cdd2cc360e01b81526001600160a01b0390911690633cdd2cc3906105549086908690600401611596565b600060405180830381600087803b15801561056e57600080fd5b505af1158015610582573d6000803e3d6000fd5b50505050505050565b6000818152603360205260409020600201545b919050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016105d39190611552565b6040516020818303038152906040528051906020012081565b610604600080516020611ab4833981519152336109f6565b6106205760405162461bcd60e51b815260040161048490611718565b606780546001810182556000919091527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0180546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526033602052604090206002015461069090610285610da9565b6106ac5760405162461bcd60e51b81526004016104849061164b565b6106b68282610dad565b5050565b6106c2610da9565b6001600160a01b0316816001600160a01b0316146106f25760405162461bcd60e51b8152600401610484906119c2565b6106b68282610e16565b6067818154811061070957fe5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff168061073c575061073c610e7f565b8061074a575060005460ff16155b6107665760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610791576000805460ff1961ff0019909116610100171660011790555b610799610e90565b6107a46000336106ac565b6107bc600080516020611ab4833981519152336106ac565b606580546001600160a01b038086166001600160a01b031992831617909255606680549285169290911691909117905580156107fe576000805461ff00191690555b505050565b6040518060400160405280600781526020016613585a5b9b995d60ca1b81525081565b6065546001600160a01b031681565b6066546001600160a01b031681565b6065546000906001600160a01b031633146108715760405162461bcd60e51b81526004016104849061198b565b6066546001600160a01b0385811691161461089e5760405162461bcd60e51b81526004016104849061169a565b6040518060400160405280600781526020016613585a5b9b995d60ca1b8152506040516020016108ce9190611552565b6040516020818303038152906040528051906020012085146109025760405162461bcd60e51b815260040161048490611833565b600061090e8484610f23565b9050600881600c81111561091e57fe5b1461093b5760405162461bcd60e51b81526004016104849061174f565b610943611222565b61094d8585610f64565b6020810151606854919250151560ff9091161515141561097f5760405162461bcd60e51b81526004016104849061193c565b60208101516068805460ff19168215151790556040517fce4347a8c71d04a62f940154f3607d6a42f153b91cb09d9ec71356d2b36beb32916109c091611582565b60405180910390a15060019695505050505050565b60008281526033602052604081206109ed9083610fac565b90505b92915050565b60008281526033602052604081206109ed9083610fb8565b600081565b610a2b600080516020611ab4833981519152336109f6565b610a475760405162461bcd60e51b815260040161048490611718565b60685460ff16610a695760405162461bcd60e51b8152600401610484906118c4565b6067548114610a8a5760405162461bcd60e51b815260040161048490611905565b60005b81811015610b3b5760678181548110610aa257fe5b6000918252602090912001546001600160a01b031663cb703bff8686868686818110610aca57fe5b9050602002016020810190610adf91906112aa565b6040518463ffffffff1660e01b8152600401610afd939291906115aa565b600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505060019092019150610a8d9050565b5060655460405163f2f6360560e01b81526001600160a01b039091169063f2f6360590610b6e9087908790600401611596565b600060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b5050505050505050565b610bbe600080516020611ab4833981519152336109f6565b610bda5760405162461bcd60e51b815260040161048490611718565b6067546000905b80821015610c2b57826001600160a01b031660678381548110610c0057fe5b6000918252602090912001546001600160a01b03161415610c2057610c2b565b600190910190610be1565b808210156107fe57610c3e816001610fcd565b821015610cb1576067610c52826001610fcd565b81548110610c5c57fe5b600091825260209091200154606780546001600160a01b039092169184908110610c8257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6067805480610cbc57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b60008181526033602052604081206109f090610ff5565b600082815260336020526040902060020154610d1890610285610da9565b6106f25760405162461bcd60e51b8152600401610484906117e3565b60675460009081905b80821015610d8d57836001600160a01b031660678381548110610d5c57fe5b6000918252602090912001546001600160a01b03161415610d825760019250505061059e565b600190910190610d3d565b5060009392505050565b600080516020611ab483398151915281565b3390565b6000828152603360205260409020610dc59082611000565b156106b657610dd2610da9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020610e2e9082611015565b156106b657610e3b610da9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610e8a3061102a565b15905090565b600054610100900460ff1680610ea95750610ea9610e7f565b80610eb7575060005460ff16155b610ed35760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610efe576000805460ff1961ff0019909116610100171660011790555b610f06611030565b610f0e611030565b8015610f20576000805461ff00191690555b50565b600080610f32838501856112e9565b905060208106610f5857610f50610f4b84838188611a38565b610f23565b9150506109f0565b610f50838501856113d8565b610f6c611222565b6008610f788484610f23565b600c811115610f8357fe5b14610fa05760405162461bcd60e51b8152600401610484906116cf565b6109ed828401846114c6565b60006109ed83836110b1565b60006109ed836001600160a01b0384166110f6565b600082821115610fef5760405162461bcd60e51b8152600401610484906117ac565b50900390565b60006109f08261110e565b60006109ed836001600160a01b038416611112565b60006109ed836001600160a01b03841661115c565b3b151590565b600054610100900460ff16806110495750611049610e7f565b80611057575060005460ff16155b6110735760405162461bcd60e51b815260040161048490611876565b600054610100900460ff16158015610f0e576000805460ff1961ff0019909116610100171660011790558015610f20576000805461ff001916905550565b815460009082106110d45760405162461bcd60e51b815260040161048490611609565b8260000182815481106110e357fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600061111e83836110f6565b611154575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109f0565b5060006109f0565b60008181526001830160205260408120548015611218578354600019808301919081019060009087908390811061118f57fe5b90600052602060002001549050808760000184815481106111ac57fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806111dc57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506109f0565b60009150506109f0565b6040518060400160405280611235611242565b8152600060209091015290565b60408051602081019091526000815290565b60008083601f840112611265578182fd5b50813567ffffffffffffffff81111561127c578182fd5b60208301915083602082850101111561129457600080fd5b9250929050565b8035600d81106109f057600080fd5b6000602082840312156112bb578081fd5b81356112c681611a90565b9392505050565b6000602082840312156112de578081fd5b81516112c681611aa5565b6000602082840312156112fa578081fd5b5035919050565b60008060408385031215611313578081fd5b82359150602083013561132581611a90565b809150509250929050565b60008060008060608587031215611345578182fd5b84359350602085013561135781611a90565b9250604085013567ffffffffffffffff811115611372578283fd5b61137e87828801611254565b95989497509550505050565b6000806040838503121561139c578182fd5b50508035926020909101359150565b600080604083850312156113bd578182fd5b82356113c881611a90565b9150602083013561132581611a90565b6000602082840312156113e9578081fd5b6109ed838361129b565b60008060208385031215611405578182fd5b823567ffffffffffffffff81111561141b578283fd5b61142785828601611254565b90969095509350505050565b60008060008060408587031215611448578384fd5b843567ffffffffffffffff8082111561145f578586fd5b61146b88838901611254565b90965094506020870135915080821115611483578384fd5b818701915087601f830112611496578384fd5b8135818111156114a4578485fd5b88602080830285010111156114b7578485fd5b95989497505060200194505050565b600081830360408112156114d8578182fd5b6114e26040611a11565b60208212156114ef578283fd5b6114f96020611a11565b9150611505858561129b565b825290815260208301359061151982611aa5565b60208101919091529392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611564818460208701611a60565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60006020825261043f602083018486611528565b6000604082526115be604083018587611528565b905060018060a01b0383166020830152949350505050565b60006020825282518060208401526115f5816040850160208701611a60565b601f01601f19169190910160400192915050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252818101527f53656e6465722066726f6d204d61696e6e657420697320696e636f7272656374604082015260600190565b60208082526029908201527f4d6573736167652074797065206973206e6f7420496e746572636861696e206360408201526837b73732b1ba34b7b760b91b606082015260800190565b6020808252601a908201527f5245474953545241525f524f4c45206973207265717569726564000000000000604082015260600190565b60208082526038908201527f546865206d6573736167652073686f756c6420636f6e7461696e206120696e7460408201527f6572636861696e20636f6e6e656374696f6e2073746174650000000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526023908201527f536f7572636520636861696e206e616d652073686f756c64206265204d61696e6040820152621b995d60ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f496e746572636861696e20636f6e6e656374696f6e206e6f7420616c6c6f77656040820152601960fa1b606082015260800190565b6020808252601d908201527f496e636f7272656374206e756d626572206f6620616464726573736573000000604082015260600190565b6020808252602f908201527f496e746572636861696e20636f6e6e656374696f6e2073746174652073686f7560408201526e1b1908189948191a5999995c995b9d608a1b606082015260800190565b6020808252601d908201527f53656e646572206973206e6f742061206d6573736167652070726f7879000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60405181810167ffffffffffffffff81118282101715611a3057600080fd5b604052919050565b60008085851115611a47578182fd5b83861115611a53578182fd5b5050820193919092039150565b60005b83811015611a7b578181015183820152602001611a63565b83811115611a8a576000848401525b50505050565b6001600160a01b0381168114610f2057600080fd5b8015158114610f2057600080fdfeedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238a2646970667358221220b5eb8c3b77cbd30cbf8084a2c674c7f133c5691aa16514e744eed381a945dd0864736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/predeployed/build/lib/ima_predeployed/contract_generator.py b/predeployed/build/lib/ima_predeployed/contract_generator.py new file mode 100644 index 000000000..217a702fa --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contract_generator.py @@ -0,0 +1,99 @@ +import json +import os +from web3 import Web3 + + +def to_even_length(hex_string: str) -> str: + assert hex_string.startswith('0x') + if len(hex_string) % 2 != 0: + return "0x0" + hex_string[2:] + else: + return hex_string + + +def add_0x(bytes_string: str) -> str: + if bytes_string.startswith('0x'): + return bytes_string + else: + return '0x' + bytes_string + + +def calculate_mapping_value_slot(slot: int, key: any, key_type: str) -> int: + return int.from_bytes(Web3.solidityKeccak([key_type, 'uint256'], [key, slot]), 'big') + + +def calculate_array_value_slot(slot: int, index: int) -> int: + return int.from_bytes(Web3.solidityKeccak(['uint256'], [slot]), 'big') + index + + +def next_slot(previous_slot: int) -> int: + return previous_slot + 1 + + +class ContractGenerator: + def __init__(self, artifact_filename: str): + artifacts_dir = os.path.join(os.path.dirname(__file__), 'artifacts') + artifacts_path = os.path.join(artifacts_dir, artifact_filename) + with open(artifacts_path, encoding='utf-8') as fp: + contract = json.load(fp) + self.bytecode = contract['deployedBytecode'] + self.storage = {} + + def generate_contract(self, balance: int = 0, nonce: int = 0) -> dict: + assert isinstance(self.bytecode, str) + assert isinstance(self.storage, dict) + contract = { + 'code': self.bytecode, + 'balance': str(balance) + } + if self.storage: + contract['storage'] = self.storage + if nonce > 0: + contract['nonce'] = nonce + return contract + + # private + + def _write_address(self, slot: int, address: str) -> None: + self.storage[to_even_length(hex(slot))] = address.lower() + + def _write_bytes32(self, slot: int, data: bytes) -> None: + assert len(data) <= 32 + self.storage[to_even_length(hex(slot))] = to_even_length(add_0x(data.hex())) + + def _write_uint256(self, slot: int, value: int) -> None: + self.storage[to_even_length(hex(slot))] = to_even_length(add_0x(hex(value))) + + def _setup_role(self, slot: int, role: bytes, accounts: [str]): + role_data_slot = calculate_mapping_value_slot(slot, role, 'bytes32') + members_slot = role_data_slot + values_slot = members_slot + indexes_slot = members_slot + 1 + self._write_uint256(values_slot, len(accounts)) + for i, account in enumerate(accounts): + self._write_address(calculate_array_value_slot(values_slot, i), account) + self._write_uint256(calculate_mapping_value_slot(indexes_slot, int(account, 16), 'uint256'), i + 1) + + def _write_addresses_array(self, slot: int, values: list) -> None: + self._write_uint256(slot, len(values)) + for i, address in enumerate(values): + address_slot = calculate_array_value_slot(slot, i) + self._write_address(address_slot, address) + + def _write_string(self, slot: int, value: str) -> None: + binary = value.encode() + length = len(binary) + if length < 32: + binary += (2 * length).to_bytes(32 - length, 'big') + self._write_bytes32(slot, binary) + else: + self._write_uint256(slot, 2 * length + 1) + + def chunks(size, source): + for i in range(0, len(source), size): + yield source[i:i + size] + + for index, data in enumerate(chunks(32, binary)): + if len(data) < 32: + data += int(0).to_bytes(32 - len(data), 'big') + self._write_bytes32(calculate_array_value_slot(slot, index), data) diff --git a/proxy/predeployed/src/ima_predeployed/contracts/__init__.py b/predeployed/build/lib/ima_predeployed/contracts/__init__.py similarity index 100% rename from proxy/predeployed/src/ima_predeployed/contracts/__init__.py rename to predeployed/build/lib/ima_predeployed/contracts/__init__.py diff --git a/proxy/predeployed/src/ima_predeployed/contracts/admin_upgradeability_proxy.py b/predeployed/build/lib/ima_predeployed/contracts/admin_upgradeability_proxy.py similarity index 100% rename from proxy/predeployed/src/ima_predeployed/contracts/admin_upgradeability_proxy.py rename to predeployed/build/lib/ima_predeployed/contracts/admin_upgradeability_proxy.py diff --git a/predeployed/build/lib/ima_predeployed/contracts/community_locker.py b/predeployed/build/lib/ima_predeployed/contracts/community_locker.py new file mode 100644 index 000000000..67f9d290f --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/community_locker.py @@ -0,0 +1,50 @@ +from ima_predeployed.addresses import MESSAGE_PROXY_FOR_SCHAIN_ADDRESS, TOKEN_MANAGER_LINKER_ADDRESS +from ima_predeployed.contract_generator import ContractGenerator, next_slot +from tools import w3 + + +class CommunityLockerGenerator(ContractGenerator): + ARTIFACT_FILENAME = "CommunityLocker.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + DEFAULT_TIME_LIMIT_SEC = 5 * 60 + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # -------CommunityLocker------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: schainHash + # 104: timeLimitPerMessage + # 105: _unfrozenUsers + # 106: _lastMessageTimeStamp + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + MESSAGE_PROXY_SLOT = 101 + TOKEN_MANAGER_LINKER_SLOT = next_slot(MESSAGE_PROXY_SLOT) + SCHAIN_HASH_SLOT = next_slot(TOKEN_MANAGER_LINKER_SLOT) + TIME_LIMIT_PER_MESSAGE_SLOT = next_slot(SCHAIN_HASH_SLOT) + + def __init__(self, deployer_address: str, schain_name: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup(deployer_address, schain_name) + + # private + + def _setup(self, deployer_address: str, schain_name: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) + self._write_address(self.MESSAGE_PROXY_SLOT, MESSAGE_PROXY_FOR_SCHAIN_ADDRESS) + self._write_address(self.TOKEN_MANAGER_LINKER_SLOT, TOKEN_MANAGER_LINKER_ADDRESS) + self._write_bytes32(self.SCHAIN_HASH_SLOT, w3.solidityKeccak(['string'], [schain_name])) + self._write_uint256(self.TIME_LIMIT_PER_MESSAGE_SLOT, self.DEFAULT_TIME_LIMIT_SEC) diff --git a/predeployed/build/lib/ima_predeployed/contracts/eth_erc20.py b/predeployed/build/lib/ima_predeployed/contracts/eth_erc20.py new file mode 100644 index 000000000..fd2be93e5 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/eth_erc20.py @@ -0,0 +1,62 @@ +from ima_predeployed.addresses import TOKEN_MANAGER_ETH_ADDRESS +from ima_predeployed.contract_generator import ContractGenerator, next_slot +from tools import w3 + + +class EthErc20Generator(ContractGenerator): + ARTIFACT_FILENAME = "EthErc20.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + MINTER_ROLE = w3.solidityKeccak(['string'], ['MINTER_ROLE']) + BURNER_ROLE = w3.solidityKeccak(['string'], ['BURNER_ROLE']) + NAME = 'ERC20 Ether Clone' + SYMBOL = 'ETHC' + DECIMALS = 18 + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # -------ERC20Upgradeable------- + # 101: _balances + # 102: _allowances + # 103: _totalSupply + # 104: _name + # 105: _symbol + # 106: _decimals + # 107: __gap + # ... __gap + # 150: __gap + # ---ERC20BurnableUpgradeable--- + # 151: __gap + # ... __gap + # 200: __gap + # -----------EthErc20----------- + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + NAME_SLOT = 104 + SYMBOL_SLOT = next_slot(NAME_SLOT) + DECIMALS_SLOT = next_slot(SYMBOL_SLOT) + + def __init__(self, deployer_address: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup(deployer_address) + + # private + + def _setup(self, deployer_address: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) + self._setup_role(self.ROLES_SLOT, self.MINTER_ROLE, [TOKEN_MANAGER_ETH_ADDRESS]) + self._setup_role(self.ROLES_SLOT, self.BURNER_ROLE, [TOKEN_MANAGER_ETH_ADDRESS]) + self._write_string(self.NAME_SLOT, self.NAME) + self._write_string(self.SYMBOL_SLOT, self.SYMBOL) + self._write_uint256(self.DECIMALS_SLOT, self.DECIMALS) diff --git a/predeployed/build/lib/ima_predeployed/contracts/key_storage.py b/predeployed/build/lib/ima_predeployed/contracts/key_storage.py new file mode 100644 index 000000000..515b41a9d --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/key_storage.py @@ -0,0 +1,33 @@ +from ..contract_generator import ContractGenerator + + +class KeyStorageGenerator(ContractGenerator): + ARTIFACT_FILENAME = "KeyStorage.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ----------KeyStorage---------- + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + + def __init__(self, deployer_address: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup(deployer_address) + + # private + + def _setup(self, deployer_address: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) diff --git a/predeployed/build/lib/ima_predeployed/contracts/message_proxy_for_schain.py b/predeployed/build/lib/ima_predeployed/contracts/message_proxy_for_schain.py new file mode 100644 index 000000000..f0ac4fd50 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/message_proxy_for_schain.py @@ -0,0 +1,49 @@ +from ..contract_generator import ContractGenerator, calculate_mapping_value_slot, calculate_array_value_slot +from ..addresses import KEY_STORAGE_ADDRESS +from web3 import Web3 + + +class MessageProxyForSchainGenerator(ContractGenerator): + ARTIFACT_FILENAME = "MessageProxyForSchain.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + MAINNET_HASH = Web3.solidityKeccak(['string'], ['Mainnet']) + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ----MessageProxyForSchain---- + # 101: keyStorage + # 102: connectedChains + # 103: _outgoingMessageDataHash + # 104: _idxHead + # 105: _idxTail + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + KEY_STORAGE_SLOT = 101 + CONNECTED_CHAINS_SLOT = 102 + + def __init__(self, deployer_address: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup(deployer_address) + + # private + + def _setup(self, deployer_address: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) + self._write_address(self.KEY_STORAGE_SLOT, KEY_STORAGE_ADDRESS) + + connected_chain_info_slot = calculate_mapping_value_slot( + self.CONNECTED_CHAINS_SLOT, self.MAINNET_HASH, 'bytes32') + inited_slot = connected_chain_info_slot + 2 + self._write_uint256(inited_slot, 1) diff --git a/proxy/predeployed/src/ima_predeployed/contracts/proxy_admin.py b/predeployed/build/lib/ima_predeployed/contracts/proxy_admin.py similarity index 100% rename from proxy/predeployed/src/ima_predeployed/contracts/proxy_admin.py rename to predeployed/build/lib/ima_predeployed/contracts/proxy_admin.py diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager.py new file mode 100644 index 000000000..263126a06 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager.py @@ -0,0 +1,58 @@ +from ima_predeployed.addresses import MESSAGE_PROXY_FOR_SCHAIN_ADDRESS, TOKEN_MANAGER_LINKER_ADDRESS, \ + COMMUNITY_LOCKER_ADDRESS +from ima_predeployed.contract_generator import ContractGenerator, next_slot +from tools import w3 + + +class TokenManagerGenerator(ContractGenerator): + ARTIFACT_FILENAME = "TokenManager.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + AUTOMATIC_DEPLOY_ROLE = w3.solidityKeccak(['string'], ['AUTOMATIC_DEPLOY_ROLE']) + TOKEN_REGISTRAR_ROLE = w3.solidityKeccak(['string'], ['TOKEN_REGISTRAR_ROLE']) + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ---------TokenManager--------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: communityLocker + # 104: schainHash + # 105: depositBox, automaticDeploy + # 106: tokenManagers + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + MESSAGE_PROXY_SLOT = 101 + TOKEN_MANAGER_LINKER_SLOT = next_slot(MESSAGE_PROXY_SLOT) + COMMUNITY_LOCKER_SLOT = next_slot(TOKEN_MANAGER_LINKER_SLOT) + SCHAIN_HASH_SLOT = next_slot(COMMUNITY_LOCKER_SLOT) + DEPOSIT_BOX_SLOT = next_slot(SCHAIN_HASH_SLOT) + AUTOMATIC_DEPLOY_SLOT = DEPOSIT_BOX_SLOT + TOKEN_MANAGERS_SLOT = next_slot(AUTOMATIC_DEPLOY_SLOT) + + def __init__(self, deployer_address: str, deposit_box_address: str, schain_name: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup_token_manager(deployer_address, deposit_box_address, schain_name) + + # private + + def _setup_token_manager(self, deployer_address: str, deposit_box_address: str, schain_name: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) + self._setup_role(self.ROLES_SLOT, self.AUTOMATIC_DEPLOY_ROLE, [deployer_address]) + self._setup_role(self.ROLES_SLOT, self.TOKEN_REGISTRAR_ROLE, [deployer_address]) + self._write_address(self.MESSAGE_PROXY_SLOT, MESSAGE_PROXY_FOR_SCHAIN_ADDRESS) + self._write_address(self.TOKEN_MANAGER_LINKER_SLOT, TOKEN_MANAGER_LINKER_ADDRESS) + self._write_address(self.COMMUNITY_LOCKER_SLOT, COMMUNITY_LOCKER_ADDRESS) + self._write_bytes32(self.SCHAIN_HASH_SLOT, w3.solidityKeccak(['string'], [schain_name])) + self._write_address(self.DEPOSIT_BOX_SLOT, deposit_box_address) diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc20.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc20.py new file mode 100644 index 000000000..7a7eb9dcf --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc20.py @@ -0,0 +1,31 @@ +from ima_predeployed.contracts.token_manager import TokenManagerGenerator + + +class TokenManagerErc20Generator(TokenManagerGenerator): + ARTIFACT_FILENAME = "TokenManagerERC20.json" + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ---------TokenManager--------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: communityLocker + # 104: schainHash + # 105: depositBox, automaticDeploy + # 106: tokenManagers + # ------TokenManagerERC20------ + # 107: clonesErc20 + # 108: totalSupplyOnMainnet + + def __init__(self, deployer_address: str, deposit_box_address: str, schain_name: str): + super().__init__(deployer_address, deposit_box_address, schain_name) diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc721.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc721.py new file mode 100644 index 000000000..08de46f58 --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc721.py @@ -0,0 +1,30 @@ +from ima_predeployed.contracts.token_manager import TokenManagerGenerator + + +class TokenManagerErc721Generator(TokenManagerGenerator): + ARTIFACT_FILENAME = "TokenManagerERC721.json" + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ---------TokenManager--------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: communityLocker + # 104: schainHash + # 105: depositBox, automaticDeploy + # 106: tokenManagers + # ------TokenManagerERC721------ + # 107: clonesErc721 + + def __init__(self, deployer_address: str, deposit_box_address: str, schain_name: str): + super().__init__(deployer_address, deposit_box_address, schain_name) diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc_20.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc_20.py new file mode 100644 index 000000000..d6aa419dc --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager_erc_20.py @@ -0,0 +1,35 @@ +from ima_predeployed.addresses import MESSAGE_PROXY_FOR_SCHAIN_ADDRESS, TOKEN_MANAGER_LINKER_ADDRESS, \ + COMMUNITY_LOCKER_ADDRESS, ETH_ERC_20_ADDRESS +from ima_predeployed.contract_generator import next_slot +from ima_predeployed.contracts.token_manager import TokenManagerGenerator +from tools import w3 + + +class TokenManagerErc20Generator(TokenManagerGenerator): + ARTIFACT_FILENAME = "TokenManagerERC20.json" + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ---------TokenManager--------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: communityLocker + # 104: schainHash + # 105: depositBox, automaticDeploy + # 106: tokenManagers + # ------TokenManagerERC20------ + # 107: clonesErc20 + # 108: totalSupplyOnMainnet + + def __init__(self, deployer_address: str, deposit_box_address: str, schain_name: str): + super().__init__(deployer_address, deposit_box_address, schain_name) diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager_eth.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager_eth.py new file mode 100644 index 000000000..22e85615c --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager_eth.py @@ -0,0 +1,40 @@ +from ima_predeployed.addresses import ETH_ERC20_ADDRESS +from ima_predeployed.contract_generator import next_slot +from ima_predeployed.contracts.token_manager import TokenManagerGenerator + + +class TokenManagerEthGenerator(TokenManagerGenerator): + ARTIFACT_FILENAME = "TokenManagerEth.json" + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ---------TokenManager--------- + # 101: messageProxy + # 102: tokenManagerLinker + # 103: communityLocker + # 104: schainHash + # 105: depositBox, automaticDeploy + # 106: tokenManagers + # -------TokenManagerEth------- + # 107: ethErc20 + + ETH_ERC_20_SLOT = next_slot(TokenManagerGenerator.TOKEN_MANAGERS_SLOT) + + def __init__(self, deployer_address: str, deposit_box_address: str, schain_name: str): + super().__init__(deployer_address, deposit_box_address, schain_name) + self._setup() + + # private + + def _setup(self) -> None: + self._write_address(self.ETH_ERC_20_SLOT, ETH_ERC20_ADDRESS) diff --git a/predeployed/build/lib/ima_predeployed/contracts/token_manager_linker.py b/predeployed/build/lib/ima_predeployed/contracts/token_manager_linker.py new file mode 100644 index 000000000..8ae02375f --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/contracts/token_manager_linker.py @@ -0,0 +1,50 @@ +from ima_predeployed.addresses import MESSAGE_PROXY_FOR_SCHAIN_ADDRESS, TOKEN_MANAGER_ERC20_ADDRESS, \ + TOKEN_MANAGER_ERC721_ADDRESS, TOKEN_MANAGER_ETH_ADDRESS +from tools import w3 +from ..contract_generator import ContractGenerator, next_slot + + +class TokenManagerLinkerGenerator(ContractGenerator): + ARTIFACT_FILENAME = "TokenManagerLinker.json" + DEFAULT_ADMIN_ROLE = (0).to_bytes(32, 'big') + REGISTRAR_ROLE = w3.solidityKeccak(['string'], ['REGISTRAR_ROLE']) + + # ---------- storage ---------- + # --------Initializable-------- + # 0: _initialized, _initializing; + # -----ContextUpgradeable------ + # 1: __gap + # ... __gap + # 50: __gap + # --AccessControlUpgradeable--- + # 51: _roles + # 52: __gap + # ... __gap + # 100: __gap + # ------TokenManagerLinker------ + # 101: messageProxy + # 102: linkerAddress + # 103: tokenManagers + # 104: interchainConnections + + INITIALIZED_SLOT = 0 + ROLES_SLOT = 51 + MESSAGE_PROXY_SLOT = 101 + LINKER_ADDRESS_SLOT = next_slot(MESSAGE_PROXY_SLOT) + TOKEN_MANAGERS_SLOT = next_slot(LINKER_ADDRESS_SLOT) + + def __init__(self, deployer_address: str, linker_address: str): + super().__init__(self.ARTIFACT_FILENAME) + self._setup(deployer_address, linker_address) + + # private + + def _setup(self, deployer_address: str, linker_addres: str) -> None: + self._write_uint256(self.INITIALIZED_SLOT, 1) + self._setup_role(self.ROLES_SLOT, self.DEFAULT_ADMIN_ROLE, [deployer_address]) + self._setup_role(self.ROLES_SLOT, self.REGISTRAR_ROLE, [deployer_address]) + self._write_address(self.MESSAGE_PROXY_SLOT, MESSAGE_PROXY_FOR_SCHAIN_ADDRESS) + self._write_address(self.LINKER_ADDRESS_SLOT, linker_addres) + self._write_addresses_array( + self.TOKEN_MANAGERS_SLOT, + [TOKEN_MANAGER_ETH_ADDRESS, TOKEN_MANAGER_ERC20_ADDRESS, TOKEN_MANAGER_ERC721_ADDRESS]) diff --git a/predeployed/build/lib/ima_predeployed/generator.py b/predeployed/build/lib/ima_predeployed/generator.py new file mode 100644 index 000000000..41e66e3be --- /dev/null +++ b/predeployed/build/lib/ima_predeployed/generator.py @@ -0,0 +1,124 @@ +import json +import os + +from ima_predeployed.contracts.eth_erc20 import EthErc20Generator +from ima_predeployed.contracts.token_manager_erc20 import TokenManagerErc20Generator +from ima_predeployed.contracts.token_manager_erc721 import TokenManagerErc721Generator +from ima_predeployed.contracts.token_manager_eth import TokenManagerEthGenerator +from ima_predeployed.contracts.token_manager_linker import TokenManagerLinkerGenerator +from .contracts.community_locker import CommunityLockerGenerator +from .contract_generator import ContractGenerator +from .contracts.key_storage import KeyStorageGenerator +from .upgradeable_contract_generator import UpgradeableContractGenerator +from .contracts.proxy_admin import ProxyAdminGenerator +from .contracts.message_proxy_for_schain import MessageProxyForSchainGenerator +from .addresses import \ + PROXY_ADMIN_ADDRESS, \ + MESSAGE_PROXY_FOR_SCHAIN_ADDRESS, \ + MESSAGE_PROXY_FOR_SCHAIN_IMPLEMENTATION_ADDRESS, KEY_STORAGE_IMPLEMENTATION_ADDRESS, KEY_STORAGE_ADDRESS, \ + COMMUNITY_LOCKER_IMPLEMENTATION_ADDRESS, COMMUNITY_LOCKER_ADDRESS, TOKEN_MANAGER_LINKER_IMPLEMENTATION_ADDRESS, \ + TOKEN_MANAGER_LINKER_ADDRESS, TOKEN_MANAGER_ETH_IMPLEMENTATION_ADDRESS, TOKEN_MANAGER_ETH_ADDRESS, \ + TOKEN_MANAGER_ERC20_IMPLEMENTATION_ADDRESS, TOKEN_MANAGER_ERC20_ADDRESS, \ + TOKEN_MANAGER_ERC721_IMPLEMENTATION_ADDRESS, TOKEN_MANAGER_ERC721_ADDRESS, ETH_ERC20_IMPLEMENTATION_ADDRESS, \ + ETH_ERC20_ADDRESS + + +def generate_contracts( + owner_address: str, + schain_name: str, + contracts_on_mainnet: dict) -> dict: + proxy_admin = ProxyAdminGenerator(owner_address) + + message_proxy_for_schain_implementation = ContractGenerator(MessageProxyForSchainGenerator.ARTIFACT_FILENAME) + message_proxy_for_schain = UpgradeableContractGenerator( + MESSAGE_PROXY_FOR_SCHAIN_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + MessageProxyForSchainGenerator(owner_address)) + + key_storage_implementation = ContractGenerator(KeyStorageGenerator.ARTIFACT_FILENAME) + key_storage = UpgradeableContractGenerator( + KEY_STORAGE_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + KeyStorageGenerator(owner_address)) + + community_locker_implementation = ContractGenerator(CommunityLockerGenerator.ARTIFACT_FILENAME) + community_locker = UpgradeableContractGenerator( + COMMUNITY_LOCKER_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + CommunityLockerGenerator(owner_address, schain_name) + ) + + token_manager_linker_implementation = ContractGenerator(TokenManagerLinkerGenerator.ARTIFACT_FILENAME) + token_manager_linker = UpgradeableContractGenerator( + TOKEN_MANAGER_LINKER_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + TokenManagerLinkerGenerator(owner_address, contracts_on_mainnet['linker']) + ) + + token_manager_eth_implementation = ContractGenerator(TokenManagerEthGenerator.ARTIFACT_FILENAME) + token_manager_eth = UpgradeableContractGenerator( + TOKEN_MANAGER_ETH_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + TokenManagerEthGenerator(owner_address, contracts_on_mainnet['eth_deposit_box'], schain_name) + ) + + token_manager_erc20_implementation = ContractGenerator(TokenManagerErc20Generator.ARTIFACT_FILENAME) + token_manager_erc20 = UpgradeableContractGenerator( + TOKEN_MANAGER_ERC20_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + TokenManagerErc20Generator(owner_address, contracts_on_mainnet['erc20_deposit_box'], schain_name) + ) + + token_manager_erc721_implementation = ContractGenerator(TokenManagerErc721Generator.ARTIFACT_FILENAME) + token_manager_erc721 = UpgradeableContractGenerator( + TOKEN_MANAGER_ERC721_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + TokenManagerErc721Generator(owner_address, contracts_on_mainnet['erc721_deposit_box'], schain_name) + ) + + eth_erc20_implementation = ContractGenerator(EthErc20Generator.ARTIFACT_FILENAME) + eth_erc20 = UpgradeableContractGenerator( + ETH_ERC20_IMPLEMENTATION_ADDRESS, + PROXY_ADMIN_ADDRESS, + EthErc20Generator(owner_address) + ) + + return { + PROXY_ADMIN_ADDRESS: proxy_admin.generate_contract(), + + MESSAGE_PROXY_FOR_SCHAIN_ADDRESS: message_proxy_for_schain.generate_contract(), + MESSAGE_PROXY_FOR_SCHAIN_IMPLEMENTATION_ADDRESS: message_proxy_for_schain_implementation.generate_contract(), + + KEY_STORAGE_ADDRESS: key_storage.generate_contract(), + KEY_STORAGE_IMPLEMENTATION_ADDRESS: key_storage_implementation.generate_contract(), + + COMMUNITY_LOCKER_ADDRESS: community_locker.generate_contract(), + COMMUNITY_LOCKER_IMPLEMENTATION_ADDRESS: community_locker_implementation.generate_contract(), + + TOKEN_MANAGER_LINKER_ADDRESS: token_manager_linker.generate_contract(), + TOKEN_MANAGER_LINKER_IMPLEMENTATION_ADDRESS: token_manager_linker_implementation.generate_contract(), + + TOKEN_MANAGER_ETH_ADDRESS: token_manager_eth.generate_contract(), + TOKEN_MANAGER_ETH_IMPLEMENTATION_ADDRESS: token_manager_eth_implementation.generate_contract(), + + TOKEN_MANAGER_ERC20_ADDRESS: token_manager_erc20.generate_contract(), + TOKEN_MANAGER_ERC20_IMPLEMENTATION_ADDRESS: token_manager_erc20_implementation.generate_contract(), + + TOKEN_MANAGER_ERC721_ADDRESS: token_manager_erc721.generate_contract(), + TOKEN_MANAGER_ERC721_IMPLEMENTATION_ADDRESS: token_manager_erc721_implementation.generate_contract(), + + ETH_ERC20_ADDRESS: eth_erc20.generate_contract(), + ETH_ERC20_IMPLEMENTATION_ADDRESS: eth_erc20_implementation.generate_contract() + } + + +def main() -> None: + contracts_dir = os.path.join(os.path.dirname(__file__), 'artifacts') + proxy_admin_path = os.path.join(contracts_dir, 'ProxyAdmin.json') + with open(proxy_admin_path, encoding='utf-8') as fp: + proxy_admin = json.load(fp) + print(proxy_admin['contractName']) + + +if __name__ == '__main__': + main() diff --git a/proxy/predeployed/src/ima_predeployed/upgradeable_contract_generator.py b/predeployed/build/lib/ima_predeployed/upgradeable_contract_generator.py similarity index 100% rename from proxy/predeployed/src/ima_predeployed/upgradeable_contract_generator.py rename to predeployed/build/lib/ima_predeployed/upgradeable_contract_generator.py diff --git a/predeployed/dist/ima-predeployed-0.0.1.tar.gz b/predeployed/dist/ima-predeployed-0.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..688a66237df14c6d3dbe7ade79738cee6eec7122 GIT binary patch literal 137378 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

a3{jy>D&%B2N3wE#(>~ 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μ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øKg||z)!!=+7+XMVlfsH5~SSM1F}<0hEo0mhgsuD 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%0As02x z_+`1>G@tghrqAPHe~#pvb(13LNigzGe!d|G6(0-%W%Jn)e=4y>DtePR&+*H~eB4B2 zP+6KIB+QJ*9lc=Sz+^o%ofgZE8ExqT&f)2=G7}J|R}#&GejA3HU&z0M3qy07sY|n1 zW>5BbPj9Ls)J~F_{Xytun-2g_W!#jPC^;Dp0RV^ZpBBQP-CV(!^hrMXc4-QKCD#&4JPI;`0TFm+gTtS!&x|s}Tzq=m z;8{ALXPT2tFo&ObBwUZ+5r5lM`OnWX*X^cwkuTF}jsomtnqh2bGAP{Vf^}UHA-gcT z5}*k#3KyfzJ{?^D3f+Wf`#N6EWKrZ>!emdO8#UQYk!c5IN?;0DyBE}=A+Qi8vXjt! zkzO-Wn&!DkX$YSR0q_!<&UV;T%qO_lPj_G zyoTSSo~sv7VH%s+uX_pZ4`Jv`6_~IxTleSr4F3_^yUIjXhyUN{`vWX33;#Sn4d#`E z9$(nLn2hFwj*jU@FvG|HVniya;EAVcf3s;yCTxMbMpmdX7SS>m zfM%I#@;S}sxw{6D>yAU+O{=bqHy-)dCE@Z^$n+x?Ar~4Y8NT2P9?_z;;GKW?s5%qV z)>^693+4SJAJt$CrgvP+VE@em(U}SKL6%`9b16FL2BiFl-8iFmYL_-DU&#QE{&QjJ z!jrG*Wd3w&@{A6X@g*SO&-;;u#4P0==0zUgD3#UQ*%^zO@n8l~8WuTofL1;^Zp%Re z6Kk3+EuhB9Wvvi^ulF;vy9X9)er^qn*>g&PY@oi2wtQB+V`*IFlambGqG~dF%b4^+ zbBP}8N7j~VT_Sas=A0BTa%&I%`Pum*N*_Ehv{c$YJYzB+wU9BaG)SVS59vo|XQKyE zM_=Hr#)M|s0yC>{Z2tpexF#NO`&VOn#fd)PN3gc((LOYM%&j?`!W%H;eAVsF(rDS|eHi za269dV1A#0LWP-5IOI=FtUUOy0y{t#vm&j*^q)=h-*MU^Fh0lyMy6pDU>CBPeh?-_ zJuvj6e5yh}KWbY7U~M=<>@#Bf_Cmz^iwMZ3T?tZOL)B#Dd_xthh117qy9w;jR+h$8 zmgNUJ6r^HWeGJMQh0bTdm^XcpmH~W>(~X%<3d|v=Sk!t~NKLBed`) zvf|kYzVeh08lH^uFsd}7W@}ny{GrdN)LQ}wrm1wlEy-$6%B$Y;}WRMc7 zT>~g@VcDT&js}jrS}F6T;O$o%6@1IFCvVS{W@VDT0@=+YD8VTx76nyNBp(QU+{9}A zv26`2^p}mO(+VZ$Z+R!+?hxh8l^bJLmkZ?vfhBtYVMvL(K`$g-no^~>O*S7R)3iiK zPj`m>(Ay8{p&f@7Y>G?Wa9ZDN3PH4#s_i)2!ikA%QUXdN#nPDMC} zH!Pb05v`}1EfWMhxyBD$A6stoUa)!RquKh_wg&})O(aWp+V`4m)O+mapz!T8>#dSu z+krSHw~|It4HdRcLtrPUS}DdNuFB1O$UKanFq`+b@Ykq;LIt|gqHY~I15{Ye^0|9d z1DN!Hb0i2KU}Wn?X|`^!Z=ElFw{*y>P;u^a66K%Jg^|QoHFs_&=`mv%Ihtm8i~J?H z7}Izr9cS#|64B$n#X2y)jb=-g#{nU;*^HbX#cF@H9T&Cp zY1=&scB7QMR{2HHzT@|}A-dkP3@m7!F~0pd@_>PV?2JwJ47uhBnp5#o6%c-!CZCgr zaOyOyfW~-DYeKhCGR%|Wai#^`JN-HK+=86_(w$h9^}H%fyl+Y(RWf`D z2bzq>?|w@w1~|c9_ngZ{yV4@rtQh&t`?nK8po?6&D0>tok4;0dQIlu#-NXqJv!lEAjz z2w{FP!Gb-wH?=SyzBxF?fDdUumjFY6^++t{ExqwFZJ?RMPV&|!+{;&;ty-$(;Jx;qbh{b zh|-y=xV1f^Fir9ySl*}u86p+*Gh`}mtj5x`UGw6@S)+a;K714-8wHT`P>B~9IM&Bo z?&xzoP4RT-kpeQvLJAAq#*GG!J<&@+J?lC(#Klbr9BlInB;XQIAvqKVdb!;(B=1YS{_m z!F^BZn$;jH@X1hAvNJ9~FYxruNxcMuVjgy_G;HBfzb$Zhr7Giyq%tpAn;(GxJW!Y=ZY+-f{i& zwjQfKK8C00LFjDK@Hh=t3lTs!2k+eJXK*dQCqaeEOiA}X%{J!Uw9|%V5 zGk*xDc)1=ef;wf)`xr}a@ob!gYe5@HFT>v5dDuImY79;|>_)n(>VB%;v*&eIwNUb7 z+et?4CZD#?-^XUaTUF;iqy-xz&2myr;)D%Gt;U~R;xg$lmZ;m(#7 zZMoM4rq-_GjWtr(ulnR}neZ*uA2`iu)2Uk3yLx8X3RS(oe@5u#M4}kE8U7sRgQDtg zrTAyLYdXE96NDxVvqpQ}ovfY9*T08aQs0FSm`X6?#F5uNdwO5$@4x-cJ(Nx&{<0Gp z?Akc0biY`7OzU56+(R);HoKxqm>gE3VYNGq!sMUf`wi{Q@9`iVMgJXt&ZhaN8*yBW zDc#}nW4U)9%e(rhdh-#0M*XXgW!!u$;o@V_dk^;M5-&Y`cOF9bu6ytC=eqU?RbDQ+ z^C&8_d8Euzbh}_z;SA?+J{5Hw&1BBE-YXKTTXjDoZmU)Lr(t$U*4tlSP!ZQ~{7FiJa zNH)-I?qvc>+UIyUx1%3Lz_lO?>}ydhxjukqI-!?yC>~T4W0rju5C>^+%oD)cK_0~y zGtHkK(Sharl>YX3cXq9|O~n!Ao*+g%CR%Phv3t=F@x3e+9;bD6jz@Jo_QTkmF zgl0sU@F06)8?=lwZio^NqVk8l`Cb>u)S1>sg-0nKDsM^c~V?g>(Ve&J7rb{*IKyeu+`{ioz(!O1}VNhX|Hu3CP9CDM#3%`tb-5$6AD> z1CdP~p8Z1P`_NaBMcAPop{@lnn(>E@$w*v^YdnPYNX`nt)F&w&U2$VV%}iGXx+$(O zd1t1#Whq0@Zv} z%0$o(sMummJ&m~RDRVP`o9VwwuOE!@#eR|0&#oi54j^<){nE>nO66XUdHHJbsaSwV zY{h6{J=+9!p>n3v$CbX|+9?Wc^PFilhDd_OIP0CT?-)H5CLZJ67sic-<3-IBES?hJ zc7P)De3wRMZ=7h^4W7r1MLBukAs3fwx)wxUEj)sj=fqKw026HC&)cJVHS`XxHvwY< zar~WGS()5$=#y+d?I)2^RAlc`CD;3vb{9cjZYGI3W*93X8eAqbt&QPjuTN0>cHi53 z`?nL&We6dl~k<5sE?F5`OHy!!IkETCoV_nv}&wOMPFKUNr_ zH-2YjwPS)k2=ty_=v5L=hbg;T7)M_{4E$E=Jw1}4B$39pI(tM-KOsdMlK_gOdhYmP zM++3z4%m)>AO-s&&QgK6CUK&OR)@qutv^pcr4&AVvChp^g?G|M7@3Y{K+f4-97YRyikCxy-M4yoi! z3?G=fzaW?7Y4A;b+LkEHTLhC|G<}MUi*R0_Uaui z%T{;0z&TPW9k^%)CrD(eT<$Ruvus#K17Z8KjR`)j^r$Q^1v_xdP#2WR_7~SYiRk-E zm^L-*u1HnO4KaQRUp4>PA+sbe%lCXsxV4h&Z5MM&w_$X>xfz|leew2bG{>}?R8x^m zL)kR$V|kx+ta%*p4_vOvYl9dbDt1b|fOcC{w{X@kl`Y-wLbn0gy!M_l^o5d(0fjp8rMa&bo}z!?k+7{803I>u8V8`A zsWUI)%3CGK#U98FcX>kz@4~?@-%+SbapcOLKRSc&%)Wnb^h9eF1p@idKgK+mS+k7p7O37-6`M*g zukGNgD($PdX5OX3=gN{%ga!n8P`+A8)pjk7&^rBu4UcvDiIt?EkT6~}{RC2`YY8m6UvQ{ZA1u{?i5rM<|rc{Cb!yMebS8>93(8T5(b z)h!tBt*5*iM|)?O)w$WP9p={#^Z&LE^X*MI51eQZeCc)U+@Xq!TF&Ffi8Niu=}w+m zP89vpe8wjU<3gmGxLgB zw*0wpZ5yPUi&`)e|s7*1{?(XEry+LzSUm&%sFXg<=@)2crm z$1EpS(y#^SPHMR3XP^}t5E>_!K>8b6c3+?I*7zjNUv*ewVf9tqk|Rj?@>*9gp5G!I z=#+tnL4^9Eb7b{Z9pNs!xMYoJpvT9nE+f#hY}zQVNo9Nu6YVx67Q0ub+A$V$?%Efm zPOPg=oqOZ%&ZBp6idM-+DB-aNZ`(}UZC|&0E%t9r|K9N5H}KnsijgmUvRoqTPX8I} zKX1&pFh)UIWtBv<(y>}9k#e){i?ruz$TGQ_tDj9{a@WtZY&yV# z2WT~)izCpC{%SJ2_B*W;^P`6T^ML@3zXxmdo0I>Y$5RT}1ziT@S3A4ve25SEKiW90 z$oOFm)GT{#jtAB_48J*=J99y!w*&)xqyrOP5k@r^ zA-rzj`_gS^_hT?yTglc|vbB|L#a1$pwMq~jzF@=h!?J+yImx(qmT(yw$l58-GTS<( z{F$9Z=Ak~gKMzY_WCk2BU`nzy)72P~tU=ahq_r7oZAPkUMzTym+F4QtAgUlH>^CVI zR=!N*$%JKI#hYM^p%R~|Dk;s|RFZelVVrW4F{(4S9XyC!T3DvTf}KVy-Z6)_p)Mz&&M^ZMtflQ#$N|87{j zRFEbN&e5M7q9|^Z!i^$i?Px{W2f%D|L>x|_*iJd1s=SkmrGU$4& zO)PO!iLOUkobox{6jvVhfla|GO|Gk`IISGTsySOSy=NQ2)hKTLijBT>JsEhAI7Y0TIq~d$1ZY z&NI-RM7gyvw-)C9W0PoA$Z~~;`zU-jSaQGUksS@&TR?i0@x7X$1<<^}X>hEM@OzMcPII2HI>w;?DGv{xOfl2Ncs}a!8%_Gp;gD|q z)W|TXxL8xI-qE+zbw;P*oh#9*Wf)>DNS!Gc2k~b*4g*BC;Xa%O^?G{+Ys;T%DZvG2@8Ol|Am1|lkXNA4GE9`|=*mG9c zD_CJcwO2-$ZWQb2-ITJ9(PEV7yJ8*CGKaNSJOHJ=P3Xsd^#at2;`zAH#Hp`oH#b<) zqK6Q9}n_wcBj6`dAUy>?ZtX#XT-hLaZdu@A!w{1u_@`uZ}kndx@blA zOA{B3rtJUs77#DAY3VXv3?0YRc@;@QRY(v76BHg<)1-`YruiW@{k}I|(}LsZ65XZn&xC2HptN1LqMKXl=L@Ajx%nS-db|Fg z?dUVQ*YpYO=m#ck@X09<5i&42G~_ z6go=i!PwC}7}aft84yxR3w0#l+>D-!%xA)GBrJ!6EMac4`FuhqpXW0BVut3a@diuJ zFuR#p!Hrq;g_-aOr7&|0BDq*e9ZKfN5FJ-e=xX9$4SLr2di}8#eZ9G5Cj)napN%jv z6Yi?)(u%u8+yuA6U(5x$PT0wh!-O-08#v@dse#H^uwca8a@A|$tdL{yf3{myIJ=_p zbZ~C#0Hje(RICmo4gdvgTY6b^Jut7b1!=D1D_Ry`jK_NscnV*j`?7S!FM$F9D!U}@ zCbU%U173o`EZMKSjD|h?4eaEvMf3Ku#O}SZ#M3{HPEMZ@N4%#0-q1z9{J1JVe6AjJlx&cef;q8PUrE?lkJ^{j~{oox(~bCPr8rbkIv)n*3Q<><0o5> zI=c@aJ=xxZC!MWFJ3EgaKHBbdpP;Gq;SPMiyZv~(CA;lDdi13G$XKNeYZ9^|x z)aPxGom=Zsf6?l;c6T0c!N^aZY<0I`9i8o+Cl6u1(0RAJ-QDfN@?k<-k9Quyn;jf{ zcWW2gZ|&g3p~ViYb$6%xc(>CsyYB4lJbAp`-Ga&QKEicvJ%*KTZ9N320rcR@$7p@t z+3j?90eD@2M0aN!miGAJ)^=y71AyCp0;9pm4`t7{t-wllA3lMZKz{)A?T6c)hn>fd zwjSaH9zK4!`=tB0`w(E-+3mp0cOQ2FbX!}Uhr5p-16;QrJ%o*W^aQ4|)q%gvg*@Cs z>-Xc`$2+i$huhna03h34SQk$7;m*Tt*z4Wx&LaTLb{BEv;Z~=+1zo|ecMy&+m+saU z;LdhOtwY!;O`Mj+0zDZX7;_vz9pzwY;9Tg7hbLtxpQ z!Ue#RIfk+RMUInB{tM62|AB_0K=Ul@G zcwNV0c(ZI{A=T*48H%&1qb|}6MUYw5Ja6k)hT<;fUiRf#K%GoJx$H+dz|(yVzdrSPPNYH#|>7&`|1 zV!ESD`tRpxwjcA&p`t%I!)VO?H<{(CY=>S0i#Hh$qW(0&Vx18iB3=9jVyEk+;cnIR&pSFA$ z%ayAafjKv7I-RrD0P}oi*PjuqPySTJw&)3PUmYY?v6uHeV4mh?*0^f%Nx34-(n?p^ z#c3ivx3}ftYU*(1#jZ|)(VVzM*pW6t9Pr?U1HW-;*XwEeT zS(WEXyL3Qr9amBDETInUT5EfrB3HqW>>ZO|91V)UF?Lga1$(G{=Gj)3>CfCuj7lcC zgaPD(aST3wpk6+flAyqj>2N(559qiajW4oLnZTO6SJHjeox}t-tV2On(T~j8pKl-u*J zzF8>9@v2eSu${6D?Es&KRia}=oRn9Dho&wXik`Ttttnot^JY84tnF_v8vJk@hXk+v ztRZFTCy25aOQfB9P1BM?=CR3~jRZJn@XqAk)MtkZmm??lF7#DR7jY+XWTIIS# zXlH$AfeC0WuNY`OJ-gIMS=cmNM25ndYVBPPvb=tX*CLRQEo{PEzp7TE;1H~qw6`!i zh1oK&pK%JwHFl3A2RC+!)u_6y`j4x0mJHDhrYhT^WPrZU7Z=Rz4jK(5Vi{iw2>>40 zD+%-V&rhpFv*euAaZDZ4PpYnWJ7TRxv$%O*EXQ7^&Dm}ywOeeO=IKWXx6_*Pmu=^zlT znY@iYO)%r>Dt&3(kyh(F6V8smcAr_h&;04!XDSva3;3648S%|?=oDnM*bFij#<%VJ zJw?^*)_O5*QyWb@@t&TF#nHg<@%QT-hGEBA&htLh8EDeFzA% zOI@SiyGNznPUw{whwJkP z%tpH;l)(_prQ$|9xF3#)6JHsE7c3%x(>R@bB3n4rvv}6OTIP~Js4579yy!K9LcW?6 zt!hK-uI@fI`Ibq^(l^ko6aCSZSjOlvJ0wEibnu8jfj~T2c`7H(V<*i(w zHoy4369~RbiGR7^@-Hy}yp}$@`jGt7Ya1&7y#PC~e{nbV4@Y ze-o{0$zZI6aHa#&!btYL>2s^WNMn^HpwxW1szLJKRFPcrPSm@2v>~K>URUyP@xVhh zmTN99-MzSyd}rAC29<-AOt`Mredo#A16G~r;wt=|r(86&8nrqZ`1ZzuWgb_3H4e3e znbnuk{|#&q%LZ^IF0X*S7^DA=Eg;K=r?E^AAaeo9d=dEl8`@h|vH=ybT5X0OuWy%^ zl4N#uUpYwb<~7lIvd%cNc9~db9I0Em(LDM`p0n@d1Mz42(BIp~x>72T*;R4w4?J__ z=|4RAJpkM+xd;43CaINV`G8TZv>vU<2B)&DAIZ7!Du@aHtulLH!b*w>gh^pAB=h4R z@tgn@(in98yG+TDZ!S3K@s}qv(UPYfX{h(jG?7sp3$&fdR$eb~}G{Z&W^(dhJ_ytI2V^~aqEIAPF(J2eV@;MqnHW?X_WyOLe_ zdMNd)JkHQh{q$Fcb-9SK(DBc9S~t;-a>)0%f4LDxhP~oT7Cy#a^KOYueVt{uVoAZx zL_9vt&||a_yo&K{TR$6(uq5gY>Z5RMDKQCGR%$S2(QIbRfpnMG zzY3~D>(n;u)Hd#IpA1EygaiU7bzgETRe`!EtdRG{?A4cTK+qxi(GPkwp&8OA+W5(j z9Y<@8UG-EPu}vgu(FZAJ&T6^~9>pT?M|xHR`DuOK#c zaMzH1R73r-WvvYWm%j=?lE3vqPV^ZB7H^;c<&Q?x_+(PTBsYcAe{r7C9E+@w(!x%@ zLeo@_3k!!P5J@?qZ$p`bOoFE+4We)akJcW@zG|j3*mu$yh$ZarYmBX047n{3R0<|X z;o#fGl6!;945O-+j8&k6C+Ri&B>E-Va$>k7Z3J^i^fZ?zw_J6qAuTkR+9 zEyonYSjeW7Z@l&xTbA-S@(OeQrd|V2umzJ)LNPlYD~j>ViQ-wytJ-D6-m+{td-d%I zd!;uGRTz~IgIC6yBq-KAY0ZzKa?T-7Tuy(A`>nxrPOL8^yD$&6D^dIfg%q z`@EyIL6E!!E|R%yNL}#!d&|3U#!gpLZUQ)8LA42ZyUJn{(0$28G_|Q$Z9+9Y9M4B^ zAfd@gGP6Gjy=?OV;Hh@OEwvz)ng%8X@aNg+qWxdgGp47p&qncN0`rjUTeRco(G(Zz zgJc541ykxi7fB?$q8yfQ0#?>T>{p9MVL5o@MWUF5bH4F2Rsfw(!`Fuo1fJn3c_h+k zpk?N;`hu|~vtjcQwVac3An~Cv1j9FFaFqS^4e-_Jj|*k0tC^jduc*TcxTJCooiVVT zX0(QIc@#__hm7|N9ytzb%Igc9h&xU2#M9yo+eUU)n z2}07y=@e+e^PE*&jC;a;#T@dw%M)p--OB`bsjhh=xaQKP`jM{+f;<}~c#814Ku}kM zSW_hp@70ODY?)~I+pN3nqNO50n9ER_D=`a1VAJgY7#F>d2jolvawnn1KzEqXj;-R5 z6~TxZ&1xJDGe;}(S6j8)EB4IMcfE>p&R1u|+fqNBpns0KtE%ItL*QzZ;x7Tlb1RbW4tw0=iF)X$cKyN;-zPIYT)~(7$3A?a`;C-;Y1R^crz5 zWFL)T8zwYYu#d$f3V+wTpE_I9p2Wp+`iLVZXiD1ty)`mYq{0m zWPhgzug^|?d-v}3f7h%32K4s(DgSn&YbKN*n=2>rm<#WEs(x-oG>jmjL&cILbMfri z&08Fyl+ipd;4>9OT#rb<$f4sBB|>5vPdz1_nP;ZqyF*0|FhUhnVmgr4g2-c&>Cv!f zm>$0`+6Vm4^|d%P6kerhgq1=q>oJ!6z~7~=cANb-+nV{HLFE*-a2PF@i5LW{mU}8F zNEZ9N4u^g2Ww1_331t}gU=8x|gN+s+t-2cocUhBQiss5s44wTzGD>L_K#ZztP%~E0 zaL7~}`r7Qd-t<`+kkF_m1+Fwtw|a+22W=P@teLeu<^%6k)(*o9IAGL}2h6%+|91Yr zbzFN(N|vg4t3Q9mQVfZghBB1-N@%h~EJ^^-YmSEC zR8}++SYVZ!k$wrd1X#6;j#dIyg<7Nc3@EpwyO!8odYR4QQkzOtsb6U`Fjg7Zs#Vy$ zLzPXBT(zV^n^yFJ=O=Ezj(@Dzz3*g{;F7b`# zlL5l&G}vWBec$r5M#kdvF_=wnK)iK}$QkO6FEB$t5-yC?WH3O-olf*~)h+Oph2d%! z$O_a|a@|i7QYwl|l9iRu^u)9T>GFsqF=qhI!A`W+VJos6^jBJHQB zDguTNa(~|?0Bk^$zf_+pp5j=InsqM?l4_9|ZKmcMjYAt86&H*mQsJ zZ@v1fN@aAn&Mc4SBVONq*;C^#_Fk)=>V#`0MNjK8(S>W3E|aAe3P|7QoWpfl3xk@! zZ6I<$csK!k%QC|t?5+*kdIUKJ;ohPfl zK1L4&HLXxw5e3z%Fwi_yib}-#W#4ZAhmFc`@Rjr>d#_&6*JA+o7xdMg#_mwhmn}|u zDhx>~yo%AWCxUN5g@gG~M2W7?@yG-28p%&;d+B9@yIWPN1RD&eVv*poTiAsK^-A@XLTQP|ze7^&UH~lOW zJ$C4}Lu1{eRK{TSqvd0(mS>1;yd39{9~Pl9I2zk0rgN8gLWGBa#)UM@>#|UcZpwyH zqlC4|r!^ETtYYmPBqv%&Nj;&m)gp$)U$B~g>}5dZ>q;@(blk(>P5o5m^Zpfvud-k4 z=4Fud(@{LkTM@f)sj_ZCB^OwAaRH&i9`XzDE1#!`(Fh^IP70ycf*a|oC)mPEqmsxGN zT(TkV}<=G{=Q`Mia)Nnv(-1G&^tmA-bFT} zf{R3jtq?c;i)}>s>(Xrqe_FZ;H8SZfBcT6Ixjc@KPX95625(^^|A$W`5`rU8`C**P zd-&+{!}g;#5YvV`C!9#rm&f3LFp&WZiIvgt8AppT>T zd_wl;b7n*W;E?10IqC>`GK+dQYT+a`pyKtF-{{=7bJ)m#np|e;T z*j+83VD%+S(H&Q78%fhKbK*=q^HU*lhUdFXUGA687n}&LmTtt(IkKGxr{nlI2>iUm z+>XhHe9oqIZp1Uxl2Z5H2=mO!le-Fo^aCw=eC-Gn80G;$7@mMb?nt zD|)fGeM-k!aWHIkJru*JB~~h^25jcvt+s#D1n--1HRJiH2aB=n?&=)z96IXQurNTn zjlec2!1t1?czA(*h~qZ9nv#3USN(nn&e!P`8VGaQ8xj%38X%AHd^mGqM<1{)0A+ZL zIYa2|%QG8MHh+B-qJYdVKODOw?~rBQ3iG(~_1^&{Pm-C2k#X*lD+Oe9g*Oq^GV`w# zKaY;zy?uXr@aFVs^emxFPJ{ylZ|pGE;Keco;iVpk7qhDj&O8PyaI8x6PqJ6)L*x-a zo-qe$u9wl*FtOo)d}JIdi`Xy+VP!g-kCp276FUP`M_RfPasVIH>cUGGr#Z&W4CZ|vjLEhI$%UL1wA?rjrm7IoH3`Z1EXl*QjA@#@K=w7Rk{R<^g0k?JGRha>BiNdwTdZ zIu|RU6LiUPzQJ11L_Q{jM#W^xFyCHRD}qDH$)K1!^*x69Ud6#xATj3p%rNauV^F+3 z2ouz24AFAHsWXZsU(jnZPcND3G)pi|K#NT~*5+_Aj4$0|dUo(RPKPuwTh-_7_QUpB z_>ht(wLEBwIQF#K2UM}pIBm*Us2eMwR|E{qI}nP~$AI$aLDcgE;`F1Rqqr$;3K#JZ zQzmYOY!2uK*oykK!lQMN=kp#Nxo-sZlX-9DP)DftqF?GmHI6o5CW}IL1VU{(84{=Y zHo!fe4_6Lcpn$J{HedqJQTk6>>Qg3o!T-TG@r1Z5r7Fd{I3ztk#y@grLi~k#K#MYS zD)~Tl-UA|bk&<)45HohbX8zdw5r4uKX3;DG1z56a_1Q_1JoQOmI=k7_x!{IMKRcNZ zhnqXyu8T!6#f~>EG;y%VJmxi}dq7 zop*Dmsvh{wI~;hXSPz&+jSyrWOy363$JyY!2J~O=0O$&00?Q}DE*Vu4A5LIh_&!I$ zI+;#DHbR|6le^9zoO6LIn^w&FqdU=wnfBu`Qaon{p2Q;cwyof1U6(MHDGU_CHfl)w zEGRPbAyMve0{VFRIce5{{Kj1%f1)j=D)95V!blskmf41(t!J3#em=~kC(BRTo)Hz2J&N6`vlD;Sc7mAKOHn-ilAaE6`XadP%RyQj^UN)l)S-l zxCjGK^7)9&v%{g;fAe0DW|S?HOZ|1lT#7`k{yd*yUO(<3unf+{EJ{x;+`#k!GHJGH z9in|;mSt{!VTt1=(`h!91BkiKF_jknJxzxN#U8SSB`d)zX{2}rd%v#%}9F2s^baQa@^ z6!{5orQafvvMWIi3V~zhEZ3N(jEWID)T`$$L&gRmT6_Qg6`Q zZ`Xp#@&uKCr&IXXz$sjLt=m->-13xGS=Sa^SKV4y-C9MxTYk31ZM$3XDO6WhltuD> z@02NAL2ZU$MZ)hP^?z`3tIQT{&Z{6-^qopE1}ccHiW}JDtdhtZT>(0qP=0U)T|@=aysvWLK{qt zE+AxaNPnXf3S?Evn@A__mOrR~ZD(hJMrYV@!^!k)e#?Rnsim<5YpzZ&zGKCE6R+Iy z&+=sU9`^8H09)43pxx3p#r|SG!EemwXQTY`g#3mZ6++IBQ;M?)WUDF7OTh9-$<#BK zNaBSj=2vZ6w_&}%utGKqyHO6bG8?@oAHh|emp}v41h5|}8^JNr8!JBmo0OQ0jQv?v zkX=Q>e6L=-J5JbLXqHvndiC117#T@8%&gLd`@E?(gv#B@Fq{0c@B>ih|7!fqi1v;uwe=k*2CO1?U*sVj!xUT^!J^(8I%TS!m8N((GOVw~<1r9G3k762izl4s zPvm#E^-aTSB8+RWW1*jk=v*u#KR=g2RwU-k&;XvRT5kdfg*!vx96=6KVY?^{=Rn1x zi7twEQ0=p9UUiGdN?&DY5jBJwGsyaRTjzG< zx~q&558Kz98rSqZJG7KnklpLb`n3i9 zBRGsCmng4Y!0)d|T;!MNqz(y-gEv3JaF)w)mScDyPpeAOyGrZPXZ2S21^+0C$BbMv zokFB_ld-fEu*WKqQ>r?q5n$-_XRSUskIVf^sws(GKaqn%%wh*&GOEK|%5KCsW=zF> zhyD@MTWxhm@1F8L7Ozp_W@o>NG~Ia>KJ!8M3fd=oKs!sj&OW`i*XB4d_a>IQZQ^)XhN z7=`3PmdMJQ7eL--A{svdDl3o?ST9o!C(2fk zjW=XwpRa=i4`rT6A)c!<>DYcwJt=e{jO!&VjU~&cq2(-qqn`|i8&vl;V)+4p0-zLw z2?$WOW_v4o2e^=4b;Q*uk@=#&HB}Xs`n5X2A`@g8bA}NLQTrjyb z`+B}A=t%2HfkO5r7_n?))^lQwxUpEa!7Pe<{#Ps&VoAmi+&kj@IjdbirfT+t6YTq2 zUy_qVWI*BB3D969vNYb}CUtg!U|=Q4Ar=e4m@$-`@SL&_E;O$*?aLb_ilKpXm;qHv zJ!w`BFcZ?3j31+1E&;htIvUMqxU)~0xd{b(5gm`&FtpmIdX5ct=J`4D=X2Bz;a1U8 zfZAEhvg9-PomDW|kdCbNt{Hqp&%Cd_61$Q8`SPcUePHD{?8-30Q#bI2_gBk3o;u|; zu{gUc%NnYT6v-E9sgNdd>Dy*3)aS^rAD@bj{A`)}TtS4+=X6;XBl1o)g^Rb7-QjRy z2XmgfbZLu|1fa%7$n;9$P_nB*Aop1O3G;}c@B~9lm?|C{M~0-R9@(S&2?MUk#JN>f19=cEFlVN zmZPkPVuPCWI3w{q20GlQY&=r2)zfrb@KhR%|DsX8Kb#MAQYm=0OpC_31%E8Wt+0() zW%I3w=*Sm$eF)y!EiYK2Nf{bDy{(vhuKEN6kwRx~O~z`IRp4DDG2PwgEhL=}yw8vI zKjFw&ezy3wV>;yMcB#9?c?kXqIxF zd&=Q?UN?WaEWSBf8MSKL;kl+*Jj2}GaZAa*A83$|A9&~WkWAMad{p!3!cNWwviWs7 znvbG$KE3mnrR4G3aA7pk!jsN*MexcwRJ?-cMr(LNU_ktIB%Sv*|e zK*+Rv6;8#%iPTny+F}YEpX3adhu)5gUoriho>UDXDt2An2FhIqxNEUIrWTILafLw| z8zvFE>4uHEOvhvtP#5YUWPKrQC2SHlT5`TTpOOwGU#NJN0DdokZY&EP^7I;{n15B9 z3|GAerS9)~2fDJfc8eb#ei{mnk9FtDauOFDBE?Er)4Ow$gIPA>^i7zF?ChYz-3fCi zN^-@IN64!{94+z$A3*x+{osQ51$J+)~|+0N;StKf-9ZygyBQ%z|9bE$%=c z?w6Q5M!EvBjz+rQ*^Q2cohzj1a$e?}X7oUx(B08cSTWaVcpqqJv=5PJjf#6|vq*rz zk>I>YJ*4KaKLCrYc6(Jtu(tTUAHIGZs<%3bEF>VYzo-&a_6>10*ih`wVDA*`?9Uw ztw{%W?$CIVpp_;c#`zU9sEIqbR+P;83#8MnD{ECegR7Uu9E-PJ=qeVcC1FpX_27i0s&h+8ganoCnNIA9uqn2WyoaRNu}rvxcr!C$1u-&L|yu zIc#mx!${6^@-}e&L6I=TIVNZzabZMcN4bY`p-MM#+7)7}lK^(X&5s|YUeCe@wK|y) zvt2}JJS+D45&D0XLn*3Jgbvb(g-|SZi1Z#ko}#*fqm`<%3pbl+DQuVCW+rAjwvXC;8drm zjcv-kUrfEDErasE+n)k*VliBK+1DP$*UeDQD4!L?;Z5l{pI=<0{nWhX_=}USKE#^p z8b4gqxW%bT)5iUpWuIgmJ*(ptF#&*_ETozyZ6M-SiCilZWfp>9j7OgV!k=dEG(#bDI%WYQtV;J4Y%(y+D|C~F zrC(2zi>L43zCC?Pj{fK%qlz)K<3ZN{FLG1gpzl8XMlS1!D9n#LAj*2A#?{(g>LE1= zR{t(IO~rxGop~8Zt(>EmiPoyuKRIH1B=T>C*Z<)mr4M%&2`ODXi9=!R(<)=XK0ju*4;{_57m*!(ovh_evDev zan}E|(v)`gKlYEnRbsau|zw$Uug?By=I6^-)CHd_j_6S|}pDPC7KPR9Ubv$jp9#Nyy!4ppX=N^(uNdyFCl7voJ zO=vhv9+1F0RmMa~BC(9jH7sp1O+KgDJb!D(Rf*T*Hvk@aGt>L zs!${gjgd+=2sVWTI(&5dtv1=vB|Chuzi(w6{KsE7Qau$u==M~Ud=OsKYgSUoI9Wm& zX6uoJj(aCevOG_T(q%NTa(7pRP9tT2W~j%uqvu*m3WbH?O}1ji-s64sm|Vd!aSGVH zs49|w1%gktbT`Lo(nCY|2$&&V(%i_|!qJ=E$QvM`Z2YY#UZ7*Nj%h&euI~IB=xTw{x zORbaZ76l{b+6WiR0+cFg5e~wTwlY2Os$qAxr-$mR^(>sC9z!36kiph500zcm_}tPZ zZoV*ox-g?6iOxs!`2-{)BUKvj#i$YDDuxb_{g!5X3I5L94Jql3@?8eItFe3DajY^L z0Uz4chTUndoLmf2PlCp3A$f8@p{S`OKcwCq(AIqdM}k>}Ag(3n7-ojSllUU}4zmqg zlUttKiQY={av4nHi`fSI>>Y6LbXKR>$N@vG5;qrCXiBb0*v|Y?#3H8|HJ%^qd11l=wdLprOiWR9FZL{M8XjtI@ zCU3dJ6*H_gc*4fGm$s8JmVW*NWS0}lQVQIU!AX#`fX9rGDQgu`a z2Yr-oJa8#(beU1tG-VN?6*mX5yyjL>7cHYhINPIisf20q8^g{bbS0ph5HX4lR@9#&zbpQ1)&Uf2RRy%e9tYxO5FIr}2|M-if zfmZC6@G{4R%fGcS71fVnX_5F-b|_l<_4;W+uChZ|Mhng?uz)dEtV zTM0ZJth{%4hJv0%57}_A0HF8$@mfY_zwEQ=wamj&Cs$1YMi@hFINN@oTki|`GO&ON z($3a9@^uga>IeBT$h*&BpaIr(uwLy(pS35#$8PF*mRCBxm@xer3uqHKMbC0}A*Vx* zy`3-++0l0#f#j@Vni0PDWn7{G4k+NLY)pAOqJ6S&%=$spvGA775JZLnb09(iURPqn zBFzz{i6+O96QQqNrI%M5Ll7^9Obl-TKDMzGZE`tB$wuN26Vfv>wlRUe*`id_*DCL{ zjHp)mp~w6cDL4ehr_K|)r4zvg4YXFK7ZC**kk{XgB8XbZvnksGzrf^*lv?5>p2j1d z7wJ?eVZ6G#cKrqGa6Y2JPWfB*tHF-tfa?wFprSOv%L$_lM;8<0S>7zTF?NrCh~_f% z7WOKfh^o6_3Q2!p&=gbU03$HHHf#-2FKsjNlC(w2-pvG5Ke_8a3b3-J=IKB2mITPN zkwdD*A~lRrza&3S6P1sOi&7xE0*(5Nr7`|Um~hJVthRsx#>w64lO+ukXDPgCK*B|9 z1yhNQK}n;gZIlEDaWDocR_WKYHIy$0bzxX7D8DRw09SE^!5m)R(hspSIb`|}CGN8pF0Rr!}-O>(=pZOuG0&@d+ zXalr(Cb_0HQ_HjwCMza$S!Li=sp;n%24A^zt6~WY1XhVcIw@8k~q!J=MJVsv> zm>K~nA}k?`d7)ywIc24G2FV3_BSpMky12VY(n;PX|M_G-q8p6Eqjx9xc%%EM)BOOy z=#P&^#UgeC|CKSDTMYTS$_AF>o2ah9yz(^9LZB~fQA)CExI#B z(u{F|igNSL+vsG7C<@HyhWtpz9u-?!;dsqod6AEWoyI@1yGubp(FX{ICEG#VXZLxm z`tMvi>dMT?&>p)Kl@ut{za5BUb0w>Gk5z}04Kshb#7 zNOR}1^f}-_3dlE$M-#y=m~Vpd-RJXGbUx(~%(?zGOh3hENq+*8;HS>HI-@)#7TXh} zeuhZI{kYTJU}Z8W3|po_pI**s&358x)iq53*{;6l!q11KNq+vA9D3_1H1bkhyy~So zxb&v2fnKr8Q9YAaMOyP;M$xYifJDh>jG2K(vMYccz6^(CPi!UTdsa@gi_r>RljfFD zAU@kqZh~aeGDkO+Kb<8mU{*0Q6l$yi$rr1!Ct~{rP4}Ed`1VG-5s)&!WCJRPwvK6R zx+Khwl#FADq5@ACA%GxVT7^?kW67h(tWvWtHAXf#DYS zKKZ8Yy!`_r(O(xn>5@&ppSW9LC?DZ&aI4<>7s=)IKrwmEP0DWF zC)eJ56i-zYP%b_asfok~g2H2!P8k)U!jaj>awHiH#KRgrp+I6;eA2Q4V_YN+4{VT;mR)6J7o7DK2Ltd)Egz}52z-+R|0p-vQ!7Dq_d!kbBf`cr z6aqYY+XGCZ*Jg3gXyaLAT*RD4IIRxq1AZ(f4)(tz8WqVlMVF(!A^x% zvThL#;ee{0 zf~Wzb$Q`V1=L{%^*FY&6ckK=MDu;2Y9ZW(w+zE2UI#Y5I^4Z-I8icp0(0FOg_tr{h zWgRb4N`ps^&5J2y{7WP1g{?xXChr*4EhiV2_u+_T-gyoCxM$nRG3n0R3tawQ;8fYq z^BH{d0(gw~#j|17|Fq{nh}Ppr583o=3D4H!Ek&6>R>`eAN;ZR?)Unw{=7pcI>TUc3 zf%^x2EYnx`9m4>7C`L%+hYGXJW(TtqQa1}nkk7}x5kFu1ysrt(-q z^Bx|;w!9#%@+F;H`RRB*>KVku_niPQeC44PzArf7;RBZ<_}UYBfYzPu?Z>)9j&VBm zFU*KNty^)>+LL*H)zAog5G9u;8+eZobjEC={U)or}q}IUg0`2)+D}eze_leZ)$i z^at&|XGep6vr7}YDpXeHs(krca(~JBWr=Xrr&>T>4Eo|uu|Rb53~$SD;i+iMuVmnm zxTl$yuI*@3oL?yRRL#Ya4L!lBLGWn=+&lR)p>iqHHzm-L>AMu705Lt{zn-ZRuhpxg zpBYHKh!IO_v8yy)$w5||gnDhTS{tnXBMerCsfo!`eghM`T*4ND2ez0v)W-i()m3Qr z4)6AIr3}zrU-4D5E|HMfgB<$^1Vn+j; z;c3vZuxtsink)lW9UiE(=gfyW!@co{A$(P=S}{{(^z}%S0zpSwKQsilA;>gBW+}?; z(eRHm{WCf~`o|&#CS9w_$+;)lNsIYLylbddML9AH2oXQy73h#F z(1k4vOyweVlm@f(Ekw1ayx+EE^B^5~BHyMH>zz2LvW37#yB(mSY6CyK{QyE*9l;Z; zr8><|4GV(R%skppZ99e4S{?PL(Uv-y!(X7tN1QKOOKxdsLIr)an7 zuO`h=BGybb&AX|ze_)P`*~*n#ZJ4!MyH;!0YVEQ-wc8=@D%S;@pTU*5SLoTWvAD>q zIDdBIT%>vI;O;e=sI=mb#A3y>p?f`$3fQM7hRT{2j5)pJmwOBp#kcHy9zh3yXRNkL z-K%<^^38XK)Nf~(mUbgeqpSPcT!TbzId|(&de0%J3O(eLY@BCi2^{ZDfz>Mt3-1X% zl7Yky{Z_}qwXHBh5^aoxU*b3hoN9zV(9JQ+!}tLY#1#oD-Y z_lbI^B5lX>;jpZdk%^%Cg@Ni8I10X{C}XX@y;j~xRfh`o7Hx>~?6$A47hh$T7vnO| zDXz|&6_iI>7J>3&vhDMeTfg`17A04{R%`3>*Te(GhRj=X{mxt4Le6|KB$}ELx8~3Q z5>|N|AMC68YxYk1>6y25TPvz^HNOBCa4)JDLH4M*!9^~`2m79Uuh%};YgvCS>whDk z>%S*AC#?L0C~0iBIKhy!-&q=^snN*qoxK{hLGOxkI&n68BEseyw$LM99JE4jp0)gj zAo~MK@#2bA*z~~nQ191v3CyLFNColBv>ldS&G8M;{dVuD9sCJ|=l@V-DDblJ8;PA` z%wkE!6BP997G`g z?M+4*wPPI;3(ez5!ijq1OYGqi?naQENLKm@@BKnH-Mp9^_-u)H9PzU5h(S|u2`BZ* zfiA?=la{j~dcpSwrd*$-ByG6lIG8t&rT z*X@`}Jw$)|n=M^>TlZ?TzNyvs4e#46I`QoF38KRY^D{C^fIG`Ghybb!xnTr!EL3WO z%jZGDRdK7UouOr_akV$U>{zfb9}22R`mpXK<-h&Y@S_BT|p`m{uoFNJ{t|qF8mq12xNDo1<)7zpdteRKp#hosE9BKZrJ?F47l1ZHD+9|DCy@@1g_)e53;tUJ*ux zHrGuMvb^*IUX%Q)bW)~jChw-%wK9&ZFWc6t=~^}Y208X)s;;tmK>v_~L^eDe&quHd zcwJcJ{{JP{g>f?bl1)EtrlWX6s;-ix9C@$#G)=fzW!7qy&C=O0(aheeg4wUxaF7e@ z9_nez!YAP6x#6NrJUlx-JU)AO`W_QcT|e9kS9}o} zrZCO;JfCGFOz$luHdzdGzY+_k;IG2hUy~p8a<8<`h4{wRE=kR=E;UZOGlhx@-9D{rkf=r)SX7 z*}LDKy*_$=_V>g8W=nVy-j1VOl=G(gL4&zbYygwF4YQk(UJ7h8nBcEb<93S#4Eg2M z5&tS2&9k#WqciNdVY;`2tT1_>4U@);!dDl zEXS^1ly}^B7Z!43|C~-KQG4Z^4WFkw`h79Xg1KsgI?LNsVtT=Xjapsmz!51N1kRn( zMVJ#BH2EFNwBjzZ?%Y(6T;YUY<_BJ%KS#d^7|P`Ar=O#yH#7%dUW_JiSaee6sVYoa z4KO<%ySHz6C)yO*1Rg}&ohFFNpkY0TI(ud~ktp$H>UQC(RO1X74gR%(WmQMLq2^~M zp4dV(hVV>g)9C4bG#X~{paF|)TA3KIdKNWIvDsF18x3cTC~b+g0(!AmpuRLZttf3m z6ORWTcJT#k&WW}#a0?ZL#&#FKYKA@miAv57zw^S>=*iR72&$s&dxQisbS*pjx=iP5yklYYh*mCl?7Vnt>>E9`3^?M`aficl(UTcCN=);QohLo}$&J(IruU7HWOdy1 zvV4w$Tm0Wnch~CwIu79?z3rLDQQ))H>?Za!d-Tw0=Iiarqo)4=Og^!ja&zbCX%CUGH7bP1hw> znmrSP>84ui)rT$g(A(}7HR+T$>6SOy#wNJnqDBv~5rLwp)eg4eK(d%JPL@Lf(Eb}p z(#1S^r{%1M$%Y^&Ze4e=2~3;+T~+jxT{#R%Q}m!)*z4dm5M6?uz+B_$F-(WaKpY)! z_`jbD5i;VfT*TbA5fetRx2>yh+r-#8^$|nXYyUgK(i{IfLeEd%9X32}X_LfFf3(%& z>u-^9tTGB5vzpAjRCf^`G+6(XZ;Sug`PeMR3-@xA;YY{5-n((0#LknR^Q7-Q88}a_ zyUtk7lh}FEbDs2_Cj(sr3*fi^;;}%Z_|WOvNY8=jA}D{sk-HOaz%aa^0ik(Z(16k4 zf(Ar?`vnb%^bQIdJfc-}!wnwODhe9x(kcoXJfT$-H0Tg0`$a7XmV<6p?s3nAVYg*X zm@$b?w|r8SlgOTXIu-*&dwA ztrGup=L}v`nD=z{9CNb*FYBf4L4v{W4eY$d6}YBtPegateZ%}ukFgFjRp~JuZuBAG zE013czHj{FF9%EcpUEd~qhtse@6My^%!ATDu?@rpZqj<1-daBO7>!Nz*UV+jT-MCx zKb5)Yr?iNnES+Ig;1#AjYmjp=;d}AB1hLdtasE05s>@sl*W__c9@pe?O&&wEp@>+{ zwG0)pCWC$pA{r!{U#`+&(m<1ioAh5++*pR7DPV{7m0&a0gmq0=*MxOVScAl2O<5hv zS_tqF1KsA)3sxBVS$4fj`f3fcCa-Jqx+bp+y2Jdkztw)!?rcRrZ?&Jaw~DAN{n!|> zw4(;S4P{j}b4eTlrG1~IquzX)`vY&VQHXYHp*2UZ)A6UkD=P?(6LoLX(=RMM&zGP= zQ5fO{*tF%a1bAXC$+1;vkrP@lww-g>O6mIcf>Jr~U%yjoeeG+udW>pjf9dc1%a2Cd zW9qN0=1Vfh<@|A#&XOUPdb6DORSwu-5B#?EE?uO#{5ly__&!vxwGL;ih2+a-a6IFn zXC%qv1j-!AnTa&k)mU4AvjIMfiooi$UPs9IFB^ICYuk-p1N-kr<$LxD*{%37;#|Z`BZM-FB_pu65g0 z=(Z&aAXl=4^5-aa)8rD>5}{#9(xh=r>s3*KO-%V5>SkfZPS07b=8RXIP{XzR6~PPcfT8os{uH6*T&~iu2kquh?&m6?%FUJDCiY z#8e%|@QbvuyE{)=Ko`SR}1QM`N1f z(nKC1-LFi*5d*BnnYB2x7H3wZqw6=J&jH}$nO|ZdC0%C0H$Lzc-aRqY-73nmBvj(| zw~T*Q9wOY4)Ff;5QjrN+J=fqo%eJWc_jqM=+dtfzim$2onu>p)UPNx~m|_C2U57e% zxo#zG)7_@X_Q*))+b?6S*f&cm+KTS3gbrQD6fg~cT1G-)g{xkBnB_$R_Jj#T$#J&6i&)`@G8!q-TamVb15SIllX>QO~=_l z(@x;9i6nHFv2KwvbI-X0!wA#M1V{Y?lZ02(g>W=&3_c~hb42UGH2(4u)|MCc%d$X? z&^@QnZhM^m|LlDUcN^ES=3i<1o#Ox!2$Hg*B%xB0MM`IB48#09>rk)}8AE?c+~u)#J#HLH7%(os4YWF3=W7SJcX zbVR^JNJOHWItnfw4LaIxijeFm`V5ab;T{mtEZ3c8NnM4&q+-XBfvUd_XV$?DE|RkyGRFbu%`^;zt+joy`3$= z)bDMOzc(CxlS$qplRQ$SYf(NdY*ll8TF&`j{L*NC(xVA3dZXCos@-|uT^O95b#L-q z`=S2fp3IcfZ341%miD2{mEqR`e@0yf@&Ssx*d6wUSJMg@^Z zb$hy8v1b>$)?2WwA(}kJ`?O#84n0r`*Tw%1pM38+8)VVve|?~0U=OKy8vXjQ0unUTD$>v=U0mg#IbIoWyI@6=XAuYO9b3s z{q3fp`%4Ecs{AHFfIS0M=md%i@XObEKtiP%}z8( z>|-WLQtK7P|5A(RGrWgqN~$|YPKvb*t_tG~Xz?81(w^)mhrq0E^a{CjmZ)LQt&kyR zmw1|G>Jv5bHPfrjQ44iPKB&933JTo=F=@T+t-FU7lp^Psz> z5)6|Sa8FKh6bKJ#jPtQrPz=t4$F0h8J&`&_t;uB>7RV|$CPnf*fO%RcV_KGl^k(1a3-*LMoBP#(q5mezzv z$F7I`^T97CRHhT_`eJdQY%oaQV5wO|YtJT#*8Vf7mD#ZK>TBcSS6_F#-YUtv515Ej z$xlvhCWGs;nB@P4qmhGBL(Ct4>rdcf?Ozpd<+F^sQ*3~_!75Z*@)@V=yksp@qhcoC zITfEULdDS4$)L=z2r~&EyE|~Jz?6q-NCz`k(GyPMj9*~TG`5js>EN0T;GujR_Md&O z4iuA=)g#AQI#h>#fJR#oEDA>Z!)j(#v!=)8iMJlF%7OLx<8(BbqpZT3%kiGg@F2-1 zwq)n}OCti%JL2D{6RxsuDx%HKeA49yoFB6UC6OE1*3lETOt1}X=Dp-GF`pff2c}Hs ztdhgipTv>nDmA;O+nN`w^4-^-jHEs9lVkfCS+$v)wo$;z(2M|5DqQ-oJ_RNKz>x#aJPaRDz3%%(?Zya8M=^@#1Zko|)R!LDR+ht|z=VbbX3&9(3HCHKy zw8JSUL7JZ+Mz$c+S9qEyS0Mx&POY52S^C|t@ELoj2UjLb5_Z#nMU z9Wk*>_ZF9p$a?n-ZOLmTQx6C+LDq`J0j@c7y7>Vax&=$hs35>{1 zY&*bbqsHb5va#~`Rx^5*{SiCRT+C(5gL%>&5%zEW=o)v&Q)yj7G(~Dmh1! zDT^9E$Ek9$P;dg0Z*~3Q#YCtNNFg)sRWEgAPtINw5osnQ#y)hu-Qo;|;F^;09GEvM zMW76w^S;i5mFj`s9}7YDaXhw$&#LS0M!goHHQe<3{%lZ+22s>%@AP8XO3 zlR^r*O10#0B#`#hV~{XS5=iF?jgM&AtCA;&KOFq>^z`iD$+M&9r1AB&w>gKzk(;BG zbI>VrG9QhC#JDudftM}?L0zZSaWTp|?sR&IS^?U1U@=K56GrGPWTjmflC>&aBf+tK zwJ+T#JJh&;FVX73Ef|?aUrp}91H;15nqvvXC0xZ)Ar%sJU1Z1$h*iUrf?Jt}tYiTD zi$8>*ym|^e{J*Ei2WO98Jcl2TPtT4Ie>^&YUymJPT$~Y#RXD^&XaUTS>CfLThcp?Y zAn)3>GAKRy?KiUtGZ9NY+0$>>p7{;^ENq|w%6j#+#(q8X(v}Af z&$EN0=g$vM&we^M`H46(+v02d8a+{bhv8jVbz!YF`Ey`zwUB0W7Z*QCD05n~?a5bX z*K>Hs=<1wV8zx19u8<55T#~*`^HIZ*t3kxDH7vYd@noT#sx2X9nN({K{AJ? zdpN0Q3dyRt0(zvS7<-kYNBg|e999c44IGq95a+@VeUV9`XCt&IKdkqx9Ea&PIM8ZN zs$?Z!9)}AYt|kuW?i=WRa^FcV|B(n*Y;<1H>ghbx*RE>hSW=4j{PVa z_V@EuJW~wxc9*Uqhd32c! zvkKZwd3G}QcFABU@ve*ml6}6#LJvU};d7OAoKSpelr~qw<4Uxqu06q9*D<<VQwG2Yl4K{&1U9UlOnwMS8y;YYl3dN6bN;PHFueqhvwI<`bI<2QBg^gWWBItlVUElz9sQVA zKg+13WZ!JGBahpbI&R5bZzvOdY*WM?E0U?3Y}?P+1A}p^>kwYks;P3<*#cCM+}*F~ z7i}97>p7u3D+aP)s_DcbHQ2)39z78%UL*qJGG_SEEj!zNci&0)F=24rHq3Ko1x4upc$QH|=hglv zW%j!N>%gf994faBdnG<5*~kon{WL4zZeI2z9P6Vmd&>`mV^7GpQ_hH+rQnkcgkUeP zLTd~p;P7n6KiJURYH-;*{?+OuF5E|05G6Ha3176Md?de2VQ8?Ad^vmiAhlP-YVT{` z$J!Uo#0WS$6fZ^rYZox{D-7cvVWE2!n;5-oS|b=cHZMz5c|`0O*G|lkR(NxDCUapbcZ_4q2c{0M-QK>FC3Naa=}_8+InPZlpQ{S zHlt44g-DYUMTM3t(d55jZK|_2q7cfGn^1Ol?1Yxswf)59XvB^!RG`MOSNiQ*WPkq- zx!O11;D5LHC;PZ;>?8O+nj9Px5DkXK(DNf6@_5)YVB&?U0@;zH>(-e{@BwBmnH7Em ziQUo5oVWWriI{0R>*THCS{?&a0%iihVS;6L*xS6E&GmaiwQI=v zo=k9U1Q8wXIX(iGb*@^`Kkn>i49=>MtRcWJPkOUzPXi11;HRQWIN(!5(f(5RVv-tSs$Mf_RvO$W(YE24%=sL z%tZi|CN>m9P+McE%+NJJ+)Jb#E}w2_r5UmXWZ%gt*)DtdynivOu_8y3yUA`B zR_ZFPo}zsk<6htQ;V)qHgDmAO7Df7i z36!bd=pf8VegqW`!fQ@27=u_}Kf{e}6#yh3T7+S<&KHZs7BC6Xv6Aq=Hl;kGVDVOs ztI1J@cn=aoQy3qPf+FSh=t4{xf82Gi7OwSQyAeAfO`3dc%Jnn z>J<%D;mBz*sS2}b2LD6$bu?T6)hBLzdQ492;5_0-i{T-*qE0?6K!|C>YIQLz6ZVBo z!aMTk(9UtjruOJYuCp9FD~x6@q*j`_L)4VMHMO+oAXvzfk+?qjI%);AE(m8veO-vGE z#QHXNlD)%^7aKQ+Kc(RJiJflmj5-8=8Xoh4gS#q=`4o8%N6424h=Iq~kCfZq@y$*w z9Rz3a@--X7(d0)QlRXg~I>pknD1OX5Mx3EYj}1jp1jRwwzwHuAXGf?(8Zeq%K%;4jF-W>3wsmDeb8>^yuce zDBRlQ^$kGJm>;Dvb8ospZ5vJQFqy~=-yQV)pFawC7d?-=9xw5Y?eNk+e^f&^HPI_g zQId`IxOsp%x@nlwV34?Z99pX-j5NKT344x=W^1dK>ycjJ-l{hGly!ns+aFh|4C%FJ z)~ghWo;HfnMlsqbMz^dO$;0=-qaHOYMuxC$C)$%teZ-`Mr@2i3Q=*AdQuYGUjQu&? ztWSV+yU6@xc>e$~bL_`!WPJp1V@+Pj%bfHP((B^o8a2d;+tZN^HVX(Dn)K>CMDHQJbN9R$h@o}YQtr7hTLAiCcGEbK-H0E1^2sHia8jK zaL?i!Lpb1#eALSL;i69Q3E$nQm zW2aL`s6BSeGmllw&WJs(-H-UwB%+-Ur~*qHea)-IviGWk*~v{c%f{M`SFcKbd(UZV zV$grpsnvKN+z%_%HLvo%!xx2W0d35tAUe`(2J5(ahopB?z6#&*{xu zDxEBc!g^$N{}!}^-&w68{Lbnu;df$9;r{h#Z~nfs3j6n+6&S$pENTIlE3rZ&_#K}W z9M-tC**o#uy?6S5?e9Kd=I-&dC}+v5um2M^YVz-FI?YD;WLuv2t+`5n+MZ%!<@S6A zGv7WEW<^Sjf~H@6z1On2bTEM9x_v-DC{w5ysnjby@5*gH(o<)_hAiHY$K_YoP(Due z*9F@=@^dn3NoRTgIm>6G%)|G9=c&q$c&gq^5EIOrCbfYnylCxUF%$&JueWDr-65UG zhCSWF;WjqBmo)EMFY!!QMVUE}F0zVyO`hXkbG2AJqa+jHEg<1E2n!#lA!}7=g*k)O zV(}`{m9r51L^mcSJ(LT6rY>p&CnA&+F7V7J!Ue^U)B+GgXYqA**SK$ZL zm|{(frMxL{6f4YA63BR|UdGgT%XkJ)Zi-d#Qm{QZsi>W7C+T z@p$wY76M|@vvwsAlaoaoaVwmi1s*!Xh7APpGuW#6GzP=ZgU;pOll{geYMaAeNs{#) zwJ;EgemqR&)vx=s1Rjx1;?y3SF7f>(%P8*!;S*%lW>2?Ra@nx*co>4c___vdRgtLk zt_dT+?_$lo1`s2B%Qyq>+8I|>@Gg|N2UEn{a12(ST={m$oH0q{uF7h{`m8Nv%jw3B z*;+}UR-U~zzqHg)teiC6w@ZA%UX?1AlDiLxmFat<<(-Nv@qw4 zE~XP|02EwVavO(tVG2WG0M z)Y-&6s}wy#-1nmW8*t69zV}B)U=`5H8TQ6Wq1AW+L)3Rv#UJAaMG}Yp!M}r{<$sj(n>hnMKB!3H1Q5hNh24jHpIbtbexDB`|atYYT zDm$59)Vo9o1r~WVOuP|u&+Hj$B^%saA;NF<Qn(VbOk0+S!OCZANBPX% zk6ztVd_O$%ifGArinkQZ=!sJ)n;~?yK^#5JCvV`T5&h7=2*3%CwU70Eiz&4ir;-xa zZUqV4b4L}>N}nD*|NEgR)5(u|ht1tUq<2m(Fv{KRf&PTMxA4rj-Y59J!uR)Li&+F# z->GctoMf$ZF33=V&v}p})G=SAm@P6r)&&<{D&B=I*XZT?xO|tF+O42htUM4<#n`4F zH56gj-)Dn4m9*0)ZJ^#x=A%(ff!k1ht=gDZ8=#_SY{6LIoB|+(rV9J8cRc) zz+xQ=-j3nkS)KC-zc+6Eh*8K6>fiGZvHqRLMuCP|_x3`baf#@tI*|y8hB<)fCfRXI z-qmh_r?7+uT+YCx>+!>7e0p6iIq8-6lS7Vp& zD^b(L=vq^xNb_TCj;>06#~OkGT3}=ciE&jnNC4Xb)Sh1?=c_3e)H7~E7t7~1N(fo7 z+i|QHH-Pk`+QREXv)7h0=-^uND!HqMwA{7abc0w`vp&NMgn}&7S=Rm%X?@-WWR@;0 zheg(-OS1v-HiiJe!I}@a;M>zAa!_2aGiKGC6bahx5K|crES?U8&KKf3>vmSW$tF~7 zkZ5mZ!uy|`8iXXSYXHui!xWd)b5SF@Z`a|D)iMh&0NHKu2tK**tYfGa#W*D>HgjMw zG}z(h0`&w6+!=?*DH-1(8C(>Gp~^+clz(S77&EXWZu}v+)I2}UQmP&i03yXV--J0$ zU?du^tm9MR>3)IoZm@PiKy2|80}cwo?HF8z<^$k9>S*I>w$yFej8NS*@OC`NC|R@+ zCq5IN1XFhml`?D3`KD#jRG-b+ht&xa;dQzL1h}d^i@E6rlhC0o~NtIM2cpw z+eU7YgAW1XNLrxKTMg@5=&H<8>>TdkYEdjE-q~SDS-lnnS-Z>T^$OJ=(M286nkndf z^G&njD&9m{tnD&R(+chBoZ4VLbsGY=JJ3>##l_G95gExHZ}p{Q2gP`dtY|2J)eoqz zwgxpZ$yJs&6_sfngPBAiV-qET3q@>x(r;c&4uxS(2bTHb;G;& zA-noct&z*t2t^xrZBAQG4cFznz)1u8% ztA=UCAxI`~gqj|T_0!^9tPnr#8zZuB(R3w!p21qdQyVM zugA$~sVXY&B^{MnI=mrQf`PrK1=ax9(I;1FO<>qeG1)?`J}A0Lm?dQwjc^1GWcfNr zZMt=5pfH~pF<_e2#3|Yvml4OEgtGSTkROhaZ%_pzSosoteQ1! zueloqbOdV%8pFWIbCbj&P#nkx{o zh|{t;6OCu$tA;ayJkU803_>wPuI($F^V>kuCJGIlp44Y$CWx6z7+kUI(hfNn_kXw) zD{Ran1k}iVNx||v#pY3J#uQR_+-Q0tjkOL_PB$# z1=lTElX5Bvz>hfAoC_Xz4((W(Cs{Q^95gbjiW4C??=ZW}C;ocs0fO`%))oc~Se{ux z89B|cK=L}R8dkp?*hqG}USo&HqOmbrY>XDaXQM^GFHI8-_6G}nzK%f%M%f~N;8Mcx zt}KTD4aX{cSjUCsCC(+Ut({9AN-F6!EdsmQKfk4jkEH&fqfO{ZsrD?aF^f{VwJ=1M}LJ0w%cA2G3J_L2im!uJi(8QgKNAwBB@im z7+jt{L$B}baSc=FPjKdEH(?f<^IU0hGkP&`a!tIeX-~|lJ$GyKs=KNmOJllso4wcX z7rWUDUE2O3d&7P0LEB?w6%K=X_7_fat5{vmh*q(CvSz%aGWk^EJM zFUrJ+2f`#BZ`Ck1-Zg57+N<^SqRUkNA#zi?9BHzTLD`4Lj}A@_Wz+=4TVTDtqU;>~ zJ-a!9Uof@n?2Y_g23^;q+4_%y=4CLORE^Y1GN1PuV1EV05_4pIeLl9CM))8Xlwwe@3VzZ#COz0${_0bmBap5BrA+@Nv@VXL6SkS0xN|#$Y%DLY)gbazc2=loH zwz~xsi_COu0$hG;luyu!vz3jfvzsl-QQ$6`4<05ChXIbWNSk*3M%wMDmP6c-j+sN; z0eYlInMGv+`Ehf+xG@W)O)y-&b@F`G!=^;fhNEvd`fZlzVa0hE=dHF?NraPZR$ovj zx@{NqchO=vichqJPmWLIXaZX1AfwQTNV#Z8Wz%FNYhjK*hgrVO57RwQrmjPU?X z!i>!ochm!pQx-p(O>mKi4rDVQyTWSbAAE?1Xx`Hw4G{~y5TqpD0emWr4;eh0{2e9< z8-(>ak`K>|8UCFOdkGf5&0#HW*awgFDlwjKg(k?qXCL#R&WJH7lxDt5qCEqu`AIef zR*)i3e4Cazwh>HyVG*mcS+#YK<<5y^-QL#vFtMNc?pHIABIsH{nxJGLzGT7vwRKhL zH`Gj4MI_A-Ud0=@ptLk|SZ{`c1~)kd6ssJXD`erw%#pM|XtCHIYZGZ0A^KBjngY8q zh?)~JhP{W8A{b3d2z$>*(1+P(v;8$ z7=mkl6t9g?A!%< z5@ks0A5=yVFNevwljLvcepr=*!pkb8=S~21{jo6@*2$y6J=XbOjr? zzwcgM{JV~oGR3OgO89t6O>*U>T z-;;=^CEi*6yv$z*fW{2mG-&g&$XX#2ai_+^5IQA#+D2-DXYxwYVUK#k*NRe024%8ox)>nqkylPsKvrlVfZMvb zybPWWoJ?)Tj^uWd|E)gd3o%H9%wne)YVu8Aij58>Vhci&Xej9Byvvw@uXm&KdQsE@ z`}>$=ql&VzI#G#eD;t#7mw!l}eo9c*OTVw|)tfu5=+U)QAgBqQK%;zdy0qxvA@J zde+1em%W`9TNz2XjON2NQ7d`Zc=Hz*&SUkR;;(9sas2#7pzruaaLgUo5cxvb7kWx> zd#$MDLb#+OKv5k1Xz2v#fD*F$6zHW>pVfG}OCD%7v3>Jgk?e0V3B0*BRde;^&!RGwzff{h9V=9fx(d>V zTSPC>4ml^pabRPn;Z=i4@S9j)axUH3>Aqgd9r`4j7F9lbRJ>oOOVsS;b3&BcI88TB z(+y~xc|Kj}xF$cMdSCeu4{Vq=RuoS?n(6MtFu0p~fikhwpS{F_cH=i6_X@GbWWnudi;bRsnt)_+@nSM(Gkrq^z6U$vQ>THtj| z5M@Wv3%MK67;w%7v2&&4ql%z`j7b}W{VJAi1m1p$+|f`Iv|2ox*}*b7*h@=yxrX5z z42@Grb+aM@7bnsNi>hbMqp!XeK@eYeT@)Q1+G>KU3^D<)Z7E-?N6~`yaR9SqyuU=| zlda;?uY*L00Y;JtM|(7Ub%bPy(u(|)d+m$TW4N+OfCeRI%~Y~FplN}3772|+b8E57 zjww^YTLvJH9J-J@C{MUFD+bGuE#$f(LjnfIT<5b)m_OJ>6;$%rmG!H5qb3y9Z*9|U zx`7NC`6>d@vdsZ>SXK8!A24L#5Nf zAe&vSH1-g){#|(^(}lJ#bQ~ z^63$Y$96D+7GEV5KZ@_K!2(yE68GjyTM4TgZ;=n9!8Og-HZ1?tg(C7DtW7&}OcI(A z!W&#;n!h5YCO4sNMZshtME_*J0kpRrH2p6V<=FIK&!1JPVhi$wJ9TQ`)}by(REZ5% zh_xqReQgzk6$1s1;nsuIN9wBYjR!iQHp$ZhM;RE>0L44Qo(3|=y&ZN!R#;*4M2kcM z9b`bE(3n>b!X~hT+LMT{Tjn3d3pi}F9%^72#k}n0Kvq)3F~IRQuP@a;GfWAQ3E0R) zzd)MmnfWm`qH5cWh#jy%DnF8s2b*?d@cp?yEF>*0!gz6II0 zE_ce%J55qWPl*1oR)-M1E^$p>vvn(%Q$7aPNtn9aNMbidzVszZ%wYN)uA1EB&~inZ(zJB>>k|z7|HB)2lA?t=H8dNt zUSr6UuDb-I+!U0W-x%r(b27C`6+5b9h}Md{cZJ9sUDGpSikkf~Jjsv%y_RWixzk)> z@WJupzueosrT7Ec*9IJJ6N0b_LAcEj1ahuyvlFUQ@Q5Q==6In|*1zVz;hzfe3E~tV%@X0~tob(kfcpt{70rh!c-Bc4J z;-emz*!cvw+HeaKw!`3Wo(K^N)X;KXhO$!*W?Qfo+zZB-h>wJffQ_;)yS1?+fiXrb zsy5up9%MjxIs|Q$kl+xnkU44din?cag>xz`v5Cd0u#4 z;rrWdJ4(sP;g;2ssZi^rZxIuNS#Jlxw3YEA(KEwY#HyA9(Ky3nY`D`n9VHynfRBbX z^Q(=SVFy)npsyr&rY;_a>+k(gaeMwG_W%iOOg2Cx6ONCauT@hh410P(Xs-lBO?X=^ zzw6=R`>>FcdlOBwif9_YU!9978c*w3o7wGOWwQhBRqcrLgvl(12i{X4Tyh1G0%-bX zwX+p+y)*j}x4;k??xT)KE8tM9isiAWl;|u-p~Ui4ppN;4LAFj{Ky!SO-L1}#+H8Sf znLhvzGQx_?J@7SuOVLouws%{RO%`WfV`vi(G5j>qO%6x5n=an*d-*etTym0gKG#qt zI(V&3zxrFjfF@!7WqU;!G7O-Fxc84aD)dsa;S5u5wx5@KSclO|w@?177nkP8UjA)( zw*}veb8j1st5~QwUS|#1;B?jqZ3B9+tJcm%=m@=i23LWPgA%yn87LkjI8yS#7Q{a? z@pTC{)WmCEAh@*jP%3n`gtS47&zVmo7YK3(n7cOgM>pI>7!itMUsIp2Q}RqsQdUGU zq)2-vD-MXVQb-eoDmGpPegbP#i93hgH$n@6pX_tK?ma~+RX!Pz5@1Bm3ngV(WQ>oH z6$8{Ikh{hy+w==GA{yOYWMp2W-imRgPcmtHQ&n@(%vjH8hycR-298V`6DF6+wl9ZMgCjN`+veVo4?MX z3lWJN10v~{(MVVeISXg}{9RUxysC>E^PbVoa6I!$By1xxZ<1c3PYYKvXIFth{M0cK z$g|rFiw%rbm}}v-WGC?{Ls?t~<58vndH^v^%WHJ z=er4Qt$f0Uhgz}Mw6}to9{a4md@W8NThF7(F)na8ve>jnkOKc5uH84^;D5LHC;Q3n z4*v*#Uz%QA+!msO7`PT=S_}a~RZ8f{A$##ean%u06dzzP!?VHXx!Uq&Q@E3 za^d4BA)i~Tup)Mgf=Gsyc6Y5le#>0kQ)VZ!eRQhEb8QHh)`qTEBnrJYR(p4N5oz!w zo*AZ~D%S2p?#U(WJ`$V9TY!WG1k9Paik%o?CunjN>pSH4o~+2 z2|JkXF7{=u2By3((VFQYVS3(VvCs7=W4t? zUoFIRusgo@r%GPqWot+dvr#v~onW2A8Wv%bE{{iA#?CI`?%-5&qqRZEWKK>w3JjUR zdP#LNz9>dvI*Q~Je6Sk5kVQh?M3Mm7rKoNSSW3d>V$3xzKAOCPvO*TjQ z4EwXA@v@Jx*$I*2-%2wS;>5wIfc}s)sJd$r-M^yH*>y$yAKiY)|E9XZChGrp9QFVG z{!afve|IPOZm0jZ{*Dus?k{2h&j_~Q3F|fs3JC5M2)JCx>F97uVQ<}An`=MV#ai8` zb-h~Fo~0&b-Rxwk*;|J@!|`J5eG&HhpmiR{|8b=mbHC=8N6Un<+svM```u*HZSK^~ zo%)B&q%*1%HK)ccfb;8coKKjirVqo+Sz9PgZ4>Uj3HSaYqPq>cwd39T|+>4V{%W;2;5+C&qGnEKc0}jme86tBTzx#{^7+%n|tSPgaTTKoHY~nw^{o0 zWNHWBCV^%XX!s@J34J=wV+0@iNp#~c|I+>CbzvtF4)Z!sx5v~H=P>^Ly14Zd_o?08 zzZ@U6@pdc6@t5L5H`v=3v9dLbu|7Ay5C>*_=t=`@&=w-+%NM%FO=lW7jnW!EUnuun zit%=QGi@*}wz4Yh?*94DWJ|zb#BFb>|4SJgpB$V9%HsMf;D5}#0h?47)s$6sXU#tNv)|Yu%@jyR zX9sW7d_)`0a?9R++u!YS`x8i(BkqT$%XT{BSq?xyBN8mI zBN4cAGtK(RDMI&aHSJ`Jcpam#I%6d%CPUWLd6iyD?t;?&IgdTXr+DcA0-V0cpbx%B zt`zlTkhn2SdE?cm-oI+A7l@9(a@TZ`RAQV`~(4Z1awf8U3W(RIZexSoWMCMQ+R?B z6NN~^3?eMh7)e&2E$`U{-;hm`O~q|)T4rzaVqWpY)uA%D*bU@Edj05$ux&B|xX4J7 zQyQcF9u-+(JxfqRnc>**E?r9?s^qwC>4^PJR?0WmzB$>{dw%9&!PJtAnpU6c}Za)6l<>HQi=o*+vY&quR->SYR* z#T8_Wc~#359;LIvbpvat$mT9vT%1XC2%}>mK0)JbBBGbCwcqL(#>HUwZ+{v5b^Q$E z0*8IOY@=uuN7Z{WvqXI?c?%{tp$!Ou!C|4dpWz=4$D-(GGFD7 z>2&oz@m2ZnrfApa;^&b_Pg>SZXUef*F?KOeV~kF~rR4OYVy01PBaPWDDVrJ#!s*MI z4gb7mK(8htF&drCAGp}PRn4ck9MzGK*FOf;Kj%?S#fg;l4UM)w`ze^j-ErsY(Gj|B zv!=8$qE`atfKJWob^H1Yzx{@jM;*&q0)6g|=Dm$an(3Sjzx3AWY8KdeQS|&>WhyfJGYq6mR36hZmkr53ZH1Y&@OaY+a0s z!J8^-din@zC;D*>IzRvUDOLTycvOA-7nN=+h>__o5?QtvG0^gJ-pyQ+Zmo=k9 z3_7v?JgyjY9sPXk%YePyd@)%@kfSl^80d9iSUFt(yhy8jkW@2}(9&|qbdfD-Tf0LX zSj5bL%2M?+42sI;V~U(PJo@g&HujxmTWgHVDRH-@mxTDY*_is!Pd7$h&# z4wwLa^n`G`1_RRZg`#F6_-g3CHFc;piVe1TI(BGMyTAf>({e72k-Tf7G|P zkTe(GDRUHCu+bk~dkEQ_a`V0rOG$uy7%L&p>>W6?cTAhr5n6#pd8SO*#YD4q;#2lv z24V&3o#fS6z7u)v{KuHj=cS11;BmC@)N6Nck4IRwlxe?YtuUZ4{NUQe(I>ah2M#Dvldja#jk}Immk|l)|~Sz z<6MiF!PWXV#^^SIbIXq9)xlfqY3AA3mGJ{7i7IRCUUNXD`4T*oMiv^kj7Ec-Djzbm z4?7@@Ew;E(U*^NtFL^Jo7hQg`4K1+;)j65h&hsJsrYZ}|bIR;)&AUP4aFL2cFFnn& z#J_?bmsg@a+OgeH7#~Rtj$;=g!-YZdzs#NHPckt7VI|Fxz;STmY@>ZBxw&g$^?J#^J>!rQq?%mvpA~E`XnG+_6IzYSy_`HX+f}fUW-XUJ2y_Pgv z3C#3#^aDtBqfyNrZ$H{`Y@IAZN5H3R2i`jCmV9D0dp54FSfC$9n5xEQyDjIKR{|Ek zX^QrfE<3ZQ9Lv-K(uzl*mfYv1_^K@*vYp5^TWUSoX*5>X#({ZVaJ(pS4OqS~R7X%t z4T>5t3Y~D!Z02kyO~!c44GNb0g}ia4xI>sA!0@6bQk%-cA;Zqvvd$4$1J+5_YSsfG z+ibAo53Jv1=kevX+PE?5zUE$~Kj!wki>}i^)sw3eNd>a7D@Y1sCam#@0TDaEBvlX` z&e^J*Uy`SIRwU=M;@p);c(iNsK{S0r!7O&DYrF&ly~GHR_$V8i5^qu&;i4iT@HaUl zbcWC1mPezdSOC4nqf6F*nb8`d*(Cu{pj5t)9_HUsk5Uy<$4b~Bx19Kdk0fFUP&q?M zK-W2qd7NG$@uFX@4te5p;s~#J!Kc%T z5$CL!9H5K2lMicO6Ao?PtEz6jc4RLy5bH9EF%+BBQPM}#(e>vwbFmBuVW=1cZ|O;l z(ck%gU)~bhqUV!petDS>Q0J8==29zHWhyvmLdp;d$d*Dq+k?5GtOYQ8@! z%yO(&0IA7d0;?(()!G&cb6I{@&W6Q_cKi98352TAB#tPAvByri2U8@`sQ$iUk^oP`CqFvDiL=A!(125p zS;|iv>*}I;&WB916>Q9_-F`xLy#~e^(yG;(`4wt)A13=;XWsKa!9y+O!m}s+&$eOT zYh~fJYZn5)bmhLq{7~GxNo0@iht?b?45^+4fy&Qg$%>+zzz|GaO{9KNuTvbN- z6c+PGH$1vi^w%SNi()XCmt`hI@Q|$>n&v?=RJGQSp+f__?w!L2lSgVIin|AG+iwj2`7_+Jyq4*=gcQ*IyK=q z!LaLZQFMwhOKpsIL?F61Ys)=$)mBx0#T;Ve&r)ap{59M$>|W;!QD4Ul!t3|1y6W?f zx=W+vfO^Hw?Q;?JuJy=cmAvrqZb#Ka+FQSR$2^GSOXQ0d<4^o@^g>)kCUkz@O5YM} zXubO5S`@yvhc-s-^A(NJ*%WGW7OS$PWDi1mRhQS<40Rrp|K7hphKDe1g_E%qeh8Jht?YVQtsf!KCk3UkAcF)?{_3 zrRUb8?EN6iV3l~&Yqqzyv!t6Vwzx&TdF9tB9pP$!uF{d0Q-p+&V5(m$G2|9m$QLMX zv}YBI3LIaWojICm-HL^|t=%}Zqqon@co<1?E*d^pi4_@|chUL_jO(1@Lxi{yVqcTw zgB5aTF)*LG%nFh7931nITmEiC*6n2TCqjoM(8GfE`qL&X%N*}S6DR%N40 zt9*+a_(siZVQ+YR_$Y0&gS8xN@(YCu{!|oiI5e{aU|{@)Oxavs=<_$X_?lIHkbPnbOquOAc>mc?Hs9o$<&3m_FiYw?l+jj-hr1(pF{`1IDIcC3kEzWkm!lf_0hd}+g%z5u@DkwSkbY)Q?r-nX)@=`NjB z;8tft#MfD2Aep-r$)TAVbOLz4+joJ?Y|X=QE7>4C@OL!@mX&pVY8MVvJb-d{9bAGl zn7)L^@-@xmdT3+T(PVh5eR$%3pb27A#N8aN(Gx}V5pD>?f;ueAqO^ScWtLXO#5*89 z82-ebzs>M_fjBo{7|x`m!^#(E^)XyA-aZMnhWan*^xwu2G4Zn8bK*EJ)Jbvo+&ViJ zknPG&k}>AZaa!APavTPN%V(@%MWNGqnbl;K>JxGg1R>tpX`Z|Ki0P4+J7{^}UGI7F zE$OM|WF3^p34sXdG%K+PQZ>aS^c*W!%`hyEC#4q*bq-c!hV$d5aOQR&4spP;X%ek3 z5Oh+Mg{rReOR~ER5gQTf>mWWqkGaby*IAh}kGfeE)qsHknWyUOfJFr1qOjlY_up@8 zz(xPTdpWyGrKNDQ*_;HlCFtdTZ27&2;2M?ivUyXhy{9w-NgdYjWLfU%yczj40VnCT((5YEXgOnr` z#ue7rt1zq?u0nPt^$W>XUkgUlDeG!g6tI;Br#kL<>0 zLD0=;JH`%b0nQACS{-w~S9#sG9Bbe_4nVkvyD_+7Nt|KCc7x>48nH|rSm)1g)=V`pIx3Et%ez(*pO(JGvTqU}RR`j{) z5SQ}|d8IZu!>|Ayn4aK$1rb?3P7jxIIQ5l|3pyej^gxBy}8 z>l+H9J2DH$kp4DLYj^ICiHz_Gfe~sk)7Nwz-F~9??>rM=JqhCRc>Ez_YZGy;!6MQM zBYB;6lDGH!_xroHVWfU|ZOtWhFw-_zvThGSf@hW8;eNA*aVSQpOengAgjy7J-Iq{E zmb01!aEpZj#j>k>h)^;DYM)ny3#SHG2~QjqO9ag-1`(U*yD0c(orYloZnmp^!Rj(@ zlYjSFI!Uj96&inO*1pviy$~dvBzkw)4_3qd`@z#gM%b(hCM!iqnAKMqr5@m$kBjL| znO|MclFs99a&Kq%Z(Bd}O=2xPO)o0`?0=^7*)>qXK{?CD$MJHVa3 zEI|sbip$x%w9FnRH^m&qDp>Jhj*ESP)zM++fx~Y@i{oOLU*7O`;Nv+}@};b9P%|oV zDt~RwY(4||q3^7AjpKfgFR>?fo}2xD&& zvGSL+jU^Uao&mS2^p*H0>^?7UOCklYM?0ia;M1Gv?d8p-qe7ta$~A@&1MdM59BUnC z$#;VLzI*qse>IsC-yN}5s_pOloOiCSa7>ivVbKCIF*OPPvwDLT-)#1-DBo=7<8(`2 z3;`Z>6kt;Pg0wsjvdpQkKmpS`#PnZGr~tM1Nt;voY8@<4O^Ae0W`3iULtq^RBFUA1;)57eWFlld6VGCXpU&FmLK zU-o$i@Tp!zKpG-0<(k9(@j|m$l0f^El}!%TGcajYB1{eu++u*%Q9jlA z?pW#?%tP4bsh^+H>bk}i#TEa$a_P>aI>p91Wqe!!%f*wMh3c{ZMUOCzcY%dq7%5-M zQdGq_!xM>B8Kp^0XWV3ZGb0^>Q} z9b!y5%BMs*%Il`#l9ep(Tf4zxRv8P1FSo?vLiDZi>Q?R<=6LBe#kmdo*IBp9FeZQb z;Ee5~XoF(Mnfp-PAh_Q136>;d9}Bw0oASe~_}J)YLowpCz`pn@d(2!B>lKl*UgvHy zvHrENt3fdy&nF;eKgB7QeM%}kU_~`g3(W82QfBAb!O`>Qho@&h9i05s(`&8jSzq%gCMU~GU74LhViE0hm8PN6dTD1GD46L%Ue?epr3cZLsJFQKfpBas?*)KsTW`1b| zsrV_xx_cHNkb=ss@rI229ej@EcHna#W@&kq&Dc%yJRN5r#W132NU(KSb9&QdDBNf! zH{b5Fw=Uk3#1j_zyV1Nww*Qo-)^P^v7IXgK-bwmfcqJwKiK;l9UgZ63f|c)nPVv|} zeROrIjHhwC(|TU$K0VVl{+IUmuWy}6{vM8i%}m#G4wm4%oAXh353J*mw7DQ?9u+so zXFp?IPdpiL9nBKy8%{^U_GD-`l@oLDSgZ&44a0&~ z`8?e)!7AcvRb+1$3?GE2GgQ(x9-O(bziXD3j0uk(N{b z%PIP-Cism}3 z^_ZLcL%aZpST_nhx_N=!G~Td}YcALbyNln})Sg{%Lk6x#nU=xYbz_aIu++H;rF$_} zV$FzfnV6-R2bK-Q^L{8MYcfV|9=7#kj($REIuWH0#l>beYToFN+g#|6z4y7S-^aO? zVVizwb@TeAy?L*@gfC@)Ry`(fBF+L!k51k&y7Mp2SDJPGrD-p>7q0u78YddY;PZ6E zj9=7(*?QYa!16WpZL<345ktcmLu$j|xE5_|j6L_1B!MA?`NNTh`7p?m;k@K<3(QHy zjL+jb1fyIOC(hgxuh74Jhy6&usedR+&ZOXJ{R{mCT~>JtRKxrON6!w}ANr$@O&OHN zV1DG`De%w}X;@f@qo~zzS&890RS)VPTNhzq;rLg9RpQ_JRz?)41bD5W*+ui3YUt9too?RDk-C`IpIfdY*X+1{4%J2xSP%&Yr7%4BaQ7S$r^r7p?k0B4ehdO9CeTCn3PHdEUHyPw_ zzqKy&UN4;+PCK-+VS0ffmTQ>{i5o@^kKWtSJ-#CUE*EJT!<-3QOzTGyAnC~CXx34F zJRPXuZq@@43hiMX#Gz6N{T2eB{;%Q**ssEU~*W4J)hBgFJ$!A zzOaHwlv#>NK9&inJ7;jh>tiQ894P3J@&++N5_TwI9 zHK??T=p&2O(@+#{ud@x!C^LQ==_2eh`Q{t9+_W;7dZ{<<9Lt zysYYr(}|QrUHpI=VKh`kq@_5@q>Jc=W2DlSL>gYQwo>9F!f@c|Bu1b!35w!=0Kt(3 zKC?2r7=uSXOMgCrlF2Cg(REI(BB2{shk!zPCHp?L zZkz@w%eewnK-){t%wAhk*`gPLXBZaG_H^D2R5ALh)|AkeTi9#qnj${dge=(W;4rS| zg%JTGsoWov;GB2|g-MSvG?)$VZN`9MGiB*Nb?5ECI_m;2i{A*CXnoZ0Db}mgjJ?1? z&OZp&9C z*Vuti5oecf>bu_7H;ovBLZnf_Hy?-U9UD)O>Q`drp~9W@@$D8LFv7MlX!XT>c2&UC z$F`^KCX2OP`i-Wq#p{=>fbHw# zu2rSBev6OE922|AT54c;n?n|!%|@?wqqkaZGls$Ik=r>_9@;P^L+I zUfZwN`79fuUyvh?;a$hGM=viKO3|DZPhk+$j6e%_GIc~5&?;Nd;%!=$%&10Npy`GL zXFfkl9uPUOl&54_f(ITeuscgz$ob0Ofg|gjsq`Qj?+eaK9+g$~NR#g&Nb4CT7&ys1XXLc3&5dHra5pC{DJB zbzot3wtCfn!{#ED)AjSZ8V&7>;dX`|A7*)ty47N=t|h3za9FvyxV5~XiG2~dF2TOc zlvBmRgwk45FV}MtTvk-Wfoer__wnVjWu>WYQHFs%8V0DQ%+tD#;PD2g6i5zjAVA5t&*POv0;C62LL9pw25!VqSe-cXC!#ER&7ExT6-WkSQnJT+U!+2*&Gz zS@-p~IMn*R-DaruC*zx0StKX3>>|yxw;Qze4chwe32puR{hj`U{_all-A?~+P6-cw zzQx^aqlVMNs`!N;4?FR;AsE{y0M67aysQ(naUqLlXl$P|7+}jW-x_+`N;lwhg2*vy z6t%395-b$3t}EN^X}uS=T^nU{mv8R!P34q@DwGL^4JwKS>9ANWm6Q^@wwnmd?%s51nDdovs^?X1*V(2gIuQn$GZEZ!{pXKa{QV z88Il!Zb;LXRekk%+PDxN+BYjw_0w%&NIwehVq2m73)@*#3zGs1$@^XU+? zC$S#vU-~=Unu4&_NZS^JjVZ{-s?WjyrWgjvYwsP2>%XpktSSqO6`XlrA3d_obuk+9 zQpv*%M2_MnxhPm+)12u_#XFfOhmrrFt5jS_f@f|51;s%&j4cGSu|zhg@ai5~2TBD6WG>9Spvx;}(32>orH!Ph8bX2ZxWa-PFYEH{YKqiyE z%}c6H>*4iQ!Z+&+V*_=5kH~ON6uV^T=FMO>C_RV|t%CH7>=(guKI~z}d?V(+&L~c+`(Hf4mmgnRy zq>9Q^njQHNY}yPxf86N8YPJuD=+%==zfH>=k6I;7CDnC)i7Ht#MDA39;)Hof+!&Kj z;CjzlId-eMhb{^Xi$T@bud4o_7^~}Q`+ooZwsvLx2k+(VDxFrASRhE`&pWSG%|Lu` zZ$)0luqwYc&!VL~Z=8x7L*&K~xjLt!;VEp32Eknp|4T`1+tVkPZeYG&CO?BhNC(GZE!3lUY(_cZkPZN40=7|-{r z{sJuouIMwpOdLG_L{_s`O^k@EZ*lmwtqBnN7SJhh*a^BAx2l|t)m(v!88`~ zSqe`D-Ff=qvu&ewpeyxQUS1-0ve--lu0T0bm1DzhXkE=r0 zYD5R|?S%&h#wO~Xo0V5nFRT@h4*-wI0FMDpUN*vTNB@D9%T zlAP;(9N6$o#l+L7>KSH@;T7DBIlE3LhWf{7XTeJE)!_3g^KRZBYINP&O7QxDUV9mM zM3rb?n7o^O%F=E|4eY)j`Mp)veJ%XEi!f2uArl(IiUPY;1v=Dy%f|HV`Y;O; znJY=GnbN98Qmfk2TBJ0=Z*LaD#RH>0FH99a!X_c&1zc}@8r*{@u%yxRfXG(!iM*hL z7kBHN(^gvL!uK{?12z^-?OM4C=!K!t^-o9k-dm8)cwBgvg1k7dn15f|1Ju5r!af?W z0>gsUsf45{@xRCb0zcX3qKLGjBNi2mWFf^&<&8^*MaI|@`P&G@r5rQ<%&=UH?k+O& zIa6=NSPnLxq8Pw2WqY1H%zSo0V{+CEsm*?~aBYxX`fy z>FtO4WLT}i{9;#gTUp-unoi+oVukrspsc~dM-Dt|<>Ir-{Z|;R-|HBy=770zI#dxT zN}9MGON77BrB8MU$O}OejAMWD8Izh(t7H{9s(a5Qk2tm#rN(p9a4VhNVKHg-b9!Uk z#kZ+X`_rcuQ;?0cDNzh_qdV)TfP{mZ+LFH`RjP5SPBNV`gzE>q;fPn+D8uw`JmST~ zj0GA7Po49mCoY$5K;bEp;$FtJpO`0e1&5L!G8PhZzZ*vo~dBbAA{35oW`B)bw z0&|H2l<@Mk_M4v?{M9Ddh0BM5RcciEXoA-yYx>2FsZqhaWi#vv6KW&9#E@pZz!>7P zxWS?6cM`3c>KsU%=6;QyV8zGXqG}yUE)AK?4iIUiY#zcxjZ&h`oz*0D*cZ|xVa-GU z9#<)u#`-QRv%tRVk!`oQ?+2q1U%96=jZS#mRTc*Ao!l}9!?U~6ePYYoX}c?kQA2p4 zO0BP1{ZDl2)atiActZC>KcDC0S+U9!$WOUa-PwX3O^(yaRTk#tZn0lbQDO1E`3C>H z#Xs3kc6azk-|eq}P#h(UMu`^hTqvs{AHOj#jx;ML-;rak)x_}uri{-DzY=cr@-pX* zzD|~zd^+potqjf#=NE1vnxyM{ZN$h{phP-MvW;>%F#mpWd4fp;{I7ptl5x+i%y5J; zDe&@$ez2#sZv!rOJx<^sT55b4ghRq^=yCa4?7jAC9R!n>t)MMR%*^!(y5l#(IL@qm z0Ta8a0Z#?*AHqO!P*p%wox{bXQWHCuc?rDiK9~Q<0x`QThRj4jf!XlVG%eF{)%|kN zQaouEtx;375ulAx+}c7k-?w5z8lW|7OT6FA8<9b-By1O;oeq}x%IK!aEUpM?=D(kE-s$q4_s5Oh93smpjYKtah#If=ep|C#qq4= z%hOeL_311Q6R1wNT-@cRAl;$`>BP!~E7Fl+W13c?Izf3gA7_&R`G>6v+SdaPP~A zuM0-gbyo{&eQ)R1Agx(fiwhdNf7<|BZ={S3p!MefXgyA6*W1tFKPv{vep0}yW`}Ub zhW}@t&9g59fBW8!jlO+vM_O7}*$bP^NqU*l-)jZjX6)Jnx9!8zZh+&qt6ALJ5q_nA z6#3ARZD)G^t&k?p=yH|9#TojV#07iSB(#baJJGLyYz7Ixx3eaQa0a^^1_-~mW5a{n zTPK#ZHT-wY0c1drH3#$&^C~^b{x#25jVZ1g^HD!F6g+orUN>LkfY2~PSnW}IlMMyk zp3KtOyfWgt51$_V^YDo#{v8}YIyyZ*`0-Ht?D30dKR-P@J$z!B-WZ3ndog?kme{{n z=g!;n1wQ~E*$ah_dA@*8^U-Mz#5+sJ(>*m ztxlbejIKQ)6NfJHD=~=EYxow673$T7n<)zu?JzV!SX3*|ItboDbMP%-d6Cc1l=x)M za+&Ql5DyAdqO1gc_J4jk{N?cM=i?WTLF74l{^Qxxqi08_3Ff#+>I;>TChGFnk=DP` z3rRNs@&nuWtReaD?X&{qm+1Sq3BG@CM_=viJu>wn5)N)0P(LRT`9xyvi2iJFblPb$ z)=Yl7=a3#-fuVVFtCRfSf;+-k__uPMuDVEUnyu#TUAvUR940xMd@8Jd5^O97Z?lNgK8u*aTDU0 zV525i4)hc2_mSuJJgOeEH$2%IVh3xpHpD|Sf7(U@eb^a#;;TvaPEW*JWbTZ6#?PB* zYT-GrZBA0609xYkC=GKuuw{_XVp0t?O+enLt7y_5!$?CX8iQDu)L{xsaB@*_SHZX` zWTVM^H0rxOkY$YXoJs^fH(?y!8vH&iYdrY=y`3dI6!&)O%B+0CiYjM{w2j!sxY+B! z+g}h&zE=(Im^;?(Q@{p>Rn%bQD-5?q(DKCzUl1kVAkHRud_OVPg5xh=Aw}=hlWh{e z7i}t^xc&TYLGR5gA`E%o_KsK!;Qb;TB4AB%2iTt81XUNp=%r=*ysh+d7&qOEAHH-!O6* zVfrB>9cC?AOpKcPKG`up{^px-<32m%OJf$V5sb#1h|~O6c_j$-lvy3Ut0Ht+jmVw+ zstS$b89^K|*r}MPEJ8l!q zoR7O@jFK){tR1gBTGl=jQwpZ>>Er&qvB^IlX!1V}T#6mB4}6%0GOApKyFjhJ~pP2Lum3DNrSw>+j! z=1Vry?4o4eThuTVGX1{wqO7gt_$_~;D2+4LB3`RQ`-(EPlPsA;X*FTF#f`(dKjl0IAb_wcBFV=K=-d3x=q#&4iB z2qJKXkaL=mc!azmjbScKv-IC`U=KVRtckW|bjIALD%Xp=178?jwVuLIx7YKxh!CBB=4}%(t4Q$EzCsdx0nFrpz4_93tI1Eo8WHTPMadj~|uab8L61{?|qGMeBSa{U+rOmMm^ zR(yZoA4J|4LG&=DQ(eBjPAeXv$eTCKRZ)Egx|C7+vF(|0@#r12@}S1)d!NrKu03mS zE|8z}XR^1uEyOGTJ~6;58TqKucC+-wW<<_$K!mMLyMyuEfkUQM$Q4{_|~n4 zAfU0%w+u~5aES&U@D}(V+ikx*l7pk!= zH=bCPKWRB#R#sqnR#BF)&q^pY#H-xW?H03KbWQxHa^RDeJ)M;rLscHk7CWy z$JzgoW!*g|_St|n(n6|*FX{_CFeOcSb6mdI$`_>zER%wu!Zgni}XjzkFmyvm3M&24cq20Ol)w|8c33cG#*gxf%kT9uS#IuhOD3_U`Zw3Vu}NP z;uYUi2J}=0j3JKSNgcqtskW~A_oL~5*DRfBnVFvYX*NJOsG(&L_R=gDUU@`OLk?#& zhhXsx#oB1#DFvJ*9K+V1Y_z1nUK z@CNA8QZ=lXF`C*G^9h@l?b8QO$pd&k(&R^&wXw>Rw=)?flic06b&Ngt@sH+5A6uRa zWs-xVfdB}}e1f*Rm7bL6(C#nPtkl>#Q9yvk5n3e+SKuJVs9fH?wzFsToN#PpAt#{q zb#qdeIjLVYniqn{&)plxHV!J7^;9opoai>6+LlZvIPi-yOW&-XNvO-yav!Hsd<5|z z%4v&*9W19Nzd&7udpW5(9NJ|0RHNl;T#9^acCF*hEI8@fP;hz9F~Plg5rmT8v|t$fzY606o3ff1-KGq#T;O)4`AQ7&T~PJT+gd@z4*d2be3^QrJIuix6wb-)2zd#~ELNE}u?|Dj z9Me&iMMyle7*WTKcz_1l$};-syWM)JMp^<|yI%0$-Me~U#!@;$&~nlZHf8(bzY7X3 zAu$6%wisp_V$o&;5F{DQ-bi4oC71bo1d7B>O(??=y+NVI1eEL*ygR>O1ux2*Sw7h2 z&28sZHP5Q;zx?H|!A8PpZqo9xMOkC{?8e`SZ=Dww#p=YdaQdn}CpL(@QXq`s=h0xB zPv%*uLyuTkI|k@KpZ%#~R~X25jPZq+&OGh=$!_i1Y;9RIA9|4IaJ?7}fhz4(VaYWY zUgc$CZhVf)h9%bn+J>b51UGC}-h_vZ&b_|oSTvO+O&1Bf|HCJ#7+nLe^qizgu|;Kc zwupyR{uVw2raizK3w2vTAw4#Xm>bv=L)ezS6Qly;j9H+ji_>=$ZAVhU!sOqm^XaB( zIT#+YhI(Cz`>llqr?Q|I-p%|C3=fV7G<{5o{-^_>RoR9GX)Gg|%TP|e7@&Zlc$QAm zE6q8~|9)|Kg3!_YFB=8y2(gXer4jvbz72rA=m<6c@FoH>>CH7lbpklY+N)}or6<-y zqETy$5iw(9g6{Yuwho=oguV7VE*~9ba%fKjYu+>u*yiAp62}H~Y)G-`lAx?tX74SSC3zA63}h zYWX(Gy0=4viLO-+Gl{L`9>xs}R&w`(WQmgPhm7?pI-owf^-qhc$L!gamu~0FA;Mmj7ciL1AL{#-aC6M|X-NN}Y zhwy7YyZ*V%i!z_xL|Ku0tRf|L+Y8yySH7f4IwP@-SzU{X22ldvAfy*j9Eg4xP)%}p zmX@PDE0t>lT4zPq#3u$^irzYhY``2W*u9c$za&`>v+3;mX^!+oec($Msk9$5#1v7? zJ{MuVFhYC?c#HNv`6A;f#n>iIgN`h&AmbuvHCxe^7w(7bF1 z6J;lA8O@^+=vMFZQJ#XjahYeMVHhVpfU_By?9e7xAcS}lP5dTK%FyFS!(uOY@786x z@^@dmcKeQ_2{0D=&`DG1g4AdRKBde(0ClV!Y+9t8wkU#2C;O5M~CBHG##D6D8nFy=o3?Cb@v!4T|snt z7c_9TA4-r9J6#K!=LdqltPs6}MPg;Z9*Zffa7sV}nB{t?KNMakc1 z5FFBGCto4)c7&{uB?mNy0Mxo*2Qb{x%@z*R$?1!5ls6}t*@i1kISOyGPpfM%ww$t1 zBeCKB;>;d{w0hZVTxp&lg06D3RbBC`<_PD?L!c<}tw$KJ<8)N@lImuBQH)|1Kxpn! z)2}gy17Ewvu=`1Nm0}DEo+A{aG}rnsQ~g2r`~Sjn$?AcB z!=KSy30ZSmUS$k?Y4)y2V89pXcM6?JMBR`!XywAV=&DLw(|H*e4woWU?nUyy;1`f0 z_S%fP8Y7fXi(z9x^vZ_)-GZZryH6(nYl9}3Y`C)LBT_X>q!-e1aYJPsChcq($ecC3 z{3L;rIw{CZ@YZ&6j}W*7j9%Ya3V8AxeDW^-_TT)SR!aiX#0bv@cjgT9w|T{*Hhuf5 zA&XN@^-FU7GjE+Z%CZeA5PrUWo`_;nAoS7VR=`L|B+F8*3g0FB5=S$H;~89P9P*R= z?FyHgv^iM13uCzxhEJa}B*3aj-ep=9`M!rPNf-ZL@c)O{ux#{hvRk_+lVS!8IeDCp z2J;ccK|uFK*?A9N-XvJDa#FwnN@oSglC-Foa}edQb|@`05^#wwMbOka8H+h!NQJC* zR_ZO$U`@JsQRY`UE*? z3eUT@yFH$dfDpQ}2R?3Q0>b7i6dQk;fF1MLoJJVv zGfp1vsXMS z{rCweW`xmMlP$^1NEhs}$=}cq!KVAJwU3Pk8HCqx$N3$bm%*O)ng{nReFNgdoME|Y zWTt`+h*0{;0dfQ2ap-%h9M0AE`)u{czGti2-E&9L>YwjeH!Nc79{kHBZ_?~Nf|@{| zKpG^FQ@jMNpE%!i2OIn)aK_{-d+{U>0}?z+^~fsCvop~5QHglaJ}LTrW>1~>cEaZ= zPAeBg*enIVVxRRJP80pnORi=eIikQ>G7hVFb*HCh5^?r^NGaTXTD(KSh)YqZmBX(( zagx!AFR4%g=q2$E?R`;N@8Pj{hZxHsx$inemz-pojFul%7@rI`(|cA@l`iIgZSQ{j z*FXRH!S>(oef!|szGnhYL@^i1Ixez7D()413JO67C1d7SqWc0xY_7Q31%Pbp*Sn%3 z8?I{go22vq^uO=AhV}+Z1)%_g0QE-T}RHUGmXpRyHF*J@6@l3k_StRr%{;ZyJhZUmPOa@-l%@(c^)WS-&BI}ZsDs)Hj! zf)^u_KXxNX{^UBpL@yk>Rq2GX6@g7Iyw^QjiQklLfW3LxbaFHSBAgkUBqgDK@*Ieh zRz?3lrx=D}IOOc1hbw`=V=2Z7V@zj;ZOlgnUq)P9r(>ttJNPn?>aIQjU2YR?Ba=o9 zIpmEb^CGSdYLm2mSWK1Gqq!_fr`OA3UeYR}3`URlY6o#YaIC~w_LI)H@RFfF{5L6x zPS?Ni1O7aFHv_rhIGtWs=)M*9UaIvymW6puS;h`IJ^(j9@?MyT)3GJ!^3##C{x3=Y7K+%fuq4IgPcvC-_54P-OU+ zQL-Su>K-#()dZ`rWu=gqhmIgkjqGzCt@hJ?j8p*jbS&78Yv=G-ID7_<9&knsnijkO zm<%fytqevvZd+ZY!Btudv~Q(xSqvr4lHdjKk!#P#>PpL2Jgb~OXhdQl{a>aC4;2)+ zu_mY|afA0?a``j5E$r5UW=Wot?X4n~@n{Tu| zS{OMF(I?zxckaBgx}r-0?}sWm$FE^fDUJ?)@4UIY+dWTS&F}60?H+yGd9!_w#!jSy z(|`%zxs%}M_^jFVFQh$V(81`cAfX2aI?nM5ptuwf(&<3}wi(dU2uC?pQ9>Bc*)Z$w2 zlkdMzK&bF?BK&e6zuoh4sPABTAKdrzDB1Rd`!!7)Z(A*Yd#|D8Z|~K#Y`kr?y!)V` z<=qE$%kd!G@?RSou3P4sMQ&Q-x+Shz;id(?S9d+pLe_A~18#ws76``8PsKUc2!TZk zVki0rrI?IJK>3<3qZnVtuw~`d!~7^fm_0M5g=9jemV2)|eiHgzv-%U}0L`uowEm!E z1*|)PSB9m8&g{tHFa-#6=4M8p8N7F+RI@G(dv*;XEXj!&#*2LKFQ)cJ7Y%ahDQc%u z$_%fD(I@Hh6qEaY%49FT970%)@Q6rG(Gl_ntk1S|s^BTu+q|*(8w^l6pYT_D`WuVO z==@q(g$!=WP(4?8UQTT0BaIi5`I~nngF(S=MWXQv<9(Q`uG+2(QNQi*p9fm_PiTBR z8ps<9bf1h+`FL8CGmtL(eHKJ?l3r$yp(|@@ufBFehYo-Q|25BeP$#guaiy#Q=>JpBM|CUEBzQ@Gahe9SA_Ios@gP8HO6@(8CU*77K0c3++mK`~kMB07+{e>ty2 z)vt3si{iYWykN;7H&a5y=QVCCiaNlVkRAD)N1mVaA+yvkY8lxBMQdOz>qSQW(u%49 zu_ZyZ5)F(LN=Rc&&d<;3r$ewtq6f`*Pk(`aKRb{>7wqz<({N@5q}7~N!C~A?o{8GK zq?7fp`pE|(u8+8Z^U)AZL6kp-6oUtGIM0N(!1m`Nqbh8e1!8mItSmv3JY)$Xd*O5< z&mhvq5s+~mflt@~xWns$f_?l0c`={8xO_wp)D7nd`1K%T^oEKYZSX9+LhqXHnBwFK zK+EpGGGNG1MMqk_!$ z+Hqy4T(=N1=Ar;FQNT)NjcIPu#0nat8`W=B&Bw}!SkYK1fF$RuK=w-AImbvG7ePr~ z%7pHkNKV+Pgu{SgT`U?r<$*ob04uD5_;;DVXFaCe&&qbxlpaz^m#fy}ES(6O zEvnPF;iMqgDl-Yf2hz)ZYr_0Pwj1JMyCi(A!lIgmw^V<3eWGA9@`+#zp@rkp2ao6X=3Bp| z4PbGV#L3SE@(ybOp$L4uU+n=;hYN3kw&o^wh1wL$w8?S~*~{Ieq(N%;OlaF;Ho(8f zcvk$f_*UH0dGuqpCN7nu{`PcTA&Q#Mbt@}^~_iC^HY-pQQe>nUPHZe|jd)xC)frsp%0<42zLeIt#%sNqJe%WOI8A$FY)z_REKIbeW;*=E zO>#~O*?CVHMKnPb8rUJ;sN_;jC_U#m&wTA+Qs+&(uBmf!@0mu3Mv6LhP^Hk+-*Xo1 z{r_k0&D+~Xj=jguf-f}PlWyf#@sd+ggsOUznbq5~qw7lDtH zT;!RG!x0r}6juDV@^7$kkV_nmEQ^hOYqFH)+pNL7hO?lODm)d5I5K?)m|26a=gj*M z^rx@ioIHO_4j!4q)Ub5P9|YD_urR$a%5|gSO1&xV@0$i-R*nOx0gk~lfFe15MNEX+ z79CKye{t^N8SCj*fY9DbsLE||?W{DHZRr5yO58y-mYjGxp@j)w zOuY$N`+!t6o?6gR4s;Wu&Clci`%_W@eEvzhD1riKMDaGg{zPSsRr^zNV{GnyUPF-e z`$@$4>ePIC5z^AxFI@6_J0TEt(`0p}#_DGmtyYq@)L_297s7x_`wkH%fnA6gV=)hc zxwo&`0Z;N$BBz5STNpeXWpjt!cC+E|hqo{H+bw&aZksh6`<7MI7T)hlw@1@WwVV!+ zkA9=zI6N1NSbqI1yu4mwRFBnowr9Dv>+HWp4hN3r8t|N%Ec*{{6<>r)>-+h2ybP`5 zSd6_ueA0eiOEvoH5T|;&6fk|^G`<2Jer#QbD{|rCNjY^S5PkcgQx7;wIhbC{dV*M< zYNK6cv7GCWy&qn`vkvhLWoZ2XQ?dk3c*_ZGCE4)oKBc&gE`%?u!w7Tu_62t6Sa!&I zfr>$fi3rZIk8yj*hHcfFth33tp<-1HSc})VCmfRNY>%9#oZ3l#-72F;GHhQh+>7v1 z=rDDX4!p}TT~X>I>N^PWpGGG?zIk_I9lrkA`swiK=abUt#@S9qYKdx@w&-R;_S(ejrasMhD-j^YHoIwr`)>tzOHqt-sr? zp*(_bZo3%^&e&;#GFnGumn6=<@l4671jotbeUug9yKB13e5d?<>ZX?`*$cC|ZO;0- zeZ}RsXg|4wo4K=fiU_(2E3A>v08{?axrkp7@Y`jy#eLn_(acr%nG5dMeaE@t8=H$1 zUvN|QRaA6CP?d|aII+;;m}0i0wG9||OHsnEN(7J7>7=FUQLPoe#;Mj(#Nj37P=^{T z-6vLk1}Hmv&2<8`0*oryp3!zq8K1sDDh;}x)N?CU4un6st82`vv~;VRXiF}jeNycj z&)YVZy@2z{rpwlEqh~5I#I3LYt}l(*zs(JGRmf4>{fN115uem}17*=j zZfec?R1zQc>t=pZo!UD4(@#qen!|I_n5R}HdHQQaQ~1w+9?<_&R1kTHC@dvhN|&RI ztB}42s+9Z$22jT=PwH!mCzA7WpgAPTET#QZ(%lvsd3V@@1?C>rD!eF|UF*~Z96b@y z!4vWMaux=$jHzFOxpR(b)+j0j1}tVF4R;k$00Y%#27M%1Tb5oB367MBTGpAO@ENv> z`8XnZYHSg&*atl3+PL#7V1l%$$9#Qtq0_;c5k9)fglc>;f$CS$Ofn!t*)@qr#)vf& zm<@2j*Z2U;1@>C9eKP?DB8yj2BjkI-@Ce;}E@Y}Dj%Nc@O2^xi&ODQmVc~onVDJx3 z{THMMru@1gANH4H3JgjfV$>fjOmst1JefWQgTZFFV@jut!sVRLYkfmubCiJ$C~_v5 zP1Me>bn%MrzHy&zNsrP3~j4lZpZZ!{K;H z$$%aeIOkjka4mZ?xSyd86%a!y6bYSB*E2S`~Ri4XBhippP~1hTFM2-f%lR@P^x|oi|{N zm3hP6$Qy2F8{PmKROAh$Rz==W11jYW=wl7M;q>l~H=N!Myy5g}=MASlcV^A53>H(GV z#-I)?>h$jpi$dKy@J7FOEQ({SkvIC=U{Rz&Mc(LF#-e&arM%Iv1B*JnyThVT_YS<# zs~wBt7;EH>-ZoeiX;6_jdX=%L9#AQ7^ai!?hJA;;Vei5lcKy6z*UB6AR=i&K$qTCr$%D=gZrj77WEv1oS_7VXx8MLTzhMLWA-(N6tX zv{Neq=ktGkgm+^w*vTN#VG)v>6%35&Y5U{UuDv8cNX7Io{# zqHe8N)ZGe;x|Ol0TOEtKo3N-`3l??m5Q{pyU{R-jEb7#XMV+m%s8bn>I@PhLvk8kj zwO~>E4zZ}c3l_EO$D($vSk&GMi`td3s9hb4+MBSbT?ZB&-W?Pj?tnyxwFA*%ug2Jo z;WjXISQUj1D}&JC1`Il^1A-3j4uKAK0HA}~@#mmUSLk3H^f{;sJ_nVt=U@Z$9Mpk4 z2X_ZN2Rq=-LG7?}P$%jfYy&z6RWawFGUOa=K%9d*0B8U1@MeDpxY@5AZT9N~oBeID zX1^-b>{mvb{S82~UkA?Y-5t#A?SL|SwS&xFr$)a;ZySi&tBNptl>ugN1HSCl0WZ6E z2QRxjz{_s!@UmN{o3pzOyzEwmm)*+nvbzCZcI$wbcX$YCmorH9A3>`11kzRqkSd=) zs($=v)9IsH4j}pJ9@4!^|IHSdg zlSNc#D!VFE+3T39o>UjLWV$dDUDVA~P;V8c+SW3?@2N0GoMoaiQ?0d3O{OBtw2Y~0 z%8^k^iVQPDM%_#W^;Ti3ZEf3okV9i5Q-SeVnW@&=wkA`NZCl1vH6_=mCAWr|TBB~J zf_kek)wb60eNVnI;=C4>nab%^WGb?b%b2RBtQ@r@Sn4zC7`}_ zhLQW8V9cFkk7&UbrrWk{+qQMuwr$(CZQHhO=- z{-c^q)MQFchm`(R>HbG0oAi;pXgs_j^sB1-RXLOWM^&4oshE?VA#3@&)>uj#+zczc zvms0eEW|4rleLq|&s?RIu&X37(=N?Dcs9S!hhE2$|(X;n04O6hHxm0Gan zEpC9PkL*^HVN8YJIdxIV+x=%fkDV$=bD}b4N^DCVs{mcx!1KSW{&`unW&e>mwgp`N zec`swe`0|sN#kKK!^&LAsKAzY{m)Poro)`-mCPzC`Pa3-kxb$%NCToX_)C8yRRX%0 zf#>_?F;7Qxcu1T44gk5B;mX%hKFQE#m`x8eyD+Edz?T1aN|~m^8hTW}1E}R&7yh1q zIIS!tHH?g_D>BMLQ}o~My^_B#N}D%^<%Z4?eAE#O;MV{iJr%c?6V65@oRyf#VW|ur z2A=0X@yrG>6$&#dvsua^rogS_J$Nx4&n4oGj>amolBfXh2cF$O@yO>f6?`)%vy~B} z;8z9iJdrMz6V%2es(#}a#mEz32MKX_*N3X$0vS~o5@zbA~=OR5x8-1%tt)lshE^hne(sZ2GW#U%;$0h z!=wy4|5q#(?iDta_rg&&AFlYU{I57N+-tjI&eIWgCBbrhoJE*yY zR%g+aY;&+nXMwb1lvqO;tz;D{iO zFG|$uo`?6HH>bmuD#|P#Z)*e?vK-t2}6M0$oF^{`Tz^U)Y$4i zyq(_lkoI+0)CMaP1@j5Je8>iv{rsIDZm+j(j6GNd^(wVK(G8Bt#y+PqMV}{{t}cDh zL)5w@&sLN67Up%IP9y}>IF_#Gp+xFeSX(5$KQMe+L%Nn-&xITy9pVb$#zB>E_S~5w zz)i@~>!cQtmUbBRUIgg;8hoKUX0#fk#0*C10KY%hNddl0oeA%)d&{k)5EOJLKR8(C zB0hh&uNkgvnIWboe>kW_Z^n}=Yc43V^y1__(VmJsk`9EPDtm9Kot}PJtVvikI)S4C&KxMe0p%7=-qWF|X<=Kg#U#nKmzfrG25sntA;RHD+&!JBGJ zJKxf}Tm!7l9WQd{1+}MUt~6=|r7n2|*7+9_o^I>meF2kM-qAaFP@2{kKVj|a>EzP$ z>gA{N-jX4!>w$+o9%70e(Z+2?uA??%^SWh4e$GJ?+V9}s}G6i(hUFGnt;N1f}} z>PAYZk|aER9*GOc=Qjj`Itwc3!K$c*LYpvyW~pw}XQf_qQ>J%LNm zc1IfT0-6vUSeYarzjC1=s*j{iC(OT4gu0maVD<2M_&R$&g1z2WJSoVK?T9bq_VF<7 z)F*D#@Ec*ApnbhvZ!cUNd}G+HKA)f>_;1BJ7p;088Dh?Zn&O1GB?2I=bk0pZMF}Ql zsbb;`V4A!4_KBy(@kGX3IfA9-1C;k}FX(3Oq|X^Lv?18G#UdBzf+>9?-*XbaS)ueBq^K8o}(v zqB=NOpC-gBS~QtpNAyb7?Z48t3Oo>6?f^AW>INsqx&ZF}QZ|KHBJ=_bbjdOXvIBg+ zJXr0KUvQuq(Iez74^{&AuSM-%1l_1Ccma~OhF!Z5ykPl%)VAmF*B~~pg>2k_H1>5+ ziO$Iv08Ok)(8`hyfl3%%z`pIq-}LeTqb@i1qBA?d@r3wU#H4U&>IV|%uWXsTzP-A|r={1KI{2S=2vRI&Lht!o zUFV347T(9riFzlZd@e-MVMQ>=Hk&bfq~B9v&UH8_Z`Y^tLjTOUXT`HA_n|IF?35p%hv z-1x5sk$^^nP~tND%r_#mn@|RkbfTviBF2k4UFag;E2T(g#p#T;$K!qJgn+=jH9Cy; zqJzDI0e`<4N@H9PCn zQOiBx&lT$$d$1PqdY~crCsLf1Aw9d#l&$x+ptjX3Cm5CTTekAF49%>8a$6NhZ|Pvo zlL_LY`(ggb(tYZQa8ZpuVBc(suU7e4VWTIgZCPE3fHZc&87)>nD>}ouk3jSI+6S~c z$_GF^$oS-!en8)qmjcPZ!;O}L?<3?UrcZX{2BOo$vQ=+1PhaAd67M?z>CLH2FU%H+U|?-Lhwk!0rQ61 z!ID0;zeUK&r}u{x&EFvuI5tr$K+%YKqpG)rvm%Qc=?SNX8}UoryH<|-` zdU}{LgO@1N_e2EFyEOj_kfuVZ6938Ud0JjE4uU#rU=uZw8GOV85nBYAKNWWHDc`Bj z^pP()i88KLK(iC1C>K*IH%n83$OC}h%(F4GV>j#=S#JC`H4*Pt`>T=~?@3#GRf=nwJ;aZgGHP%9YY$4D(yvkic;y)MkIp=9V5dNmr&a>qsD1>YcRP$S!^ zij17zVy8g6M|9T*t3i(XPUN6e^oR|^3t$4+$qbeQp`Rh;MlP~VPnFN%~acWE76G@iEnocS~uwSGprEp+){C?6CROT-TYHn&Df`@5I0Ll&jC ziIjIKBhM3n75LCqs+P-$UZlKmrq`VUuEV?*cbAo4u`5e~m5%(>4N!So6G!p!zd6Wx z{uHu+`u`o}3sNxI6lp1D#$p^->qT8$K%Ap?0A6lc^R19Om zI7Oh>iuaeRtHXt4maHtcmDFh`=TR1OMj!z>fQ?~Yh@m`Ax-9`+h4Q>?x-jqrv++cx zC(un)WGyL^xbt02!1+)m^%U}tRCsNLA%e~qvxq|nt}U1w6ZL&A7lzLG3s?W;3qgWk zJ8?ucB^r&lLqsloyu_kDQxDuhQ+hShUj==xJVeS>t4q!D)Jo9H z;#d4s?vmIk8go8P?b-$B>ScV3yhDw!^E?B3)t{Mf0loy#yGRcZ;WMYiW zAFI9MHu?dv2QdThihde#UoV!+Vgiia4%rtlsUBof_CHzr}((#E% z&o`epUt{c1^=c1{7^EW-M`C=GUe)_N^r}U!a9?)bV7d@3Y;S`X*-B71~ zPaVW}Ng2t<^7_xP14}#`3^kNAuZf%2zYbj6&-m4IdO-lx&L08~F7Ws4_j4{aoD#}+%V!<67aUi%btXS| z20EW*pF{TFQzi16#=90RTDWr#@P)@9MqhF=)2HYn(pPH?PCD1bz9fAff|hUn9U2Xfm4}7Oi8+$!B{QHmKk6p>n+Szx^`>um$Pj1q}&vx#% z*Zfak;kO!djevh7i|^G8C>rxgp0vomB`4y!&zXg5lHDx>j8D`x!m*k>T#9(|7=hFq zwv5>naf-p-(R*U%a1vV7L-NPr0?`ugxo)LM_IKwvw#$WTT-}Kg=kmqD}!K!gR}If_bOs?b8#FHlan?4$Y!&BNWQZ$cfO2W-QI3 zu&xaHCJQxL*n90D&+<}Qcx(Cj#h=K+knIF7;E`>@JWmI+Wj8Bz(G^E`j}DlEN*=ep ziGtVb*TT)yUjptVN%^=4Um5d5BCP*I&*v3eL*acRYAg<1I|{sxugXcK`U;BTOAc^8 zu<#`ATCNZ6!197F#SuzXs3m|+Gn>DD>RLz{udA1y$cH+jHr1obCv@s z4`5+Ocvf8+U|QZy?jI4HpI-Wf2p;2BBypn0oLah^f4uU{){+*6xYhBd9V22}`oESb?-NvC{IU+ZCKu>;2dNyb zDaknNrLAeETyj z9R;a(Cqyg1ouGo-mTVENYF4H-yPm-#mOiA11`A6&-Z?AMg<1EDHom!)@o$=vvY(-Z zqcvS4y%F8~<@yTVRIhM7zqI5uOotnG+t;{9-&bE93PyFF{NdeTQO&tgfPde;^rNSP z(SDn`TdSblD;PVE`E72?c+w62o@57tE1<&x>G`ZVyg$BxY>lcaV+Sc? zuY+4poH@TqYeC>}$Dwy}=f3i4Ip^H<2P6o_$agaPN1o9G{v`Q5mE{=7J%)bC+O0cz zBEQZA<oS(9VxA^A{cgzvySnQKt6pR;pSlKbUks-T} zm|E;{(3r>+yLFOhsIS;*la>4r$%fG!e)Exgex7C<_n)-emdXX_yQ3U#CgeeX!%;t- zbJv9wp2L{!{fd73Syk&L^?Y@hcd7Z|mT0qJrUcx;rp5J#QX4y7bAXQ5U`FR*?izNx zQrR}1^R`7DKaTse{o z^~C;?H`!wR4!&YDRX{ELu0OtUI?{pFyNA*okKctA7=c<`bAlZVGj6)Ys0k z+gwkdPZ}=@uv`CPoejK&42PSe_HAr$ND3Tpfop*taGEC^u^1k<(9F2bEkF42PCo6= zT964d?#I`@`+Syc$W;uu;rz{u{bo+=#Ur_|-@%{HTJC_G(jMKi-JIqgi!x#yH;$Gu zHYvsOr3(gr)R*6%at7!t-50#MK;8^{`VRu1qjb+9z&Viar(+5oUc)ao(WK}3{E1>K zsgi)SM5)nkxHHaag1FJqx5Ea*D3-WSbPDNrNMam+9C6I7x|j}<3RsSknQX(_Pe26c z`LoV-wC}#GQx?uPMc?hlRYTmtBKt0e7}o}EEDq4QO#u#wcz>7f+NRZ_>^OS1&bX2}v;M26 z2z^-a2BC^oD+X8toz`2i4TiXdj6OGA;UxLmVNU>s1o>KNy*K5k16DZZ8>4N-UIq-e zJ6A;b&(_*!HY3dPiK@MY*ZDQ=YH<;{kDIvt;9m~-?_}}Z4l{WT?#(`#Oh62=R()w`f&*#F&rg7qrfW@>x7O6 z$z#h`!1_I_)Z{c&wlK3<;oe?$*2j|KhSAMqwVTc3!pQ5A@m|1AC+yj=q!}dx#x5Rj z4-{{O+3Dmi&^>{e4U^%GojCfqdi5Rz8f1O&4Y#%9>CgI$ZYk=L{1t-0`~btbu0$Kl zK?&LZgOV$wc$jb2D{gcxExDG#HQaPXw-0I_cU+cJYmqr}Lvn%e!8BHKPSh)YegN^5 z9-fy2sR(8&zq%*Wu=9Owd^!`E2HAa}LVA8B9sE zH;OaW`A*d&f3ybrO6g0$iDy1kn7OC-kKmQmz_Z#)kXYJB^3ifo6>p&$WjUaGU~?)7 zYHx#G2Yf%3NxsB$KC@GY-Zp-WjO)_i;ug-Qo_)eNE23Pr1BSzZiBHof?eJIUYEKL$ zfmHBah*W#;xN%NT9QTvN)xiKg1w1e)>I))tm_~sZ=^6E4JPFwH--*5>?>_tv;v$Sx z*!DT7V0>f-)z%-BDM2^pUMR}C< zJ9zi;-OMx2C5m+%QRWM|h9f^@_yyB6TR>R;E_ zJ+%;Dy#Q`R^wqju%FRmTHl3?r=iLzUgK&pj0O!Sp@P+c*;)@Q-6Iy$vG(Vor-`X!j z=A1NG!-pBe)u^izgLHR3|4`z5_HAXSJN1j_idDvj0) zc-v8{Pz78yirV3&eM{0azIoQA)GG5;@{i)8;2&JM6s#pR0b?D@Jxd?!6Pxma8XAh` zJY(8wIPI>SWhR`eR!<!IBo%JRY*Z|#6%8_zkviSJ`-g+heCyHeXwBMt z)dY^Oo9mvkqL*L_k#Ah1wV!^&b}XDnt!d(sGhw^ z*Bbn1eq-0=ic7hzek@<04}hDQJ-XOA4FoWypEx313cx0+YTsa~K>eI)#!{P9gFgVi z2D<`VS&7A`?SVd~;b72=IosTh~iUqtiIgnsM8CFj&K98b0gkn~R04!mKc5 z!Nq7r*}}VY*$jPx2m`6ScorPp*2&~(c^%!_#+Q6;Q-7mL3@aN)OmYqcr;@C`@*CfkX9Pb+- zr=xSFi(v)35dDQReZgxnT}1;c(?E^>7ObY!0p_unSC-&z>&#x^;x-<*kq2 z3w)_(a@d(n^Yp0!)6~s_o>!Ebn~-7o(E@s*L-*C}*|rUVofW9dSDiU*(>Z^r!3dSJ zUgF-{`MA1^Kz=d`{nFK7J+1d}`K3*fCZBoLquRf%`^LL0XPKmkF_1sYjM`wY=`;xy zH8Wbh25Xl?-nAqea?_Kg8!EI&y5fyVGCyUY(-d8Cy?a`;`@{}lX1}~fpyb$TBgOlK)x>x6mz4+o<=g>GV3Glp2>XV ztH1XWgXLIky)0ZXG?aZcK(B;fW5`#sW6HcIvGqS*&re+8wk>TUSn%EE_sD8eH=Nk? z>mvJ8_`BlPl!Y2beesRyF-r>zc-pA*z1l%=S%kOO>Xp}Un4D=21AYxB?D@&)Bo7RW zT8&-Eo-cGWB?{+T0eDmozB97WI}thUg3V}k`*z>4IZ$2Mj5auck{(JJ_q!UcpQbUm z+eiNsI!<_Q&15V)X|fT_hNzZf1Iwp~oMsf?B;|8SMm?}2XS809F(LkkDu+9p;`(j6Y#p+#li^-*;sk*js6Pk~)uoRUQ|dMQ zFxW$|LlxNnU4J1#JA?0bVFMr(8uV%BUn#mGR~d6Ax=43ztuo?rU9E1DoZAvYl3kM! z$}=`7i!2>%X^}-L6gMsuJ4I5>Hpj0$fZP0|`a#x_kaAai(A9d>6~R7zm!rTu)4anx zSL^cJ19P?Ype>oL+@*Z}aQU|VjK(yq!R)2aJ2V|mWgcNRpUpdnwI%&gnYftuXf>!j zLBTF5L5d11GlJx(CDRgsUH~F3e)O6w@>tdr%={%uXg2v2_k^xN>o%Lg2_00ua#n1{ zL%v&OV1>5jtN(GS|6yQ^;tl;8=glOL-HM1hg4S%+TY&%!{PcDpORV3FOLC}()CIAb zyGiOwJ->p7@|(ijIm?z!sZHnNfUgE$R6&P0C{yo=_r^o{;%v0yjyTaxOH0gXkRr4y^P$6Nv<4+hY5JB4FFaN`<@*|u<7 zbp6^dW`ERy7wKBN*gBLQ!+qvHw8bU^lR=25QR-VmG+IM+ExR$0H{8Xk}H1I@2}##=t%SOarN~Z{MV7K2p^y4C46QO9CD=ar*^*x z6sh=ULIMt){i~k*6?rPEqGK!)=TF0^E z0=>}=|LMZ_p!0$J5%QHKrwsC|UY^(D1v$%pt9zf20v0Q@C!&3B2O2mq9EB=`n>WCo z{Z*{SNBvj}yjNR!jwO~?Ff+4qp0f!pnC;#;VWhc%CAUrX3uPj>|B?Nv;P(91{%}V0 zRl}0&=xLQ$UN5kbz?+c62gIj4$`WCmA(xEUzWZOR$QK#0Xsg;eemlkkIIf&fTr(zX zrJn^W(3Th<8@0prtGjFob;M&J^`|YH$4;Phf@>~7C)qCG9=Km=nau`O} zV#!n6#A#W0tw+`=z+L0OnTtJqnMx&)mvhTEn2EqHr82qBoN+&)-jJV{Q!H7HBgSW# z(FDosDMS-Jx||jp32bcx<&pe;7rnd7vtpWx$tA;i`72zPyoKfUtzwzo?>aj=X{itk zofqd4?5M=oM6QM8xME4M(%-&EqqTqauBYBZsZ1FX281zvLXR!zT6{6q|D7iC{+Wod zAxAAU9wk8=b`$b&%Pb5DGUGMpZMJ!bGul6j1*)!abz7eui{315^4Ic`?Adl`-NAdi zbnc;>Kzr<)gpfbX8T##Bv~~^WqD}r)7Y)5RB+CT{*ZY^l6IX-INb3&!dQH82gZW(r z#Xxf&*)JWB+W?ZiqO6*I$<`Bu0y*_EJ$vjZp9$oeDS4~u+75Tai& zf9DsYC@T3K^Q+g|b!`NND+9$~IC*Gam|>Z@A>J8V!|-iLIhG`h$%Zc5LAV3P6<1L> zyIA?H))nH!&r)XfHmS%u;q=vG%QIH`W>wrL0Wbr@sUgJAz&x}(HdQ<5=+cV=jjW%< z32G=@9ny+W-eVCr0oAc)zFAOUdO;%UlB=|Ayu|qdBntS;(%q>>+=)I9L2Yo}MC2uq zG9%GcMVa$pfN$opanGcc_G;Z0C z4QTU#W~_!hG1PO@e#H5?zrNt#)2DlVq)8VT&-N}^wsGYi;)zU60Cw}R>f*UiaR79n zi-XU_<#s%0jWj{it2h56de;0w4vAuwE?T?Tlj|R8eM26mAMM;ad%Ahy@hnFYe9-;%Mt3}#c6t^ka&;@KY|(H@pQ z5WnL@gT4f4Fx_=&KJZ4RIT#B0fpTAdF}y*Au_in~d*oKjt5u?@4~zSyh5k3KGx>kg zI&E6dzU}EcKaH;@4!1MxeKgf}`H_>j_0KhjKV05#e+#u5$t9dFQo@ODc+|7C!cOKh ztM4`3J$hhf=?$yytmlB#4=(>NZfCH>r9FD&ujhr19~9cFRBtM6FIRKmcqUy)eW5*; zo`>|^dMBLP>ado2{Sk1toM(4r2wH7YdtMydf8svlm%kUR=WXX{V()= z(&!tY^I$|h(54Jlv{fpkrIqT6_uj~w|F(@#&EnM(mTJ^ZonVUBlDCOoEGf4=)cFCa>4a{q4Bt$Mxw|*5L{5X;1$w zq{f)(q?`p-Kr>&x(f_iB;0wB$^}6i)AoYVHBYFqUdai=J*4;l&o_Ax0gBA)18J*sl zThb1;TZqm-^yv-XnLNJk?VX=jy7a2I3?9D?L|a9`^_I-y?j3Y$d!9JKbEJd>jS&5V z>;;MpomziCUf?f`+kxRi(F>W1EAM=M@_D9wW2o%r^YciyEm+|SH&4ME-WM+rjZq9b zk1GBQSOC^tKM0TLWH|@laL~`u2Kb=#Fr`(4R+pV-azcTgC)N&0WzPto!oX0`4pl%H z%3Rx3#zJHAC?)?>g(X@|zpj#;a8GBUJA@1^g6{n#^L#iXl`dd3=WqnANdZ8EPrwb~zkTGsn>o4rZnNn>L zWRuHuoWDSSo`ALQ!&FfZxg=`Y{R{RAnLIvMPv-D`V*-lOwsttR~?fl(h9G zdFMUaLsf_<6UyXBu6$#NQUh%DET>9EKB!U{k-%zZAAoihq95 z5~%fLuZ3xE(0BtjVL^lapJR8$g}HQ2Nr^*9`Q@WU#cP?)FsqlMbeZlr+qSjaQ9)=C zwbQ7!oui^#Y)I%U#2WEiM@TH%R)q6Hxb|6UT z?N*7n=udK!s+^rZZY)etEQfXFT~?O>UVYHw067gPEDpp!(hhD)Eo;duHyOAxlnr7N zf!kIy1yCvm#9%fpWnBs)14k2RHUL|B?pDyX{<_lQ@5cRc4` zp8`T|c};8YMqyTe*F?Llqnk_1rSHCzsTYX9C%DP@vITVni|mo^9q*F0-G%8NG^(E* zC~S8TK6Q>L3=)19EM(5+)vNx;K#e`t0QXUHd{VxiWjxvIH!R45Yymh6g7;z*b4 zr{X09nOr)WNqCKpvJ~MvX&AyAC(%qWtyn)mAxtfS1YVOlA4l`N2>4r6V_>mQWCs_4 zV6|%DBI!iDOx#XCAj9;8J}#Qw`laRpx+I2MRFy?BD+>x&Z*Huhx!^^>63k(5CeSa! zWLCMhzqG83G(@)HKy1fa%5QqE-P#f%W9Q!mrRGN^-xJ+#n34dSI73_*pN!T}zWY*k z`Xzdm^e36lr!!s-Gmz!wl?g8iCmt7Ae8{RvBU`u!%aZzg8gZ-V2>?mq*xTAi;)R5a zUjo@t46B}KeluSXn>D6r344HUEGV__dnT@KzGnB-lu0-h@KdyJ-mwWXx@8sDp}Ra> zz;MXW>NC^&Vn7p!Cp~(?3Pu>iP04kZ5|&MIwAcM~J?c$Z;2(E7h09b)ZUEV!Q+dUM znZ&Q22zrKwq?yv0-bep~C>@q=*bAd=H_MmL!e2a{sedic<;L{HhX&&gKkoEB- zbLh+2P|O`Japz!;h}XsZu|Jf|8MXv}V*oBO*qgqqY17O6C8?(6c68)|Cps=V+A7mL zcK<*oKjDKq1*9tg(j#h%(FTlbR{sO(%Z=N?J3RC$ zTcZt*8llecLX1)F(g3#|V|q_}7;aRR{{H@DxjwsDs7@ccHP^R<&=A^&)a}t}*olk) zvdGWDod{DC|9Bu^m%y##N}8}bI-A!DGm45xRebPPMQdLO*kmU#d355cr%ml4W0;jB zi(F-umntge#ujL+MqM(ll{`zdmPB(NxfmV8UG9a@Mx$!<@q4MkMF*DR2?^q5qrl5X z)*(SLQN;~25V7BLpKXN0zCHj|Zi9;nPBixcbTslq_owOxe;E2=>fOYd?H>`-h^Z&Q z5VPctKMp`lF=$$AZuDyEv2mE)O!GQXYrI-I3z2vM=Y0GapU@l!f#GsI0L0bO8TbH4 z`J6Yu(|XNWDqoQQ)?*B3{HAvd&57EZz;1qP&shchaYG&I7(PqFk4;X= zeJ>r(F{%L6FlIUW%S9fc1%AvVfwvqiP!~$?-!-4oRHiDKyDN2q#!0_2SDJ!v2e>nJ z#h09Z2gU-xTdpNk^ISqBR8U{3FVLhrumIctY%gCMAs{P6l)XLT-Xp|l|-{g347oDr+Gg-^zJM96;rxVjPPe2sA>1ySr#dC042L~<0J zgCC8+G(wSTZ}$GK!}u&O0fD|rfigGfl7B_ymTu>{+zyifl&B`5IQjsJPe5wi0~+Iz zG8Ml%z#@d99pDVYM++1z4}Z1@tGIz7-+wQ%fF!&<(x~+*JaZoVkoOd+SYD@5YyYUKr$KqdDjFqi(PgCq zj%w*jlCZ4emog?@6PK$X@^F(FaWaSn(y7*lk%w}9g#Gc(bAsvz8c? z8{$&~O}QAtzBD~w3RnT*+!483ayZg$u<4<2nt&30mHy)beI;(zmXFQb`TQA<7ObO2 z%RO>0+ErN$2eYzJ%XR@-=)!&5#vIHrd1$QYgm4RfL!hSa{*2MwaRYgZmQsmBr9F)e zfWe-@-gCNBI6ti&y;5U77DVm^8L=d&(Jsb`tovje*LxIeJ%HtftL%cBnlj;QD-sEF ztK}qu>_DIB?A`K7GLcj@*fRwH&($kR;HHO_}ww-iS5u~Yys)ms3JeP>Hog4IA< z6!d+?ogPV%r3imv4XwGVN&XqBqrGO_lA)vcD#Y5dE7brT#a3R*r6{xlAk@K!tiz($ zRXw2Hwp%Ys;wC!=^V~bhh&L|wtB-U6Fx1|51Y|ns>fLFp_0P!Gb>(fHb!`}CG52+7 zpo%Qv84vhoDxe0=zP>B6P}#5QPJQ0){?wXbKS(^Qf*I}$C1$N6*0DJb<`FK;X|8J2 z-;SIx_e9-bYMQkI#Zwc`m69c+u zu09oBN_h?_Hl9V;9_1J@0YFxj(FP*#ID-Jfg{L1JNslq-vDPW3{|0)>os9G9fI)NM z-NcWJ*Mrydz2ES(1p1ig!MFXB#cGu4g%7ywZ@T)lPlhG~UmeQ{MRVb&HqTffrz+-- z6z=^<+u{X84GD_PQcbNeiEcSC^HKdA10Sd^)$e26=OaKGobeJcEcAfj&qnat`}XEr z*skNY?j;91e^(9P>ChvIOk^tEjwSh223GF;B2l(dllSExz#1NZRl9`6WCR zg{|#n;wv5q95RZr%AzxNKev7uGY}2N#a9*&h1rv6fZT5^#SWS2H8R6RRgZ-k(V^H} zEyW{w7ddQ{zqKyY#r}&TJnAE6E55?Hri4aSKQ2gd$etZU5rBUq{VAy$ua_npG~;g0 zQ>LO$N=X+}1^jsRC01%gLQOqD?*HCOAgm~o<-%yO6^5wqC|EpicCXiWt=G3jPV*TX zyHWOj8ba&}E06zuxOolBQa95yg-Vl@0e`WR30cNwEu4uh&#gLp@XNKG{X_gMPu)uE zf288S48N)H*=L4z%Y~A`Tzn7BqIs=$uV*x5+MHc-4LyFoWK^!PaX&EI1hsc}%b_{Q zLDV!p(j)~U)vy3?z%FwRzk1z(rDua?HaHg&m@`T_x*a5S9F1yT4D+)=RYb#MHml@j zVNa#B(!_8!`;@K@ND?&4mwVI{w7e?Y^@-yg79Ki-m<-tBa>xWd*-9esWp%2 z9Mrme1RY!IgS9x2&SWNemrct(4UKazW=e^;L2XDzfp}V6G_dpr{cFzK40TIX7tD#{ zoZ%zypduVq0x-q)%1UUZZD4OyWTwQ51R5}_xFW~4KNT>nxsfb8!?P)bYmrpZd;$L! zd~oGH0Ir?t4ptl#Bw0|Dan|jhvwSGLgkGiz3M=YUfmN7=zjSWDH~_#A*n2V!_#Bt8 zE$5-O>MADlAm&WqPIYE*6DD-!J#ED@X0uEviTNH&SJ^mhj;eioqJpWa-K&+#N@F8= z77%gc?%M7`$aF%mO35sq0_&~Vs+!H(z1rOho0PHs`^Jt~nysf({d`{*e@mjniE3?; z08(9D6&im7W_Tk#=zNyN+tDeJXGBtZdk%P%+qT9|axs`!^~govJk-2dvw;6z$6s$< z)?;)fp(oyyw|ZQ`(=3;xcu?1vG0OYU($h!-plY{B*FtJVI(3GW1uv|wDn^O8TpwGJph|-B8TGX=f{A<8GVMuE zeyd_^3b$#OqSSDhrfkmu$~<6n`N#vtP4`=5@Y^ZU|5#?FZH?&yYK>OxhR zDe}8}qfT6*VqGRAbP0?Gi$VioW{nqSmiSZAh<>rXDmsT4PUJGY=FJsEcgNlVoYArc z6QT?cte+99!z&c$S-K`cu$4}Bq=TiwB_hSgIMmQANcq}(h2z1+=x>8fNKAHh)D7Ka zSvY$`{FoJ7EvX6RD0hd(E!u@+OY?Nt@bTCN*IcL+w&!Gsck}@7v!<{c_wT|7XSxxQ zjQ7_0Go~9xN25?`N($M2wUgF)QR*?LrrW(~RLW(M)kOJdNa*29{WLLj!hKgW==~9w^R>4eQ~?#2{nmQu!UhQT|5!p6&w{T zj2nr1K8}vK<1syw=MU^+0oq8qkk`>D-74h|Pw)X5M--XRI07LZ{+gz1o*UTW@5cP& zl&+yaayz8%KC4ISR*o5oq&(rQ_srY*?f+$zfjl`VJhBkZ#&^ z4mYxJd1Xih1w08vzjX}3Fd+Hyube}Ld5KS&;2_#Kob381^3e-Oi~2Chr+I(VSn`(i zn|q?&5&N``(Qm30TmpyE!u0AKPkHv}INWwV6Amn6&VLf;v7st0NCOU z62+)~WWj(+i^fu}D+_bjMcEsan2}~MEXA~NZeE=S9T2rO16`6a*)5;vd&UeEM~Cz^%krk zjO?3iq@8EKW8wmHZc(3bdL)`{Dj4^Od* z$0{webAFUgdA|+y+L|{bK4CXQf1HctR66LnTI#u)|NQ&P@b!2u zmK+2&hPeeMvHqo;nU>*`sl@UIPXWF)^?qxp#D@~w z`(cV9j#mDSfT)O6wQCqXY17=b__4kVUCm}z{pYEdeefW6Jm!HfO>jMvI`~jWN;JXA zISK?zAIO5$muheGEZy>f5r$vg$J>IlWIJORQRZC~m2ie+ZfCPm$PT)xdVT(0a?4u= z7zyPMVN$*@>!^&w%mce`l}|lw~N+ky_eVAq&)j);MXj-%1mOz z_DXgr8Y`Ge_=4VH zlTeTd%Ls*d5-mE*?~aK;wLnQn@_RRj<5jgbfE6x4>()=Z3Q`x8nnJSMW1E1?%&Ajg zVTlF&J+^u0tDeanep6^p7ooP8q+?rXRLbe1T{Wc1AYYW) zD@+H#BJIv_VIkC=RJW00vK=j%H=v zEy_c^9G6nA5DF!^H#>$*+m^ghL;(!~sYluZ1OK1yDchh3I4`MI-W#kFOR2duVUtO{ zhcu#HUs4ZM)>d;MZc0g=vAIpEO@Qa(uSNT!D5O}Lu#s&&e{sSeJ@ zOeVt4B^#g&q%w$#GGpijG@{p(Q+G966{||3NQ({$Ulb&Mk)dO0pR^%ZibsxG=??*S z?s3bzH6`8KQ5MvP9JE7AoD<%>2eoLXOia1eVoyO15fo9PSuWB%&T(Jq#QcHfV~?eZ zZNNNio>T*E4Dw7P5Z7G4sjs_*HMB!40Zg_moa{(qr6ewuH?&&iy>_Ky>hf>rg0muI zoC^}Z!wG~}qwAc*P{L9~3X>hfzW%kX<>Z31<6dbQN|dk~0>!a7EU%8gf{e?Wz7!CA zyH+M|+)ad)$z^BX3|u3E^SA5>%xj(dB*#eM#jDv0ldhl)bYkOSQ{-o!cKWG@6Cu{R z3h>p(5OSPo&OnkQb!%k$((lno^$uMziOyjoG)N{hxBy%qVSGO$MFlZ0KJ<~p-aK7& z-?BZlRcjbfcwBZ}e?*H)S;v%)6Un^1Ms{~mU`Ut|#egaY3IEl7mM2%Ak1>3f*SRL{ z=!x|>hqCsJZ7O>8xx+wh1l;gQU2Wxi*!=rmq|XyPcAjL^uK#GBH!bABT}&N1hd^7* zg)iM7A|ZxY&sxPyW!EWZIS0X)hT<+?`0!ieTwyNZ42u?w9(UT&cS5jPr%cReOigCZ^qTqBDdS)Cr;iTk68$BrA-d{Zyr}GVatIogJim0DmK5Aq$blqS0}^xfGho_ z66xXFw5+dx?_YKYoBFVCqqg4-`C66P2O*s*`9+^nJN9BI$>0V>7ZowrDqs}i^j#o;lhPl1jx!Gs z4_5Ugq=FBoOTs%&8S;B#KpO>u@PSO?goqsfNJk7VxbYJpfpdlJ1+AMLkDw|sJfFEF)z2YST044R2~T+zfw2FZx-6JS+vDHHUt1l->i%^T%x329^k z=s`R8e*iu}!M{6WU69>Res!yCer6pzW$!b#+l&(j8)7onB;QI{t^5col=&XmZ*x0r zE2wN1WzFHchfGAjQp*0dvhr6*+p)GkXP zr96ZfFhHs1jGJIF-si6t96hU0MyZ`Mr&`oD_x#8}u?KL-$>w8I;C1IJDM{gga`R9EKK{A06_$l#9gCOBd zs@7^@Of1IWA~=f8Wnip%g(H)t2p|ot%OqKi3P{40$E#2^%13qmq%Lv^%S!>yPB}Kt zTb{4x>PP@)VHo!MbS2roA*XH<{(E-#?qu}lwNBZpZj&{%FlJ_5Amo@(9I?9B*ptq1 zPSrzu3?7E&@u`Mn=@KlMS5nFY7Vn=u0N0g-%Og2{0i3u!Q&VY zSSybnA#%ZDfv&rd{G@D`AeDqEwUSiuDB^!8#(GaE#dcyGXOX$+jATx_o5mRz7O~e! zVmO{jouBE;sXP)lGA8N9T$t)iw$_2D{ZjLT=VvIl9S6b-K-MMFv;Xm%;IZ3?ZJg6%mU4KX42qf$wBa1WC9 zA2Tc`KTpOBnEv`w`1?GGVK^%Qvx5Z28r7{!{ZrmC!WW9kCbX|SmCRGrRoM&LzRGt3 zzIw7I*eEzZ7pbtewd6sOVrqh1CwL_!Q_EYm1BEp9%DZxyAR(fNFQ#BJM!ZsE-fJrq z@8{?Y>4Jk&ez8?6DB3UOKN020(H6+dJ@yBq$s*4Eg}m6)ThX_Av9hA!Q3(nE`o#Czc_%6tX5JXB6*(|@642;k~u1*=FJ-C)|O zK{rmMCNFVxL`~_qhw910t^O+If~+WM>=mEKH;QbSU^bwV;+fgqNZFSmT|j2QrKU0i zcpu?fd1(zI@G_QOe;qW9mx7SnYmtICh~rzi-C5~-${7I4ZD#n3605{Kv2WNR>tLOc z3yKD#a(ttQEI{`TI^@usPI4Q4Ow=>@oh^@IE69+AAozmw1%Iv$bK|NtmXYi)Tyr+8 z(3GeYUHPYN*rl9R5G`ax4COo|QMK2ad!N^!2a+9`;+tSZw)R3$QU9g4qkEbDdbCUa z>(Ug@qw*Zj8Hf6j+M-Lcqw@-u$u2Mj+br-50HgNka_Q8wdvm!yl$y2};2bN5P0V^kC+RKEs%kjyOc8XXBG?_mRn;u;zFV%)ImgVJo zvgKt%GF=O-(la?)i~*B-=-Ve$)f+Xm$C}Ncs=lk(%T%ax8K>M$a)HtmsU-tUli^9N z`FegosbEz6b&@QJizNvF#v)1Pp*9933c&`UVtKtu<>Vf}hYSQ?DRq{<$-|5@H*Vkf z9p|9>{jMn5VkW1LnX2VsUEO_BzRfG=O|ilU!eT zDlQJ@f_=dBSZ(o}9L2qek`r+Hi1YTGev8 zN=Jn^Gle>-OWvb-=FBcf!s@G4Fqk!2Zpk3u$O7!Urtpe%1_NGCIaxH7F=^_X$xG|Hz*9_7t5Vwyy1F{H9)e_hjPZF=lY=8?*-ym_?hba66w zh1uq$kxjHABilGdo+kvQuFcEw`jSSMj9*=UcV|Alk{jK=sxPls>dRBTtK!qsKDjuE zXBy?RL|EzrmCEC0+_FPqmh7;DGClQMgZnE{tkc7C~xBw$i^#RCCVG?=B1 z-s=6)<=i~nodxNL%y3c|Iq(JTwCNy^UrSAr&{u8f=%ce*6=>tInVedg(*4&Qv&=_Y zi^hY>K=)hSSuu|37z4V%^x$YG>@3T@rN@uY%Kb>2&xaSJmncDhx3b@}XR_}`996zD z@@t&Rs@St_cN*4QwOJ&-@LI?9*E#C!2J_r4j){CT&upx}L$XX%72TRBcPBD?7GEkL zk?b9HbY;?}`;PmhcDQ!X(sTDQ47+3}DeV)Agm0%SRr|E4oT_ z(y|4)@3lxhVn7;T-d@kY#r}c&2j2 z5PaZPmCZN}5zCu-7?Ah`-{o*bfvp0@%9=i>iW!^zizKdsWvW@3BHk5>(_F;GSRQ3D z0vR@ZHVbI$5zoV1c^INi=_rlw&6%yv0?DQ07{#|lk2@wCGl^|R1f2t@f#o!XMRj4# zLLEFG{VCV<+a$&X5rp)cC-EJ?Cl|r_1vF^*6DewB43zmu2e~f8$QuVUSc*;cRN-u# zaP|scA*-iGG@i`bjRi`wg%@8Dg-m6t`OOb7!IMZ)Z3TcqBePXglolT4 z(RWy%dmM_%CIQ`g41`}U!)1ZhwE@X8j8a2@5(OCXN<&COBaieqKdgZFZlnd9 zBa#|(3!_h=0G+oE!UM2OKH05q%W)2rfTN>j*cQ<}YF)(h*`Hy&c$#OQ_DiFEJ|`OO zllYNo5B4uXwu3Nwzov{O%Y0blyp)`vW!y`Q_?GYdLGY(t3+YpbdQdIfGdWfn80^VEWsWd) zpm@9*k9mt$opH`L)*wy46z8j%w=5w=v{&S}PHe5Eca?aHI4j8sd7h|G636QVeo{s8 zG@54;s;o;i4Wjs9wFqDlf%@1#pM}7a`#J#wt<3*Jpa?_apW+3uzCaQGXZUrW4w$06 z!*A(1{-KSJ_h(7@vk$v?>*e(5&CEPDhhhp1>Ei6v;^VD4*FMi_z7wa1T8T24_|$GW ztNBg{vXn9Rx4Aquu`jQP< z-@e(XzG#Dbiq~wIZ}FxLg8V_8T)KNkP~#P*8#ouddxlofYz#m=y_!_OXL{k)J1qs< z$V|pH*(RH1mnWMe%VomaX;Oaz%CY`Q&#v7}HTG4eGV!8QR)Z+n4<{O&kz7%jR8QOX zOId9~no!UP+ri-DlOL5nB-1#?1J>|fcA-^J8Hm5Uh*h%UOe*!WT6rs(yIV4u!WTyB z)w|*=sp89p2gys`si;$q=>BB5(73;+u(*^kx;Yl-_esLs4Hw*<2-*Ns^9)jiQrQ%z zi>r&Urr| z@)^=iEQiMsWl#1>@@6MJd9o?f_Q8Sm5_1nvDX`BZGN%w8({?a!z+uDk_JDL1oF!eg zXt;a}6Qz^m8%%O90peZnd$GsF>Gx)9SaxTt*fP?R zykI%}hWxFWo!|U8)r8QJb$U864{e#?$Ig8P?8w&S)t-Cln% z^u`lkOesnvpI#`b;PCtJkDebNpT2zl`Uf!mo?5P59*gjdyACHp7`A)180b2nH>Y;1({j5M$+JkyU^W2@FNBa{80J||Y-R=O zSPn72w4_b(B>&nEU}%x?;)*gZH|VoJ6*bLY{Oxa<#ZMm`JhdFVxIZaHHU?{k?gqpR zjr69$)$Zkc!cPhfAnX5sq2qgdS&7E)){IKd z1G8a+Tipz8wpczF;oxV>duG(XSoY`Xhr)%74ACiL2sX14W=Hc% zYU0N@g{pg|FDC1Hxt%arSZC7cJj*i%I$>Q~PL<>{+DWFZ*VP((nfbmR&A+<~bI zmY5Q`_|xgx)WROX)C~AAXjUV7OsD54%+B%kZfq#(%y!|x>k^D)(vxg`)59nYk7Rt# z7un)X5-e||p-pGy!9x$krTX+Of16|}rR=oou21ur0p*kXgc}|{o|)lbu1KG<;49ye z>G|k{jOsHknKwfD{d7`sSs4bA6{c-IJ3CWE&*b6G_Cnn+rrW}3S((H*mE~WLq##i1 z8*`l)HKF*S%sj8Ib%T2?v%tUqja|ZXExC@FJ$h1-7x{2TYdH=+iP?3N(+u~z$DCmQ zM!7sVN)xT+A}5&2X!*~=rEYx30?mqBouTiqvNRI$@_ z5_!j`NS4Qbo@L8JU+#pj(gL`MvGRmY@z=vW6Ti|u6V($*{aUJOR9#o4Rf?J0N@md@ zeV`AcP{{IBorqEw1yzZS>~%3T@Sm+N zsWwI0@wJ)rRIm867Ofc$!(GCfz6|LSqpf08d)+@@gjf3sLHB{?`+;ISA7=@Js*xfe z%%p$?*Rx&8OP>Ot^TEql_@bkA=79s+5}=R+R97>3b?m}w+m_9tt+$lLU*nuDUru!} zI;5Y^IOg>EVl~J3(3$uZB*BIrZHrt})l|rk_dL0U#gHN;ol%S3H_zNkY2%BS*{@&; zZl*RNma@KYT(IFn%RU*vF0nF2+?+vecxlWT7Q3b)ORR3?*jEU~_kylS}eR$`A+!?0edzR94 z!U1U<;a>C@(=H{VEr0Y!i8ZJN#aR|5#0No4Ui!uPJ|eDtA*Jg+kXUFQi9`$p-#0%` zu8%x$-C^%NHGon0aU%K9b|Il>T&TA$`$0k#7ENu}LaxbV8{Cu&Ve3qNYq<4UlGxsm z=jVLsHMuadGfY>A5Zz+Vp`aL%lFnka)hIxGks`yU9DsF;=XFBtSJ;y(>Q(J>*>o(d zyZW-EaPbCSN#P3qn%tLLdpe%!*hk~eCwZIHb|QAs&RG z(?78BGErF=wu zC!G{Mna`|OKc61GdHLLWYJC)wiT4rxoxePiPxY-;rZrhU3|9aug<()$qg+We7Do9<|7pi{Y5BQ-z-O#e0G^Zu7*?0+#tL2udF{q}2(!`ZkBod$=?K@Cq`IyZFD^^}kb)JYi z%IUP|axb!7`NBPHx@EmW>_OS3#b>U9PNyR=FTl*xr(N0f!o{kNqQM-TMy!qxab(8G zHO!*~SOr7lbV?ELV4z!vX!96DfNdQg9!J6`$&g!U87%P@6Fi^C!Yq*%`oJ9> za}#B=O(`lBI|gyN2eTCU=N*}Ot=KHL9GX@Yw`c0>TX{e8HSOdC<+Hl9s_~v%)AKk7 z^f1!<%hM`U9DoYEvLBbh=EX~Q*_+~9UJV=?d^|Nlcv%9{7G?hh4)ORFfePLnkX z!#A%FKQsA1GkWU{_gUYvl0Y(Ym9U9D7NCHFP-mL|qS!sT-X_2LUlgr;-A79MF zoX8kBnZ*=p?{CU#l4fV#N?7OGqf!~+Qc)xDHyf2gDa_30s9sXuPNonYwpB8wICX)c z898y4OnuLHzooTglWt<7blupOANXaGLNlH0ck4sFDoHfEYPrd?lsTKP`;~Xi*F$Cc zv?1}Z=9$WhJu`zE;iXuBraq1Hl9tj!s*3gi_SG}V2}!q@%L0^>nLlnJN2_0D-b(tC zowsC7-}%HDP1P`S=E3!B8u-)>7dsonX^i>%DP^OezytBtpi>Mn{VgkW6fD9pf#u6keh(m@Xxm9IUz|{N1hU%9@6PM#Tgng^aE$x%M*|@XLKgN9gXBzBLeu|0;^|`qo zNU1#|e7jL3rJ!zR*f}rf`hjczrMx-hP<>`SwesrLba@qGUHB@Cd-ZLg*-=VL=UQ$W zeXmzyDLQCEs^Cw#t);fP3Nr%k2wP7p9N2r^osHPdp-lUzHA~~wsrszLBz`8TM(*SE$?9o9IsQ?P&z8otr?A+Gz z)-UB*a*8oS^G9vm>OkH_>nivdTnaz%D2^BZI)J858*1zGloAKv&coh&yy4~pMIkIP zK`S5=-j&AG*~#WF>0L5k(~eWHZ!R$pt}p^A_O0hCRGF?=^nJ`;&ADKG-lQkEDDN7g zyMYAdVO}IVdUy>N)z)~^aP~M1J6p4kHzOePrm@&VKx>_^Jd&%@Qk;8a)bjnWGRU!& z3zkTZv+&s=BTfRQ`_QK_NlP8%=hVxQF2a!}sfnerrKeivbb()===Nm;-^)05jtRlM zEJ818U9PM)y`tvVs_vq*K@^Hdd2?(GTjz_7aGs4IoyOUB{3}#+2If(6Zn1HeGpI0S4u6ES`};T-{7F(~{Ak6e(|r(zFml7#o|W_meSpbH;#=k-K-+!-YaBpw^N~S0&kI82kFvJYJ-1xQ; zo<>wSk>4g8*KtqW2}v`0^<0{BO%ZINA#Ph+BX%uCVq>Lij_nOY9&w@wsCDMq0rb!THCTio5E|qUC8Bk0 z`FI{((4Y3S+V8SFRpUunE+#5+DXb(BAjpj50y3E8(Ut(-M$cvgik?y-mN}g;Z4>kU z7ButtkZ`Bq=z=CT&r2^gAl!LpG~+DkBZ6b606$m+>G0_STooR5962~o&_ygpOk;sq z1#^)Zh?(hzc?9}(X21YC!-IjYQ!b$7ILk|y8UJHCUTZGkq=QrrHEe`dwsdA70bA?l zc$VMN@OcwOgY7S|PBI$+4Q=1pVi2~d1w>m+r)4SUbE`47`yd7a{cg}Qk_=SrPHlj! z9f}VCs=PXEI)ptZu7zavJ!Vx6N1V_qon^g+wxq34u)h126prYy&X1?wY_PRKO0HP$vWt7v1$$!cV!wT_)Y za-7kj+HVvWMD6XPXztwVjnV2@qq{ge=;a#5L6i8%jVxC?%^hwQO6S_}L8ysQ?m36@ z0dJd1*W6T1rG`UxTJlr$aIUS>9yHH#tH@EP+gg^j0OKt7qO+pAoosN0LdrlX>LVT_ z1qV_#uGRO7yU7s$0DknoqQ;RU?9em-!8>u*%m`O(F&Z%Ogg=1(Ky(Zip9ryy05rd))FtSn1lHBBct68d;Y>FSSo#UoSTJyOF&FB{)! zjj`!LhG_&-Qqc$q=?I~x3hs&wFM~{8HzO?oldNPurO%o(_9Tduq4s)6k4`<T=rJs^y43i$FBMPn~yVV{LSp?2(bOl#i(g9?s;umM& zQ+N@`G0>Ra+tHY{f$WH>)I|P(_>P%qs7;Z5m(Q>x&|PR8#x>tg(ai)R`0$#B;mGV5 z0irV#5<@!!OX6&ZkXqy$+}2_C-u->r)PWs-kFO-09Y*Ol6C`s_qwPSV~eeS&ceIX^$9HQXKhG z8!>;Y7yEQv+S7)$4aFEtJ&<{d8A>4g`lr?a`5c|{Zh7h-JEQ+B%HEQxR-oyH6K<(` zU8M;wL#eAg&xKy@n8M|lvTwAQX6)bOwvbI*$)~ee4s@fbPXsLRd+2(ht zr>zd`{Cj~ouN-z0fK4kwv@$tIsR(_yS+o7y~LdFkILy@Xt;CktO4I&a>+-PmrnHYi%W)b*pt z)fXYw**`jO4=G{>&7eSw!RmExAYm-6eL(K56HEtDJE%wPR(osX9fSL)Exe7dc-Z*= z7thF5eiFSJ-jO3CI-4d}ahiNqLc>|7#~t9O>j^oza?RsQ zG8_-k;sQpa(G&uyStG~fR`)BZ)p>dJ_Ne<$FvYz->Yf~)okg!t-$$M3UFUuG=-|WK z&im-yhxhMJ&kmarPgca*D5t!LB`23ha_h-eO8k?oJ~Q;7?4M9>g%=RCSA{MwYc3vS zgpn~0P0*N(n20H&56~QUKl2#*FJHbiZ$>kOmKe}h^37lPz1F@_|FYj|K5cHbqMuvM z=j>{&-G7Y@XF=pcZY5TxWq#nWr!2i%6l|VmLY!wSF z355c6MhMTcsmLuh>UWU5=3oGMrB^Ar+`X+exCC*Bo^W(Y{82ny0#Akq#Ba=F&WduwAQ& zYe~D7v`dz>^CoQcrqk7P3Wj6KF=4c%)MeUc8ZW|MrL>dup_T3z*` z%nm~3?QEI?^po0+d{gUK=Oys7TK07|Iga5Cm8Jpw+8Im4K{=l^B8?*a z_@ZWfn-QojiGJQwi+Yi?EKoRg={0;f9{{d^F+(ASkGqg2d`5GkL;FNR-DDI248&e9 z8)8~tIxj0tHuJqBR2d~bA}9}lrbnae%m8}f8iMEwpZ};pXxV5jykADn16s>|2p6OE z76juzf-xt3M|FUuIMthY34Q=aeN%1m=5_2GotzwYFMjQu{i-E*w9}jXg)t*hkhpH* zYn2H9qmzq+Q_}Q7_w>Chb)>6^RK0u+AO4^2`wrA1|2gPhygz(%bVmN^?4hu1c~_+3 zS(lt)7iWjv?xA}Qjv}&QzDO3y$uZb@b9i>~_VDCQ7pT6~Dyj1R@VCSFFon+9>4~iO z^vRy$RvIbR0KfvXncACr&MsP4#-RMfH@c%cA$XMZcnIOjeSSzCA|!9g6gP-!0(*XA zlzg3TkV7NkapfDI<4L|TNMgt_wShWW-V+`ij*Q2rDDXo6pwi{?UDrFjXtm>u^cWdpU!%pqCu98 zx!0iH;*l<8^Gi3O-^tDoClhjQt4KmReYUFAC~$-LkAS8;#yc#1ascI1CkZ$Y)7RC$ zdk$|HL;fD;+@Zs9m<;-eQRLtea>e{jLLr3?AKgXS9R-HSpnaVq{Ee2Qcuf5oO`U~9 zqCYfPHZ2?q{S-Qk1hb(E`68Uu-K4_Ysho@Hj!z~Uz0CbpWJBe>GVP=q{Tu@~omPv6 zjwQdvxG|SCfD()C2tGlUg!61SR$M5^tgXnwvAx-Z{KofzgKv4?ZY8I5Rx-_LMox-P zh!(46kw&c)K}OSS{u-!wD4}|H@6uE(p9alPh0>axsYKp5O;y|{#MQc%gc=N1PJIep zfoMwA5}Va(=u)U(6%)v@M<;O!p$faRC|0Z}erwXX6vq;lVyYmy9!--nmU6Ui5$GhF zM(~<_bE{@xr+KBPLi6-c2lELQW+~ws6m@O}>|S&XmZyF3Lw%&W>&uZ#pM6eG*IfMx zZjUO8M_MmJLG5Z$AlC zhqO0Ev$P_e*+DJd3BjX-_1QdgiJ z;aK<&zjG{o3lOcMP}((>hTeh4d|$p0i>&f|cxvH8of6nD^^gPYafmbR-ZXD%z@_bTW4bBZ34Dv>6c z#L)yjwG~q2<+Lcs986T{i%nep&sxv2(=%7g#X=OU%>LqK9PS{VF)8{_rLyv

l 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

P4!?V< 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�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�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