@arbitrum/nitro-contracts 1.2.1 → 2.0.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +26 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +13 -2
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.json +13 -0
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +2 -2
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +4 -0
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +517 -0
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.json +2 -2
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +50 -2
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +55 -0
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +4 -0
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +10 -0
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +4 -0
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +46 -0
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +28 -2
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +1 -1
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +2 -2
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +4 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +71 -0
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +4 -0
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +36 -0
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +4 -0
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +142 -0
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +4 -0
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +25 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +2 -2
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +37 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +50 -2
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +50 -2
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +48 -0
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +88 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +50 -2
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +90 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +90 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +90 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +90 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.json +7 -0
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.json +161 -0
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +4 -0
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +453 -0
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +4 -0
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.json +126 -0
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +4 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +68 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +4 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.json +58 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +4 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.json +40 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +4 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.json +24 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +4 -0
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.json +24 -0
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +18 -0
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +18 -0
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +18 -0
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
- package/build/contracts/src/rollup/Node.sol/NodeLib.json +2 -2
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +28 -2
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +13 -0
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +2 -2
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +31 -0
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +33 -2
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +33 -2
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +2 -2
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +4 -0
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +10 -0
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +28 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/package.json +17 -8
- package/src/bridge/AbsInbox.sol +16 -4
- package/src/bridge/AbsOutbox.sol +11 -2
- package/src/bridge/ERC20Bridge.sol +30 -3
- package/src/bridge/ERC20Inbox.sol +28 -4
- package/src/bridge/ERC20Outbox.sol +10 -1
- package/src/bridge/IERC20Bridge.sol +7 -0
- package/src/bridge/IERC20Inbox.sol +4 -3
- package/src/bridge/IInbox.sol +3 -3
- package/src/bridge/Inbox.sol +6 -1
- package/src/bridge/Outbox.sol +5 -0
- package/src/chain/CacheManager.sol +293 -0
- package/src/challenge/ChallengeLib.sol +0 -45
- package/src/challenge/ChallengeManager.sol +24 -9
- package/src/challenge/IChallengeManager.sol +13 -0
- package/src/libraries/Constants.sol +11 -0
- package/src/libraries/DecimalsConverterHelper.sol +33 -0
- package/src/libraries/Error.sol +6 -0
- package/src/mocks/Benchmarks.sol +52 -0
- package/src/mocks/BridgeStub.sol +3 -0
- package/src/mocks/MultiCallTest.sol +117 -0
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +29 -0
- package/src/mocks/Program.sol +126 -0
- package/src/mocks/SdkStorage.sol +176 -0
- package/src/mocks/SimpleCacheManager.sol +22 -0
- package/src/node-interface/NodeInterface.sol +1 -1
- package/src/osp/IOneStepProofEntry.sol +10 -0
- package/src/osp/OneStepProofEntry.sol +81 -7
- package/src/osp/OneStepProver0.sol +64 -20
- package/src/osp/OneStepProverHostIo.sol +201 -2
- package/src/osp/OneStepProverMemory.sol +4 -33
- package/src/precompiles/ArbDebug.sol +2 -0
- package/src/precompiles/ArbOwner.sol +51 -9
- package/src/precompiles/ArbWasm.sol +119 -0
- package/src/precompiles/ArbWasmCache.sol +36 -0
- package/src/rollup/AbsRollupEventInbox.sol +3 -4
- package/src/rollup/DeployHelper.sol +22 -11
- package/src/rollup/ERC20RollupEventInbox.sol +5 -0
- package/src/rollup/FactoryDeployerHelper.sol +54 -0
- package/src/rollup/IRollupLogic.sol +2 -0
- package/src/rollup/RollupAdminLogic.sol +11 -0
- package/src/rollup/RollupCore.sol +1 -0
- package/src/rollup/RollupCreator.sol +49 -1
- package/src/rollup/RollupEventInbox.sol +8 -0
- package/src/rollup/RollupUserLogic.sol +35 -13
- package/src/state/Deserialize.sol +88 -47
- package/src/state/Instructions.sol +38 -3
- package/src/state/Machine.sol +92 -15
- package/src/state/MerkleProof.sol +22 -4
- package/src/state/Module.sol +3 -1
- package/src/state/ModuleMemory.sol +54 -0
- package/src/state/MultiStack.sol +58 -0
- package/src/state/StackFrame.sol +6 -1
- package/src/state/Value.sol +13 -1
- package/src/state/ValueStack.sol +6 -1
- package/src/test-helpers/BridgeTester.sol +3 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "ProgramTest",
|
4
|
+
"sourceName": "src/mocks/Program.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"anonymous": false,
|
8
|
+
"inputs": [
|
9
|
+
{
|
10
|
+
"indexed": false,
|
11
|
+
"internalType": "bytes32",
|
12
|
+
"name": "result",
|
13
|
+
"type": "bytes32"
|
14
|
+
}
|
15
|
+
],
|
16
|
+
"name": "Hash",
|
17
|
+
"type": "event"
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"inputs": [
|
21
|
+
{
|
22
|
+
"internalType": "address",
|
23
|
+
"name": "program",
|
24
|
+
"type": "address"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"internalType": "bytes",
|
28
|
+
"name": "data",
|
29
|
+
"type": "bytes"
|
30
|
+
}
|
31
|
+
],
|
32
|
+
"name": "callKeccak",
|
33
|
+
"outputs": [],
|
34
|
+
"stateMutability": "nonpayable",
|
35
|
+
"type": "function"
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"inputs": [
|
39
|
+
{
|
40
|
+
"internalType": "address",
|
41
|
+
"name": "program",
|
42
|
+
"type": "address"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"internalType": "bytes",
|
46
|
+
"name": "data",
|
47
|
+
"type": "bytes"
|
48
|
+
},
|
49
|
+
{
|
50
|
+
"internalType": "bytes",
|
51
|
+
"name": "expected",
|
52
|
+
"type": "bytes"
|
53
|
+
}
|
54
|
+
],
|
55
|
+
"name": "checkRevertData",
|
56
|
+
"outputs": [
|
57
|
+
{
|
58
|
+
"internalType": "bytes",
|
59
|
+
"name": "",
|
60
|
+
"type": "bytes"
|
61
|
+
}
|
62
|
+
],
|
63
|
+
"stateMutability": "payable",
|
64
|
+
"type": "function"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"inputs": [
|
68
|
+
{
|
69
|
+
"internalType": "address",
|
70
|
+
"name": "program",
|
71
|
+
"type": "address"
|
72
|
+
}
|
73
|
+
],
|
74
|
+
"name": "mathTest",
|
75
|
+
"outputs": [],
|
76
|
+
"stateMutability": "nonpayable",
|
77
|
+
"type": "function"
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"inputs": [
|
81
|
+
{
|
82
|
+
"internalType": "address",
|
83
|
+
"name": "program",
|
84
|
+
"type": "address"
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"internalType": "address",
|
88
|
+
"name": "fundedAccount",
|
89
|
+
"type": "address"
|
90
|
+
},
|
91
|
+
{
|
92
|
+
"internalType": "uint64",
|
93
|
+
"name": "gas",
|
94
|
+
"type": "uint64"
|
95
|
+
},
|
96
|
+
{
|
97
|
+
"internalType": "bytes",
|
98
|
+
"name": "data",
|
99
|
+
"type": "bytes"
|
100
|
+
}
|
101
|
+
],
|
102
|
+
"name": "staticcallEvmData",
|
103
|
+
"outputs": [
|
104
|
+
{
|
105
|
+
"internalType": "bytes",
|
106
|
+
"name": "",
|
107
|
+
"type": "bytes"
|
108
|
+
}
|
109
|
+
],
|
110
|
+
"stateMutability": "view",
|
111
|
+
"type": "function"
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"inputs": [
|
115
|
+
{
|
116
|
+
"internalType": "address",
|
117
|
+
"name": "program",
|
118
|
+
"type": "address"
|
119
|
+
},
|
120
|
+
{
|
121
|
+
"internalType": "bytes",
|
122
|
+
"name": "data",
|
123
|
+
"type": "bytes"
|
124
|
+
}
|
125
|
+
],
|
126
|
+
"name": "staticcallProgram",
|
127
|
+
"outputs": [
|
128
|
+
{
|
129
|
+
"internalType": "bytes",
|
130
|
+
"name": "",
|
131
|
+
"type": "bytes"
|
132
|
+
}
|
133
|
+
],
|
134
|
+
"stateMutability": "view",
|
135
|
+
"type": "function"
|
136
|
+
}
|
137
|
+
],
|
138
|
+
"bytecode": "0x608060405234801561001057600080fd5b50610fe6806100206000396000f3fe60806040526004361061004a5760003560e01c80631d00bae41461004f5780633fdd58e21461007157806396ec12e5146100a7578063aba8c4ba146100ba578063fd424462146100da575b600080fd5b34801561005b57600080fd5b5061006f61006a366004610ce7565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610ce7565b610200565b60405161009e9190610d86565b60405180910390f35b6100916100b5366004610da0565b61028a565b3480156100c657600080fd5b506100916100d5366004610e20565b610434565b3480156100e657600080fd5b5061006f6100f5366004610e82565b610a2c565b600080846001600160a01b03168484604051610117929190610e9d565b6000604051808303816000865af19150503d8060008114610154576040519150601f19603f3d011682016040523d82523d6000602084013e610159565b606091505b5091509150816101845760405162461bcd60e51b815260040161017b90610ead565b60405180910390fd5b600061018f82610ed2565b90507f224c8d9ad1bbf0f44a61d7bd8e7e9049b1a320e04b047da9910945675c31ba43816040516101c291815260200190565b60405180910390a16101d78460018188610ef9565b6040516101e5929190610e9d565b604051809103902081146101f857600080fd5b505050505050565b6060600080856001600160a01b0316858560405161021f929190610e9d565b600060405180830381855afa9150503d806000811461025a576040519150601f19603f3d011682016040523d82523d6000602084013e61025f565b606091505b5091509150816102815760405162461bcd60e51b815260040161017b90610ead565b95945050505050565b6060600080876001600160a01b03163488886040516102aa929190610e9d565b60006040518083038185875af1925050503d80600081146102e7576040519150601f19603f3d011682016040523d82523d6000602084013e6102ec565b606091505b509150915081156103345760405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564207375636365737360701b604482015260640161017b565b8051841461037f5760405162461bcd60e51b81526020600482015260186024820152770eee4dedcce40e4caeccae4e840c8c2e8c240d8cadccee8d60431b604482015260640161017b565b60005b81518110156104285785858281811061039d5761039d610f23565b9050013560f81c60f81b6001600160f81b0319168282815181106103c3576103c3610f23565b01602001516001600160f81b031916146104165760405162461bcd60e51b81526020600482015260146024820152730e4caeccae4e840c8c2e8c240dad2e6dac2e8c6d60631b604482015260640161017b565b8061042081610f4f565b915050610382565b50979650505050505050565b6060600080876001600160a01b0316866001600160401b0316868660405161045d929190610e9d565b6000604051808303818686fa925050503d8060008114610499576040519150601f19603f3d011682016040523d82523d6000602084013e61049e565b606091505b5091509150816104c05760405162461bcd60e51b815260040161017b90610ead565b60408051808201909152600d81526c0313637b1b590373ab6b132b91609d1b60208201526069906001906104ff9084906104fa8443610f6a565b610b79565b9250610531836040518060400160405280600d81526020016c031b430b4b71034b2101010101609d1b81525046610b79565b9250610563836040518060400160405280600d81526020016c03130b9b2903332b2901010101609d1b81525048610b79565b9250610595836040518060400160405280600d81526020016c033b0b990383934b1b29010101609d1b8152503a610b79565b92506105c7836040518060400160405280600d81526020016c033b0b9903634b6b4ba1010101609d1b81525045610b79565b92506105fa836040518060400160405280600d81526020016c03b30b63ab2901010101010101609d1b8152506000610b79565b925061062c836040518060400160405280600d81526020016c03a34b6b2b9ba30b6b81010101609d1b81525042610b79565b9250610668836040518060400160405280600d81526020016c03130b630b731b290101010101609d1b8152508b6001600160a01b031631610b79565b92506106a3836040518060400160405280600d81526020016c0393ab9ba1030b2323932b9b99609d1b8152508c6001600160a01b0316610b79565b92506106de836040518060400160405280600d81526020016c039b2b73232b91010101010101609d1b815250306001600160a01b0316610b79565b9250610719836040518060400160405280600d81526020016c037b934b3b4b71010101010101609d1b815250326001600160a01b0316610b79565b9250610754836040518060400160405280600d81526020016c031b7b4b73130b9b2901010101609d1b815250416001600160a01b0316610b79565b9250610793836040518060400160405280600d81526020016c0e4eae6e840c6dec8cad0c2e6d609b1b8152508c6001600160a01b03163f60001c610b79565b92506107d2836040518060400160405280600d81526020016c030b9311031b7b232b430b9b41609d1b815250846001600160a01b03163f60001c610b79565b9250610811836040518060400160405280600d81526020016c032ba341031b7b232b430b9b41609d1b815250836001600160a01b03163f60001c610b79565b925060008a6001600160a01b03163b6001600160401b0381111561083757610837610f81565b6040519080825280601f01601f191660200182016040528015610861576020820181803683370190505b50905060005b8b6001600160a01b03163b8110156108d15784818151811061088b5761088b610f23565b602001015160f81c60f81b8282815181106108a8576108a8610f23565b60200101906001600160f81b031916908160001a905350806108c981610f4f565b915050610867565b508a6001600160a01b0316803b806020016040519081016040528181526000908060200190933c8051906020012081805190602001201461093d5760405162461bcd60e51b815260040161017b90602080825260049082015263636f646560e01b604082015260600190565b60008b6001600160a01b03163b85516109569190610f6a565b6001600160401b0381111561096d5761096d610f81565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090506001600160a01b038c163b5b8551811015610a1c578581815181106109c1576109c1610f23565b602001015160f81c60f81b828e6001600160a01b03163b836109e39190610f6a565b815181106109f3576109f3610f23565b60200101906001600160f81b031916908160001a90535080610a1481610f4f565b9150506109a6565b509b9a5050505050505050505050565b7feddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d43677866401000003d0197fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f820990507fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f6401000003d0198208905067eddecf107b5740ce8167fffffffefffffc2f9190040a905067c6178c2de1078cd381069050600080836001600160a01b03166040516000604051808303816000865af19150503d8060008114610b18576040519150601f19603f3d011682016040523d82523d6000602084013e610b1d565b606091505b509150915081610b3f5760405162461bcd60e51b815260040161017b90610ead565b60408051602081018590520160405160208183030381529060405280519060200120818051906020012014610b7357600080fd5b50505050565b6060600084806020019051810190610b919190610f97565b905083838214610bb45760405162461bcd60e51b815260040161017b9190610d86565b50600060208651610bc59190610f6a565b6001600160401b03811115610bdc57610bdc610f81565b6040519080825280601f01601f191660200182016040528015610c06576020820181803683370190505b50905060205b8651811015610c7957868181518110610c2757610c27610f23565b602001015160f81c60f81b82602083610c409190610f6a565b81518110610c5057610c50610f23565b60200101906001600160f81b031916908160001a90535080610c7181610f4f565b915050610c0c565b5095945050505050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008083601f840112610cb157600080fd5b5081356001600160401b03811115610cc857600080fd5b602083019150836020828501011115610ce057600080fd5b9250929050565b600080600060408486031215610cfc57600080fd5b610d0584610c83565b925060208401356001600160401b03811115610d2057600080fd5b610d2c86828701610c9f565b9497909650939450505050565b6000815180845260005b81811015610d5f57602081850181015186830182015201610d43565b81811115610d71576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610d996020830184610d39565b9392505050565b600080600080600060608688031215610db857600080fd5b610dc186610c83565b945060208601356001600160401b0380821115610ddd57600080fd5b610de989838a01610c9f565b90965094506040880135915080821115610e0257600080fd5b50610e0f88828901610c9f565b969995985093965092949392505050565b600080600080600060808688031215610e3857600080fd5b610e4186610c83565b9450610e4f60208701610c83565b935060408601356001600160401b038082168214610e6c57600080fd5b90935060608701359080821115610e0257600080fd5b600060208284031215610e9457600080fd5b610d9982610c83565b8183823760009101908152919050565b6020808252600b908201526a18d85b1b0819985a5b195960aa1b604082015260600190565b80516020808301519190811015610ef3576000198160200360031b1b821691505b50919050565b60008085851115610f0957600080fd5b83861115610f1657600080fd5b5050820193919092039150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610f6357610f63610f39565b5060010190565b600082821015610f7c57610f7c610f39565b500390565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610fa957600080fd5b505191905056fea2646970667358221220b7050f2b4580f9fbdd0622d8b0cdd44062cb5a0b52abbe6ca2fb41fea6ff0bb864736f6c63430008090033",
|
139
|
+
"deployedBytecode": "0x60806040526004361061004a5760003560e01c80631d00bae41461004f5780633fdd58e21461007157806396ec12e5146100a7578063aba8c4ba146100ba578063fd424462146100da575b600080fd5b34801561005b57600080fd5b5061006f61006a366004610ce7565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610ce7565b610200565b60405161009e9190610d86565b60405180910390f35b6100916100b5366004610da0565b61028a565b3480156100c657600080fd5b506100916100d5366004610e20565b610434565b3480156100e657600080fd5b5061006f6100f5366004610e82565b610a2c565b600080846001600160a01b03168484604051610117929190610e9d565b6000604051808303816000865af19150503d8060008114610154576040519150601f19603f3d011682016040523d82523d6000602084013e610159565b606091505b5091509150816101845760405162461bcd60e51b815260040161017b90610ead565b60405180910390fd5b600061018f82610ed2565b90507f224c8d9ad1bbf0f44a61d7bd8e7e9049b1a320e04b047da9910945675c31ba43816040516101c291815260200190565b60405180910390a16101d78460018188610ef9565b6040516101e5929190610e9d565b604051809103902081146101f857600080fd5b505050505050565b6060600080856001600160a01b0316858560405161021f929190610e9d565b600060405180830381855afa9150503d806000811461025a576040519150601f19603f3d011682016040523d82523d6000602084013e61025f565b606091505b5091509150816102815760405162461bcd60e51b815260040161017b90610ead565b95945050505050565b6060600080876001600160a01b03163488886040516102aa929190610e9d565b60006040518083038185875af1925050503d80600081146102e7576040519150601f19603f3d011682016040523d82523d6000602084013e6102ec565b606091505b509150915081156103345760405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564207375636365737360701b604482015260640161017b565b8051841461037f5760405162461bcd60e51b81526020600482015260186024820152770eee4dedcce40e4caeccae4e840c8c2e8c240d8cadccee8d60431b604482015260640161017b565b60005b81518110156104285785858281811061039d5761039d610f23565b9050013560f81c60f81b6001600160f81b0319168282815181106103c3576103c3610f23565b01602001516001600160f81b031916146104165760405162461bcd60e51b81526020600482015260146024820152730e4caeccae4e840c8c2e8c240dad2e6dac2e8c6d60631b604482015260640161017b565b8061042081610f4f565b915050610382565b50979650505050505050565b6060600080876001600160a01b0316866001600160401b0316868660405161045d929190610e9d565b6000604051808303818686fa925050503d8060008114610499576040519150601f19603f3d011682016040523d82523d6000602084013e61049e565b606091505b5091509150816104c05760405162461bcd60e51b815260040161017b90610ead565b60408051808201909152600d81526c0313637b1b590373ab6b132b91609d1b60208201526069906001906104ff9084906104fa8443610f6a565b610b79565b9250610531836040518060400160405280600d81526020016c031b430b4b71034b2101010101609d1b81525046610b79565b9250610563836040518060400160405280600d81526020016c03130b9b2903332b2901010101609d1b81525048610b79565b9250610595836040518060400160405280600d81526020016c033b0b990383934b1b29010101609d1b8152503a610b79565b92506105c7836040518060400160405280600d81526020016c033b0b9903634b6b4ba1010101609d1b81525045610b79565b92506105fa836040518060400160405280600d81526020016c03b30b63ab2901010101010101609d1b8152506000610b79565b925061062c836040518060400160405280600d81526020016c03a34b6b2b9ba30b6b81010101609d1b81525042610b79565b9250610668836040518060400160405280600d81526020016c03130b630b731b290101010101609d1b8152508b6001600160a01b031631610b79565b92506106a3836040518060400160405280600d81526020016c0393ab9ba1030b2323932b9b99609d1b8152508c6001600160a01b0316610b79565b92506106de836040518060400160405280600d81526020016c039b2b73232b91010101010101609d1b815250306001600160a01b0316610b79565b9250610719836040518060400160405280600d81526020016c037b934b3b4b71010101010101609d1b815250326001600160a01b0316610b79565b9250610754836040518060400160405280600d81526020016c031b7b4b73130b9b2901010101609d1b815250416001600160a01b0316610b79565b9250610793836040518060400160405280600d81526020016c0e4eae6e840c6dec8cad0c2e6d609b1b8152508c6001600160a01b03163f60001c610b79565b92506107d2836040518060400160405280600d81526020016c030b9311031b7b232b430b9b41609d1b815250846001600160a01b03163f60001c610b79565b9250610811836040518060400160405280600d81526020016c032ba341031b7b232b430b9b41609d1b815250836001600160a01b03163f60001c610b79565b925060008a6001600160a01b03163b6001600160401b0381111561083757610837610f81565b6040519080825280601f01601f191660200182016040528015610861576020820181803683370190505b50905060005b8b6001600160a01b03163b8110156108d15784818151811061088b5761088b610f23565b602001015160f81c60f81b8282815181106108a8576108a8610f23565b60200101906001600160f81b031916908160001a905350806108c981610f4f565b915050610867565b508a6001600160a01b0316803b806020016040519081016040528181526000908060200190933c8051906020012081805190602001201461093d5760405162461bcd60e51b815260040161017b90602080825260049082015263636f646560e01b604082015260600190565b60008b6001600160a01b03163b85516109569190610f6a565b6001600160401b0381111561096d5761096d610f81565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090506001600160a01b038c163b5b8551811015610a1c578581815181106109c1576109c1610f23565b602001015160f81c60f81b828e6001600160a01b03163b836109e39190610f6a565b815181106109f3576109f3610f23565b60200101906001600160f81b031916908160001a90535080610a1481610f4f565b9150506109a6565b509b9a5050505050505050505050565b7feddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d43677866401000003d0197fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f820990507fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f6401000003d0198208905067eddecf107b5740ce8167fffffffefffffc2f9190040a905067c6178c2de1078cd381069050600080836001600160a01b03166040516000604051808303816000865af19150503d8060008114610b18576040519150601f19603f3d011682016040523d82523d6000602084013e610b1d565b606091505b509150915081610b3f5760405162461bcd60e51b815260040161017b90610ead565b60408051602081018590520160405160208183030381529060405280519060200120818051906020012014610b7357600080fd5b50505050565b6060600084806020019051810190610b919190610f97565b905083838214610bb45760405162461bcd60e51b815260040161017b9190610d86565b50600060208651610bc59190610f6a565b6001600160401b03811115610bdc57610bdc610f81565b6040519080825280601f01601f191660200182016040528015610c06576020820181803683370190505b50905060205b8651811015610c7957868181518110610c2757610c27610f23565b602001015160f81c60f81b82602083610c409190610f6a565b81518110610c5057610c50610f23565b60200101906001600160f81b031916908160001a90535080610c7181610f4f565b915050610c0c565b5095945050505050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008083601f840112610cb157600080fd5b5081356001600160401b03811115610cc857600080fd5b602083019150836020828501011115610ce057600080fd5b9250929050565b600080600060408486031215610cfc57600080fd5b610d0584610c83565b925060208401356001600160401b03811115610d2057600080fd5b610d2c86828701610c9f565b9497909650939450505050565b6000815180845260005b81811015610d5f57602081850181015186830182015201610d43565b81811115610d71576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610d996020830184610d39565b9392505050565b600080600080600060608688031215610db857600080fd5b610dc186610c83565b945060208601356001600160401b0380821115610ddd57600080fd5b610de989838a01610c9f565b90965094506040880135915080821115610e0257600080fd5b50610e0f88828901610c9f565b969995985093965092949392505050565b600080600080600060808688031215610e3857600080fd5b610e4186610c83565b9450610e4f60208701610c83565b935060408601356001600160401b038082168214610e6c57600080fd5b90935060608701359080821115610e0257600080fd5b600060208284031215610e9457600080fd5b610d9982610c83565b8183823760009101908152919050565b6020808252600b908201526a18d85b1b0819985a5b195960aa1b604082015260600190565b80516020808301519190811015610ef3576000198160200360031b1b821691505b50919050565b60008085851115610f0957600080fd5b83861115610f1657600080fd5b5050820193919092039150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610f6357610f63610f39565b5060010190565b600082821015610f7c57610f7c610f39565b500390565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610fa957600080fd5b505191905056fea2646970667358221220b7050f2b4580f9fbdd0622d8b0cdd44062cb5a0b52abbe6ca2fb41fea6ff0bb864736f6c63430008090033",
|
140
|
+
"linkReferences": {},
|
141
|
+
"deployedLinkReferences": {}
|
142
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "SdkStorage",
|
4
|
+
"sourceName": "src/mocks/SdkStorage.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [],
|
8
|
+
"name": "populate",
|
9
|
+
"outputs": [],
|
10
|
+
"stateMutability": "nonpayable",
|
11
|
+
"type": "function"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"inputs": [],
|
15
|
+
"name": "remove",
|
16
|
+
"outputs": [],
|
17
|
+
"stateMutability": "nonpayable",
|
18
|
+
"type": "function"
|
19
|
+
}
|
20
|
+
],
|
21
|
+
"bytecode": "0x608060405234801561001057600080fd5b5061148c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a7f437791461003b578063f809f20514610045575b600080fd5b61004361004d565b005b61004361041d565b6007805461005a906111b8565b159050610121576007805461006e816111b8565b8061008957634e487b7160e01b600052603160045260246000fd5b601f811180156100a057600181146100c257610118565b6001826021036101000a03600183039250600283028482191617935050610118565b8360005260206000208260208114610105576020600019808601828104949094018054601f959095169092036101000a0119909216825560011990940193610115565b81546000835560ff1916603e1794505b50505b5050905561004d565b601060088054610130906111b8565b905011156101f85760088054610145816111b8565b8061016057634e487b7160e01b600052603160045260246000fd5b601f811180156101775760018114610199576101ef565b6001826021036101000a036001830392506002830284821916179350506101ef565b83600052602060002082602081146101dc576020600019808601828104949094018054601f959095169092036101000a01199092168255600119909401936101ec565b81546000835560ff1916603e1794505b50505b50509055610121565b60408051808201909152600f8082526e7761736d2069732063757465203c3360881b602090920191825261022e91600991610e45565b505b6005541561027f576005805480610249576102496111f3565b60008281526020902060046000199092019182040180546001600160401b03600860038516026101000a02191690559055610230565b600654600110156102be57600680548061029b5761029b6111f3565b6001900381819060005260206000200160006102b79190610ec9565b905561027f565b60005b60088110156102f8576000818152600a6020526040902080546001600160a01b0319169055806102f08161121f565b9150506102c1565b5060086000908152600a60209081527f2c1fd36ba11b13b555f58753742999069764391f450ca8727fe8a3eeffe6777580546001600160a01b03191690911790555b6004816001600160a01b0316101561037f576001600160a01b0381166000908152600b6020526040812061036d91610eee565b806103778161123a565b91505061033a565b506004805480610391576103916111f3565b60008281526020812060026000199390930192830201805465ffffffffffff19168155600101819055915560188190556019819055601a819055601b556103da601c6000610f13565b6103e6601d6000610f34565b6021805465ffffffffffff19908116909155600060228190556023805483169055602481905560258054909216909155602655565b565b600080546001600160a81b0319166170011781556001805460306001600160a01b03199091161790556002805465ffffffffffff1916657fffffff002017905560406003555b6020816001600160401b031610156104e457600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db06004820401805460039092166008026101000a6001600160401b038181021990931692841602919091179055806104dc81611261565b915050610463565b50604d60056007815481106104fb576104fb61127e565b90600052602060002090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555060005b600a81101561063f576006816001600160401b0381111561055a5761055a611294565b604051908082528060200260200182016040528015610583578160200160208202803683370190505b508154600181018355600092835260209283902082516105a99491909201920190610f70565b5060005b8181101561062c5780600683815481106105c9576105c961127e565b9060005260206000200182815481106105e4576105e461127e565b90600052602060002090600691828204019190066005026101000a81548164ffffffffff021916908364ffffffffff16021790555080806106249061121f565b9150506105ad565b50806106378161121f565b915050610537565b5060005b600a8110156107015760005b818110156106ee5760026006838154811061066c5761066c61127e565b9060005260206000200182815481106106875761068761127e565b90600052602060002090600691828204019190066005028282829054906101000a900464ffffffffff166106bb91906112aa565b92506101000a81548164ffffffffff021916908364ffffffffff16021790555080806106e69061121f565b91505061064f565b50806106f98161121f565b915050610643565b5060005b601f8160ff16101561075c576007816040516020016107259291906112d7565b60405160208183030381529060405260079080519060200190610749929190610e45565b50806107548161138c565b915050610705565b5060005b60508160ff1610156107b7576008816040516020016107809291906112d7565b604051602081830303815290604052600890805190602001906107a4929190610e45565b50806107af8161138c565b915050610760565b5060408051808201909152600f8082526e617262697472756d207374796c757360881b60209092019182526107ee91600991610e45565b5060005b6010811015610834576000818152600a6020526040902080546001600160a01b0319166001600160a01b0383161790558061082c8161121f565b9150506107f2565b5060005b6004816001600160a01b031610156108f85760408051600080825260208083018085526001600160a01b0386168352600b909152929020905161087b929061101d565b5060005b816001600160a01b031681116108e5576001600160a01b0382166000908152600b60209081526040822080546001810182559083529181902090820401805460ff601f9093166101000a92830219169091179055806108dd8161121f565b91505061087f565b50806108f08161123a565b915050610838565b5060005b60048160030b121561097b57600c8054600101808255600082905263ffffffff83169190829081106109305761093061127e565b60009182526020808320600386900b84529190910190526040902080546001600160a01b0319166001600160a01b039290921691909117905580610973816113ac565b9150506108fc565b5060005b60048160ff1610156109ed576109968160016113c6565b6001600160f81b031960f883901b166000908152600d6020526040812060ff9290921691906109c66002856113eb565b60ff16158152602081019190915260400160002055806109e58161138c565b91505061097f565b50604051657374796c757360d01b8152600290600e906006019081526040519081900360200190208154815461ffff19811661ffff9092169182178355835463ffffffff6201000091829004160265ffffffffffff1990911690911717815560019182015491015560005b6004811015610b0c5760048054600181018255600091909152600280547f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b928202928301805461ffff90921661ffff19831681178255925465ffffffffffff19909216909217620100009182900463ffffffff169091021790556003547f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015580610b048161121f565b915050610a58565b5060408051808201909152600e8082526d4c3220697320666f7220796f752160901b6020909201918252610b4291601191610e45565b5060005b6005811015610b9d578060148160058110610b6357610b6361127e565b600a91828204019190066003026101000a81548162ffffff021916908362ffffff1602179055508080610b959061121f565b915050610b46565b5060005b6002811015610bef578060168160028110610bbe57610bbe61127e565b0180546001600160a01b0319166001600160a01b039290921691909117905580610be78161121f565b915050610ba1565b5060005b6004811015610c85578060188160048110610c1057610c1061127e565b01805460ff191660ff9290921691909117905560188160048110610c3657610c3661127e565b0154610c469060ff1660016113c6565b60188260048110610c5957610c5961127e565b01805460ff929092166101000261ff001990921691909117905580610c7d8161121f565b915050610bf3565b5060005b6003811015610d2f57610c9a6110b0565b60005b6004811215610cd85780828260048110610cb957610cb961127e565b600b9290920b6020909202015280610cd08161141b565b915050610c9d565b50601c8054600181018255600091909152610d1a906002027f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211018260046110ce565b50508080610d279061121f565b915050610c89565b5060005b6004811015610dc25760005b600481600b0b1215610daf57601d8260048110610d5e57610d5e61127e565b01805460018082018355600092835260209092206002820401805492909116600c026101000a6001600160601b03818102199093169284160291909117905580610da781611434565b915050610d3f565b5080610dba8161121f565b915050610d33565b5060005b6003811015610e4257600260218260038110610de457610de461127e565b825460029190910291909101805461ffff90921661ffff19831681178255835465ffffffffffff1990931617620100009283900463ffffffff1690920291909117815560019182015491015580610e3a8161121f565b915050610dc6565b50565b828054610e51906111b8565b90600052602060002090601f016020900481019282610e735760008555610eb9565b82601f10610e8c57805160ff1916838001178555610eb9565b82800160010185558215610eb9579182015b82811115610eb9578251825591602001919060010190610e9e565b50610ec5929150611164565b5090565b508054600082556005016006900490600052602060002090810190610e429190611164565b50805460008255601f016020900490600052602060002090810190610e429190611164565b5080546000825560020290600052602060002090810190610e429190611179565b506000610f418282611193565b506001016000610f518282611193565b506001016000610f618282611193565b5061041b906001016000611193565b82805482825590600052602060002090600501600690048101928215610eb95791602002820160005b83821115610fdf57835183826101000a81548164ffffffffff021916908364ffffffffff1602179055509260200192600501602081600401049283019260010302610f99565b80156110105782816101000a81549064ffffffffff0219169055600501602081600401049283019260010302610fdf565b5050610ec5929150611164565b82805482825590600052602060002090601f01602090048101928215610eb95791602002820160005b8382111561108357835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302611046565b80156110105782816101000a81549060ff0219169055600101602081600001049283019260010302611083565b60405180608001604052806004906020820280368337509192915050565b600283019183908215610eb95791602002820160005b8382111561113157835183826101000a8154816001600160601b030219169083600b0b6001600160601b031602179055509260200192600c01602081600b010492830192600103026110e4565b80156110105782816101000a8154906001600160601b030219169055600c01602081600b01049283019260010302611131565b5b80821115610ec55760008155600101611165565b80821115610ec55760008082556001820155600201611179565b508054600082556001016002900490600052602060002090810190610e429190611164565b600181811c908216806111cc57607f821691505b602082108114156111ed57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561123357611233611209565b5060010190565b60006001600160a01b038281168082141561125757611257611209565b6001019392505050565b60006001600160401b038083168181141561125757611257611209565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600064ffffffffff808316818516818304811182151516156112ce576112ce611209565b02949350505050565b600080845481600182811c9150808316806112f357607f831692505b602080841082141561131357634e487b7160e01b86526022600452602486fd5b818015611327576001811461133857611365565b60ff19861689528489019650611365565b60008b81526020902060005b8681101561135d5781548b820152908501908301611344565b505084890196505b50505061137e848860f81b6001600160f81b0319169052565b929092019695505050505050565b600060ff821660ff8114156113a3576113a3611209565b60010192915050565b60008160030b637fffffff8114156113a3576113a3611209565b600060ff821660ff84168060ff038211156113e3576113e3611209565b019392505050565b600060ff83168061140c57634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60006001600160ff1b0382141561123357611233611209565b600081600b0b6b7fffffffffffffffffffffff8114156113a3576113a361120956fea26469706673582212207fff0c6884ce2f8f45ede07cfe79337eaccb3448f321aae188fca64654463c7b64736f6c63430008090033",
|
22
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063a7f437791461003b578063f809f20514610045575b600080fd5b61004361004d565b005b61004361041d565b6007805461005a906111b8565b159050610121576007805461006e816111b8565b8061008957634e487b7160e01b600052603160045260246000fd5b601f811180156100a057600181146100c257610118565b6001826021036101000a03600183039250600283028482191617935050610118565b8360005260206000208260208114610105576020600019808601828104949094018054601f959095169092036101000a0119909216825560011990940193610115565b81546000835560ff1916603e1794505b50505b5050905561004d565b601060088054610130906111b8565b905011156101f85760088054610145816111b8565b8061016057634e487b7160e01b600052603160045260246000fd5b601f811180156101775760018114610199576101ef565b6001826021036101000a036001830392506002830284821916179350506101ef565b83600052602060002082602081146101dc576020600019808601828104949094018054601f959095169092036101000a01199092168255600119909401936101ec565b81546000835560ff1916603e1794505b50505b50509055610121565b60408051808201909152600f8082526e7761736d2069732063757465203c3360881b602090920191825261022e91600991610e45565b505b6005541561027f576005805480610249576102496111f3565b60008281526020902060046000199092019182040180546001600160401b03600860038516026101000a02191690559055610230565b600654600110156102be57600680548061029b5761029b6111f3565b6001900381819060005260206000200160006102b79190610ec9565b905561027f565b60005b60088110156102f8576000818152600a6020526040902080546001600160a01b0319169055806102f08161121f565b9150506102c1565b5060086000908152600a60209081527f2c1fd36ba11b13b555f58753742999069764391f450ca8727fe8a3eeffe6777580546001600160a01b03191690911790555b6004816001600160a01b0316101561037f576001600160a01b0381166000908152600b6020526040812061036d91610eee565b806103778161123a565b91505061033a565b506004805480610391576103916111f3565b60008281526020812060026000199390930192830201805465ffffffffffff19168155600101819055915560188190556019819055601a819055601b556103da601c6000610f13565b6103e6601d6000610f34565b6021805465ffffffffffff19908116909155600060228190556023805483169055602481905560258054909216909155602655565b565b600080546001600160a81b0319166170011781556001805460306001600160a01b03199091161790556002805465ffffffffffff1916657fffffff002017905560406003555b6020816001600160401b031610156104e457600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db06004820401805460039092166008026101000a6001600160401b038181021990931692841602919091179055806104dc81611261565b915050610463565b50604d60056007815481106104fb576104fb61127e565b90600052602060002090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555060005b600a81101561063f576006816001600160401b0381111561055a5761055a611294565b604051908082528060200260200182016040528015610583578160200160208202803683370190505b508154600181018355600092835260209283902082516105a99491909201920190610f70565b5060005b8181101561062c5780600683815481106105c9576105c961127e565b9060005260206000200182815481106105e4576105e461127e565b90600052602060002090600691828204019190066005026101000a81548164ffffffffff021916908364ffffffffff16021790555080806106249061121f565b9150506105ad565b50806106378161121f565b915050610537565b5060005b600a8110156107015760005b818110156106ee5760026006838154811061066c5761066c61127e565b9060005260206000200182815481106106875761068761127e565b90600052602060002090600691828204019190066005028282829054906101000a900464ffffffffff166106bb91906112aa565b92506101000a81548164ffffffffff021916908364ffffffffff16021790555080806106e69061121f565b91505061064f565b50806106f98161121f565b915050610643565b5060005b601f8160ff16101561075c576007816040516020016107259291906112d7565b60405160208183030381529060405260079080519060200190610749929190610e45565b50806107548161138c565b915050610705565b5060005b60508160ff1610156107b7576008816040516020016107809291906112d7565b604051602081830303815290604052600890805190602001906107a4929190610e45565b50806107af8161138c565b915050610760565b5060408051808201909152600f8082526e617262697472756d207374796c757360881b60209092019182526107ee91600991610e45565b5060005b6010811015610834576000818152600a6020526040902080546001600160a01b0319166001600160a01b0383161790558061082c8161121f565b9150506107f2565b5060005b6004816001600160a01b031610156108f85760408051600080825260208083018085526001600160a01b0386168352600b909152929020905161087b929061101d565b5060005b816001600160a01b031681116108e5576001600160a01b0382166000908152600b60209081526040822080546001810182559083529181902090820401805460ff601f9093166101000a92830219169091179055806108dd8161121f565b91505061087f565b50806108f08161123a565b915050610838565b5060005b60048160030b121561097b57600c8054600101808255600082905263ffffffff83169190829081106109305761093061127e565b60009182526020808320600386900b84529190910190526040902080546001600160a01b0319166001600160a01b039290921691909117905580610973816113ac565b9150506108fc565b5060005b60048160ff1610156109ed576109968160016113c6565b6001600160f81b031960f883901b166000908152600d6020526040812060ff9290921691906109c66002856113eb565b60ff16158152602081019190915260400160002055806109e58161138c565b91505061097f565b50604051657374796c757360d01b8152600290600e906006019081526040519081900360200190208154815461ffff19811661ffff9092169182178355835463ffffffff6201000091829004160265ffffffffffff1990911690911717815560019182015491015560005b6004811015610b0c5760048054600181018255600091909152600280547f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b928202928301805461ffff90921661ffff19831681178255925465ffffffffffff19909216909217620100009182900463ffffffff169091021790556003547f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015580610b048161121f565b915050610a58565b5060408051808201909152600e8082526d4c3220697320666f7220796f752160901b6020909201918252610b4291601191610e45565b5060005b6005811015610b9d578060148160058110610b6357610b6361127e565b600a91828204019190066003026101000a81548162ffffff021916908362ffffff1602179055508080610b959061121f565b915050610b46565b5060005b6002811015610bef578060168160028110610bbe57610bbe61127e565b0180546001600160a01b0319166001600160a01b039290921691909117905580610be78161121f565b915050610ba1565b5060005b6004811015610c85578060188160048110610c1057610c1061127e565b01805460ff191660ff9290921691909117905560188160048110610c3657610c3661127e565b0154610c469060ff1660016113c6565b60188260048110610c5957610c5961127e565b01805460ff929092166101000261ff001990921691909117905580610c7d8161121f565b915050610bf3565b5060005b6003811015610d2f57610c9a6110b0565b60005b6004811215610cd85780828260048110610cb957610cb961127e565b600b9290920b6020909202015280610cd08161141b565b915050610c9d565b50601c8054600181018255600091909152610d1a906002027f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211018260046110ce565b50508080610d279061121f565b915050610c89565b5060005b6004811015610dc25760005b600481600b0b1215610daf57601d8260048110610d5e57610d5e61127e565b01805460018082018355600092835260209092206002820401805492909116600c026101000a6001600160601b03818102199093169284160291909117905580610da781611434565b915050610d3f565b5080610dba8161121f565b915050610d33565b5060005b6003811015610e4257600260218260038110610de457610de461127e565b825460029190910291909101805461ffff90921661ffff19831681178255835465ffffffffffff1990931617620100009283900463ffffffff1690920291909117815560019182015491015580610e3a8161121f565b915050610dc6565b50565b828054610e51906111b8565b90600052602060002090601f016020900481019282610e735760008555610eb9565b82601f10610e8c57805160ff1916838001178555610eb9565b82800160010185558215610eb9579182015b82811115610eb9578251825591602001919060010190610e9e565b50610ec5929150611164565b5090565b508054600082556005016006900490600052602060002090810190610e429190611164565b50805460008255601f016020900490600052602060002090810190610e429190611164565b5080546000825560020290600052602060002090810190610e429190611179565b506000610f418282611193565b506001016000610f518282611193565b506001016000610f618282611193565b5061041b906001016000611193565b82805482825590600052602060002090600501600690048101928215610eb95791602002820160005b83821115610fdf57835183826101000a81548164ffffffffff021916908364ffffffffff1602179055509260200192600501602081600401049283019260010302610f99565b80156110105782816101000a81549064ffffffffff0219169055600501602081600401049283019260010302610fdf565b5050610ec5929150611164565b82805482825590600052602060002090601f01602090048101928215610eb95791602002820160005b8382111561108357835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302611046565b80156110105782816101000a81549060ff0219169055600101602081600001049283019260010302611083565b60405180608001604052806004906020820280368337509192915050565b600283019183908215610eb95791602002820160005b8382111561113157835183826101000a8154816001600160601b030219169083600b0b6001600160601b031602179055509260200192600c01602081600b010492830192600103026110e4565b80156110105782816101000a8154906001600160601b030219169055600c01602081600b01049283019260010302611131565b5b80821115610ec55760008155600101611165565b80821115610ec55760008082556001820155600201611179565b508054600082556001016002900490600052602060002090810190610e429190611164565b600181811c908216806111cc57607f821691505b602082108114156111ed57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561123357611233611209565b5060010190565b60006001600160a01b038281168082141561125757611257611209565b6001019392505050565b60006001600160401b038083168181141561125757611257611209565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600064ffffffffff808316818516818304811182151516156112ce576112ce611209565b02949350505050565b600080845481600182811c9150808316806112f357607f831692505b602080841082141561131357634e487b7160e01b86526022600452602486fd5b818015611327576001811461133857611365565b60ff19861689528489019650611365565b60008b81526020902060005b8681101561135d5781548b820152908501908301611344565b505084890196505b50505061137e848860f81b6001600160f81b0319169052565b929092019695505050505050565b600060ff821660ff8114156113a3576113a3611209565b60010192915050565b60008160030b637fffffff8114156113a3576113a3611209565b600060ff821660ff84168060ff038211156113e3576113e3611209565b019392505050565b600060ff83168061140c57634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60006001600160ff1b0382141561123357611233611209565b600081600b0b6b7fffffffffffffffffffffff8114156113a3576113a361120956fea26469706673582212207fff0c6884ce2f8f45ede07cfe79337eaccb3448f321aae188fca64654463c7b64736f6c63430008090033",
|
23
|
+
"linkReferences": {},
|
24
|
+
"deployedLinkReferences": {}
|
25
|
+
}
|
@@ -1118,8 +1118,8 @@
|
|
1118
1118
|
"type": "function"
|
1119
1119
|
}
|
1120
1120
|
],
|
1121
|
-
"bytecode": "0x610160604052306080526202000060a05246610100526200002b620001bc602090811b620024c917901c565b1515610120523480156200003e57600080fd5b5060405162003e2438038062003e24833981016040819052620000619162000295565b8282828260e081815250506101205115620000a5576001600160a01b038216156200009f576040516386657a5360e01b815260040160405180910390fd5b620000ee565b6001600160a01b038216620000ee576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0391821660c052151561014052600180549882166001600160a01b0319998a161781556002805490991633179098558551600a80546020808a01516040808c01516060909c01516001600160401b03908116600160c01b026001600160c01b039d8216600160801b029d909d166001600160801b0393821668010000000000000000026001600160801b031990961691909716179390931716939093179890981790559616600090815260039096525050509120805460ff191690921790915550620003b6565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491620001fc919062000378565b600060405180830381855afa9150503d806000811462000239576040519150601f19603f3d011682016040523d82523d6000602084013e6200023e565b606091505b509150915081801562000252575080516020145b9250505090565b6001600160a01b03811681146200026f57600080fd5b50565b80516200027f8162000259565b919050565b805180151581146200027f57600080fd5b600080600080600080868803610120811215620002b157600080fd5b8751620002be8162000259565b6020890151909750620002d18162000259565b95506080603f1982011215620002e657600080fd5b50604051608081016001600160401b03811182821017156200031857634e487b7160e01b600052604160045260246000fd5b806040525060408801518152606088015160208201526080880151604082015260a088015160608201528094505060c087015192506200035b60e0880162000272565b91506200036c610100880162000284565b90509295509295509295565b6000825160005b818110156200039b57602081860181015185830152016200037f565b81811115620003ab576000828501525b509190910192915050565b60805160a05160c05160e0516101005161012051610140516139b86200046c600039600081816104490152818161072a01528181610c6901526129b5015260008181610c2001528181611d8901526129f7015260008181611a770152612e1d01526000818161051001528181612c710152612cad01526000818161040201528181610b2b015281816126470152612719015260008181610e1f01526117bb01526000818161060301526118b101526139b86000f3fe608060405234801561001057600080fd5b50600436106102125760003560e01c80637fa3a40e11610120578063cc2a1a0c116100b8578063e78cea921161007c578063e78cea92146104f8578063e8eb1dc31461050b578063ebea461d14610532578063f19815781461055a578063f60a50911461056d57600080fd5b8063cc2a1a0c146104a1578063d1ce8da8146104b4578063d9dd67ab146104c7578063e0bc9729146104da578063e5a358c8146104ed57600080fd5b80637fa3a40e146103e157806384420860146103ea5780638d910dde146103fd5780638f111f3c1461043157806392d9f7821461044457806395fcea781461046b57806396cc5c7814610473578063b31761f81461047b578063cb23bcb51461048e57600080fd5b80632cbf74e5116101ae5780636d46e987116101725780636d46e987146103235780636e7df3e7146103465780636f12b0c914610359578063715ea34b1461036c57806371c3e6fe146103be57600080fd5b80632cbf74e5146102df5780633e5aa082146102ea5780636633ae85146102fd5780636ae71f12146103105780636c8904501461031857600080fd5b806302c992751461021757806306f13056146102385780631637be481461024e57806316af91a7146102815780631f7a92b2146102895780631f9566321461029e5780631ff64790146102b1578063258f0495146102c457806327957a49146102d7575b600080fd5b610222600160fd1b81565b60405161022f9190612fba565b60405180910390f35b610240610578565b60405190815260200161022f565b61027161025c366004612fcf565b60009081526008602052604090205460ff1690565b604051901515815260200161022f565b610222600081565b61029c610297366004613000565b6105f8565b005b61029c6102ac36600461304f565b610831565b61029c6102bf366004613088565b610941565b6102406102d2366004612fcf565b610abf565b610240602881565b610222600560fc1b81565b61029c6102f83660046130ac565b610b28565b61029c61030b366004612fcf565b610f08565b61029c6110f3565b610222600160fb1b81565b610271610331366004613088565b60096020526000908152604090205460ff1681565b61029c61035436600461304f565b6112a6565b61029c61036736600461313d565b6113b6565b61039f61037a366004612fcf565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161022f565b6102716103cc366004613088565b60036020526000908152604090205460ff1681565b61024060005481565b61029c6103f8366004612fcf565b6113cf565b6104247f000000000000000000000000000000000000000000000000000000000000000081565b60405161022f91906131a7565b61029c61043f3660046131bb565b61153c565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b61029c6118a6565b61029c611a74565b61029c61048936600461327d565b611ad4565b600254610424906001600160a01b031681565b600b54610424906001600160a01b031681565b61029c6104c23660046132e2565b611bdb565b6102406104d5366004612fcf565b611ed9565b61029c6104e83660046131bb565b611f5c565b610222600160fe1b81565b600154610424906001600160a01b031681565b6102407f000000000000000000000000000000000000000000000000000000000000000081565b61053a6120b2565b60408051948552602085019390935291830152606082015260800161022f565b61029c610568366004613323565b6120ea565b610222600160ff1b81565b600154604080516221048360e21b815290516000926001600160a01b0316916284120c916004808301926020929190829003018186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f39190613393565b905090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561064a5760405162461bcd60e51b8152600401610641906133ac565b60405180910390fd5b6001546001600160a01b03161561067457604051633bcd329760e21b815260040160405180910390fd5b6001600160a01b03821661069b57604051631ad0f74360e01b815260040160405180910390fd5b6000826001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa925050508015610706575060408051601f3d908101601f19168201909252610703918101906133f8565b60015b61070f57610725565b6001600160a01b0381161561072357600191505b505b8015157f00000000000000000000000000000000000000000000000000000000000000001515146107695760405163c3e31f8d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0385169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906133f8565b600280546001600160a01b0319166001600160a01b039290921691909117905561082c6108273684900384018461327d565b612561565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087f57600080fd5b505afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b791906133f8565b6001600160a01b0316336001600160a01b0316141580156108e35750600b546001600160a01b03163314155b1561090357336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260096020526040808220805460ff19168415151790555160049160008051602061396383398151915291a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561098f57600080fd5b505afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906133f8565b6001600160a01b0316336001600160a01b031614610a875760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b91906133f8565b604051631194af8760e11b81526001600160a01b03928316600482015291166024820152604401610641565b600b80546001600160a01b0319166001600160a01b03831617905560405160059060008051602061396383398151915290600090a250565b600081815260086020908152604080832081518083019092525460ff81161515825261010090046001600160401b031691810182905290610b155760405162f20c5d60e01b815260048101849052602401610641565b602001516001600160401b031692915050565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16610b8057604051632dd9fc9760e01b815260040160405180910390fd5b6000806000610b8e8a612638565b925092509250600080600080610ba8878f60008f8f612838565b929650909450925090508e808514801590610bc557506000198114155b15610bed5760405163ac7411c960e01b81526004810186905260248101829052604401610641565b818482600080516020613943833981519152866000548c6003604051610c169493929190613415565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015610c5d576040516386657a5360e01b815260040160405180910390fd5b3332148015610c8a57507f0000000000000000000000000000000000000000000000000000000000000000155b15610c9b57610c9b888648896129f4565b505050506001600160a01b038716159350610efe92505050573660006020610cc483601f61349f565b610cce91906134b7565b9050610200610cde6002836135bd565b610ce891906134b7565b610cf38260066135cc565b610cfd919061349f565b610d07908461349f565b9250333214610d195760009150610e6e565b6001600160a01b03841615610e6e57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b158015610d6157600080fd5b505afa925050508015610d9657506040513d6000823e601f3d908101601f19168201604052610d9391908101906135eb565b60015b610d9f57610e6e565b805115610e6c576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e199190613393565b905048817f00000000000000000000000000000000000000000000000000000000000000008451610e4a91906135cc565b610e5491906135cc565b610e5e91906134b7565b610e68908661349f565b9450505b505b846001600160a01b031663e3db8a49335a610e899087613690565b856040518463ffffffff1660e01b8152600401610ea8939291906136a7565b602060405180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906136c8565b5050505b5050505050505050565b600081604051602001610f1d91815260200190565b60408051808303601f190181529082905260015481516020830120638db5993b60e01b8452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b90606401602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190613393565b9050801561100d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d111531056515117d253925560621b6044820152606401610641565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b8360405161103d9190613715565b60405180910390a26000806110526001612c2a565b9150915060008060008061106c8660016000806001612838565b9350935093509350836000146110b75760405162461bcd60e51b815260206004820152601060248201526f1053149150511657d4d15457d253925560821b6044820152606401610641565b808385600080516020613943833981519152856000548a60026040516110e09493929190613415565b60405180910390a4505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117991906133f8565b6001600160a01b0316336001600160a01b0316146111d55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b6001546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906133f8565b6002549091506001600160a01b03808316911614156112845760405163d054909f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906133f8565b6001600160a01b0316336001600160a01b0316141580156113585750600b546001600160a01b03163314155b1561137857336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260036020526040808220805460ff19168415151790555160019160008051602061396383398151915291a25050565b6040516331cee75f60e21b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141d57600080fd5b505afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906133f8565b6001600160a01b0316336001600160a01b0316146114b15760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008181526008602052604090205460ff166114e25760405162f20c5d60e01b815260048101829052602401610641565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a260405160039060008051602061396383398151915290600090a250565b826000805a90503332146115635760405163feb3d07160e01b815260040160405180910390fd5b3360009081526003602052604090205460ff1661159357604051632dd9fc9760e01b815260040160405180910390fd5b6000806115a18b8b8b612c56565b90925090508b81838c8c8b8b60008080806115bf89888a8989612838565b93509350935093508a84141580156115d957506000198b14155b156116015760405163ac7411c960e01b815260048101859052602481018c9052604401610641565b808385600080516020613943833981519152856000548f600060405161162a9493929190613415565b60405180910390a4505050506001600160a01b038c1615985061189a97505050505050505057366000602061166083601f61349f565b61166a91906134b7565b905061020061167a6002836135bd565b61168491906134b7565b61168f8260066135cc565b611699919061349f565b6116a3908461349f565b92503332146116b5576000915061180a565b6001600160a01b0384161561180a57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b1580156116fd57600080fd5b505afa92505050801561173257506040513d6000823e601f3d908101601f1916820160405261172f91908101906135eb565b60015b61173b5761180a565b805115611808576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613393565b905048817f000000000000000000000000000000000000000000000000000000000000000084516117e691906135cc565b6117f091906135cc565b6117fa91906134b7565b611804908661349f565b9450505b505b846001600160a01b031663e3db8a49335a6118259087613690565b856040518463ffffffff1660e01b8152600401611844939291906136a7565b602060405180830381600087803b15801561185e57600080fd5b505af1158015611872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189691906136c8565b5050505b50505050505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156118ef5760405162461bcd60e51b8152600401610641906133ac565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461194c57604051631194af8760e11b81523360048201526001600160a01b0382166024820152604401610641565b60045415801561195c5750600554155b80156119685750600654155b80156119745750600754155b1561199257604051633bcd329760e21b815260040160405180910390fd5b6004546001600160401b0310806119b157506005546001600160401b03105b806119c457506006546001600160401b03105b806119d757506007546001600160401b03105b156119f55760405163d0afb66160e01b815260040160405180910390fd5b505060048054600a80546005805460068054600780546001600160401b03908116600160c01b026001600160c01b03938216600160801b02939093166001600160801b03958216600160401b026001600160801b0319909816919099161795909517929092169590951717909255600093849055908390559082905555565b467f00000000000000000000000000000000000000000000000000000000000000001415611ab557604051635180dd8360e11b815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2257600080fd5b505afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a91906133f8565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b611bbf81612561565b604051600090600080516020613963833981519152908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2957600080fd5b505afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906133f8565b6001600160a01b0316336001600160a01b031614611cbd5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008282604051611ccf929190613748565b604051908190038120607f60f91b6020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310611d535760405162461bcd60e51b81526020600482015260136024820152726b657973657420697320746f6f206c6172676560681b6044820152606401610641565b60008181526008602052604090205460ff1615611d8657604051637d17eeed60e11b815260048101829052602401610641565b437f000000000000000000000000000000000000000000000000000000000000000015611e225760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190613393565b90505b604080518082018252600181526001600160401b0383811660208084019182526000878152600890915284902092518354915168ffffffffffffffffff1990921690151568ffffffffffffffff0019161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290611eb09088908890613758565b60405180910390a260405160029060008051602061396383398151915290600090a25050505050565b6001546040516316bf557960e01b8152600481018390526000916001600160a01b0316906316bf55799060240160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613393565b92915050565b826000805a3360009081526003602052604090205490915060ff16158015611f8f57506002546001600160a01b03163314155b15611fad57604051632dd9fc9760e01b815260040160405180910390fd5b600080611fbb8b8b8b612c56565b909250905060008c82848c8b8b868080611fd88787838888612838565b929c5090945092509050888a14801590611ff457506000198914155b1561201c5760405163ac7411c960e01b8152600481018b9052602481018a9052604401610641565b80838b600080516020613943833981519152856000548d60016040516120459493929190613415565b60405180910390a4505050505050505050807ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051612088929190613758565b60405180910390a25050506001600160a01b0383161561189a57366000602061166083601f61349f565b6000806000806000806000806120c6612e15565b6001600160401b039384169b50918316995082169750169450505050505b90919293565b600054861161210c57604051633eb9f37d60e11b815260040160405180910390fd5b60006121bc8684612120602089018961379d565b61213060408a0160208b0161379d565b61213b60018d613690565b6040805160f89690961b6001600160f81b03191660208088019190915260609590951b6001600160601b031916602187015260c093841b6001600160c01b031990811660358801529290931b909116603d85015260458401526065830188905260858084018790528151808503909101815260a59093019052815191012090565b600a5490915043906001600160401b03166121da602088018861379d565b6121e491906137c6565b6001600160401b03161061220b5760405163ad3515d960e01b815260040160405180910390fd5b600a544290600160801b90046001600160401b0316612230604088016020890161379d565b61223a91906137c6565b6001600160401b0316106122615760405163c76d17e560e01b815260040160405180910390fd5b600060018811156122f9576001546001600160a01b031663d5719dc261228860028b613690565b6040518263ffffffff1660e01b81526004016122a691815260200190565b60206040518083038186803b1580156122be57600080fd5b505afa1580156122d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f69190613393565b90505b60408051602080820184905281830185905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc29061233f908c613690565b6040518263ffffffff1660e01b815260040161235d91815260200190565b60206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad9190613393565b146123cb576040516313947fd760e01b815260040160405180910390fd5b6000806123d78a612c2a565b9150915060008a90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b815260040160206040518083038186803b15801561243057600080fd5b505afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613393565b905080600080808061247d8988838880612838565b9350935093509350808385600080516020613943833981519152856000548d60026040516124ae9493929190613415565b60405180910390a45050505050505050505050505050505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649161250791906137f1565b600060405180830381855afa9150503d8060008114612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b509150915081801561255a575080516020145b9250505090565b80516001600160401b031080612581575060208101516001600160401b03105b80612596575060408101516001600160401b03105b806125ab575060608101516001600160401b03105b156125c9576040516309cfba7560e01b815260040160405180910390fd5b8051600a8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055565b6000612642612f93565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b15801561269e57600080fd5b505afa1580156126b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126da91908101906135eb565b90508051600014156126ff57604051631e693f5b60e11b815260040160405180910390fd5b60008061270b87612e86565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561277057600080fd5b505afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613393565b6127b291906135cc565b6127bc91906135cc565b6040519091508390600560fc1b906127d890879060200161380d565b60408051601f19818403018152908290526127f7939291602001613843565b60405160208183030381529060405280519060200120826000481161281d576000612827565b61282748846134b7565b965096509650505050509193909250565b60008060008060005488101561286157604051633eb9f37d60e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190613393565b8811156129075760405163925f8bd360e01b815260040160405180910390fd5b60015460405163432cc52b60e11b8152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a5690608401608060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299a9190613886565b60008c90559296509094509250905086158015906129d657507f0000000000000000000000000000000000000000000000000000000000000000155b156129e8576129e889854860006129f4565b95509550955095915050565b327f000000000000000000000000000000000000000000000000000000000000000015612aa9576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a5757600080fd5b505afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f9190613393565b9050612a9b48826134b7565b612aa5908461349f565b9250505b6001600160401b03821115612af75760405162461bcd60e51b8152602060048201526014602482015273115615149057d1d054d7d393d517d55253950d8d60621b6044820152606401610641565b604080514260208201526001600160601b0319606084901b16918101919091526054810186905260748101859052609481018490526001600160c01b031960c084901b1660b482015260009060bc0160408051808303601f190181529082905260015481516020830120637a88b10760e01b84526001600160a01b0386811660048601526024850191909152919350600092911690637a88b10790604401602060405180830381600087803b158015612baf57600080fd5b505af1158015612bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be79190613393565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051612c199190613715565b60405180910390a250505050505050565b6000612c34612f93565b600080612c4085612e86565b8151602090920191909120969095509350505050565b6000612c60612f93565b6000612c6d85602861349f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612cd957604051634634691b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610641565b600080612ce586612e86565b90925090508615612ddb57612d1588886000818110612d0657612d06613787565b9050013560f81c60f81b612f2d565b612d505787876000818110612d2c57612d2c613787565b9050013560f81c60f81b60405163359999ab60e11b81526004016106419190612fba565b600160ff1b8888600081612d6657612d66613787565b6001600160f81b031992013592909216161580159150612d87575060218710155b15612ddb576000612d9c602160018a8c6138bc565b612da5916138e6565b60008181526008602052604090205490915060ff16612dd95760405162f20c5d60e01b815260048101829052602401610641565b505b818888604051602001612df093929190613904565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014612e52575060019250829150819050806120e4565b5050600a546001600160401b038082169350600160401b820481169250600160801b8204811691600160c01b9004166120e4565b6060612e90612f93565b6000612e9a612f88565b90506000816000015182602001518360400151846060015188604051602001612f0295949392919060c095861b6001600160c01b0319908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b60405160208183030381529060405290506028815114612f2457612f2461392c565b94909350915050565b60006001600160f81b031982161580612f5357506001600160f81b03198216600160ff1b145b80612f6b57506001600160f81b03198216601160fb1b145b80611f5657506001600160f81b03198216600160fd1b1492915050565b612f90612f93565b90565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160f81b031991909116815260200190565b600060208284031215612fe157600080fd5b5035919050565b6001600160a01b0381168114612ffd57600080fd5b50565b60008082840360a081121561301457600080fd5b833561301f81612fe8565b92506080601f198201121561303357600080fd5b506020830190509250929050565b8015158114612ffd57600080fd5b6000806040838503121561306257600080fd5b823561306d81612fe8565b9150602083013561307d81613041565b809150509250929050565b60006020828403121561309a57600080fd5b81356130a581612fe8565b9392505050565b600080600080600060a086880312156130c457600080fd5b853594506020860135935060408601356130dd81612fe8565b94979396509394606081013594506080013592915050565b60008083601f84011261310757600080fd5b5081356001600160401b0381111561311e57600080fd5b60208301915083602082850101111561313657600080fd5b9250929050565b60008060008060006080868803121561315557600080fd5b8535945060208601356001600160401b0381111561317257600080fd5b61317e888289016130f5565b90955093505060408601359150606086013561319981612fe8565b809150509295509295909350565b6001600160a01b0391909116815260200190565b600080600080600080600060c0888a0312156131d657600080fd5b8735965060208801356001600160401b038111156131f357600080fd5b6131ff8a828b016130f5565b90975095505060408801359350606088013561321a81612fe8565b969995985093969295946080840135945060a09093013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561327557613275613237565b604052919050565b60006080828403121561328f57600080fd5b604051608081018181106001600160401b03821117156132b1576132b1613237565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156132f557600080fd5b82356001600160401b0381111561330b57600080fd5b613317858286016130f5565b90969095509350505050565b60008060008060008060e0878903121561333c57600080fd5b86359550602087013560ff8116811461335457600080fd5b9450608087018881111561336757600080fd5b60408801945035925060a087013561337e81612fe8565b8092505060c087013590509295509295509295565b6000602082840312156133a557600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b60006020828403121561340a57600080fd5b81516130a581612fe8565b600060e0820190508582528460208301526001600160401b038085511660408401528060208601511660608401528060408601511660808401528060608601511660a0840152506004831061347a57634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156134b2576134b2613489565b500190565b6000826134d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156135145781600019048211156134fa576134fa613489565b8085161561350757918102915b93841c93908002906134de565b509250929050565b60008261352b57506001611f56565b8161353857506000611f56565b816001811461354e576002811461355857613574565b6001915050611f56565b60ff84111561356957613569613489565b50506001821b611f56565b5060208310610133831016604e8410600b8410161715613597575081810a611f56565b6135a183836134d9565b80600019048211156135b5576135b5613489565b029392505050565b60006130a560ff84168361351c565b60008160001904831182151516156135e6576135e6613489565b500290565b600060208083850312156135fe57600080fd5b82516001600160401b038082111561361557600080fd5b818501915085601f83011261362957600080fd5b81518181111561363b5761363b613237565b8060051b915061364c84830161324d565b818152918301840191848101908884111561366657600080fd5b938501935b838510156136845784518252938501939085019061366b565b98975050505050505050565b6000828210156136a2576136a2613489565b500390565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156136da57600080fd5b81516130a581613041565b60005b838110156137005781810151838201526020016136e8565b8381111561370f576000848401525b50505050565b60208152600082518060208401526137348160408501602087016136e5565b601f01601f19169190910160400192915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156137af57600080fd5b81356001600160401b03811681146130a557600080fd5b60006001600160401b038083168185168083038211156137e8576137e8613489565b01949350505050565b600082516138038184602087016136e5565b9190910192915050565b815160009082906020808601845b838110156138375781518552938201939082019060010161381b565b50929695505050505050565b600084516138558184602089016136e5565b6001600160f81b0319851690830190815283516138798160018401602088016136e5565b0160010195945050505050565b6000806000806080858703121561389c57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600080858511156138cc57600080fd5b838611156138d957600080fd5b5050820193919092039150565b80356020831015611f5657600019602084900360031b1b1692915050565b600084516139168184602089016136e5565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fdfe7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7ea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456ea26469706673582212206705d8aed9a2fb3e963a10bd89ec2fde4c076711323861063b3ca592a3f8a7c664736f6c63430008090033",
|
1122
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102125760003560e01c80637fa3a40e11610120578063cc2a1a0c116100b8578063e78cea921161007c578063e78cea92146104f8578063e8eb1dc31461050b578063ebea461d14610532578063f19815781461055a578063f60a50911461056d57600080fd5b8063cc2a1a0c146104a1578063d1ce8da8146104b4578063d9dd67ab146104c7578063e0bc9729146104da578063e5a358c8146104ed57600080fd5b80637fa3a40e146103e157806384420860146103ea5780638d910dde146103fd5780638f111f3c1461043157806392d9f7821461044457806395fcea781461046b57806396cc5c7814610473578063b31761f81461047b578063cb23bcb51461048e57600080fd5b80632cbf74e5116101ae5780636d46e987116101725780636d46e987146103235780636e7df3e7146103465780636f12b0c914610359578063715ea34b1461036c57806371c3e6fe146103be57600080fd5b80632cbf74e5146102df5780633e5aa082146102ea5780636633ae85146102fd5780636ae71f12146103105780636c8904501461031857600080fd5b806302c992751461021757806306f13056146102385780631637be481461024e57806316af91a7146102815780631f7a92b2146102895780631f9566321461029e5780631ff64790146102b1578063258f0495146102c457806327957a49146102d7575b600080fd5b610222600160fd1b81565b60405161022f9190612fba565b60405180910390f35b610240610578565b60405190815260200161022f565b61027161025c366004612fcf565b60009081526008602052604090205460ff1690565b604051901515815260200161022f565b610222600081565b61029c610297366004613000565b6105f8565b005b61029c6102ac36600461304f565b610831565b61029c6102bf366004613088565b610941565b6102406102d2366004612fcf565b610abf565b610240602881565b610222600560fc1b81565b61029c6102f83660046130ac565b610b28565b61029c61030b366004612fcf565b610f08565b61029c6110f3565b610222600160fb1b81565b610271610331366004613088565b60096020526000908152604090205460ff1681565b61029c61035436600461304f565b6112a6565b61029c61036736600461313d565b6113b6565b61039f61037a366004612fcf565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161022f565b6102716103cc366004613088565b60036020526000908152604090205460ff1681565b61024060005481565b61029c6103f8366004612fcf565b6113cf565b6104247f000000000000000000000000000000000000000000000000000000000000000081565b60405161022f91906131a7565b61029c61043f3660046131bb565b61153c565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b61029c6118a6565b61029c611a74565b61029c61048936600461327d565b611ad4565b600254610424906001600160a01b031681565b600b54610424906001600160a01b031681565b61029c6104c23660046132e2565b611bdb565b6102406104d5366004612fcf565b611ed9565b61029c6104e83660046131bb565b611f5c565b610222600160fe1b81565b600154610424906001600160a01b031681565b6102407f000000000000000000000000000000000000000000000000000000000000000081565b61053a6120b2565b60408051948552602085019390935291830152606082015260800161022f565b61029c610568366004613323565b6120ea565b610222600160ff1b81565b600154604080516221048360e21b815290516000926001600160a01b0316916284120c916004808301926020929190829003018186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f39190613393565b905090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561064a5760405162461bcd60e51b8152600401610641906133ac565b60405180910390fd5b6001546001600160a01b03161561067457604051633bcd329760e21b815260040160405180910390fd5b6001600160a01b03821661069b57604051631ad0f74360e01b815260040160405180910390fd5b6000826001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa925050508015610706575060408051601f3d908101601f19168201909252610703918101906133f8565b60015b61070f57610725565b6001600160a01b0381161561072357600191505b505b8015157f00000000000000000000000000000000000000000000000000000000000000001515146107695760405163c3e31f8d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0385169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906133f8565b600280546001600160a01b0319166001600160a01b039290921691909117905561082c6108273684900384018461327d565b612561565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087f57600080fd5b505afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b791906133f8565b6001600160a01b0316336001600160a01b0316141580156108e35750600b546001600160a01b03163314155b1561090357336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260096020526040808220805460ff19168415151790555160049160008051602061396383398151915291a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561098f57600080fd5b505afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906133f8565b6001600160a01b0316336001600160a01b031614610a875760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b91906133f8565b604051631194af8760e11b81526001600160a01b03928316600482015291166024820152604401610641565b600b80546001600160a01b0319166001600160a01b03831617905560405160059060008051602061396383398151915290600090a250565b600081815260086020908152604080832081518083019092525460ff81161515825261010090046001600160401b031691810182905290610b155760405162f20c5d60e01b815260048101849052602401610641565b602001516001600160401b031692915050565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16610b8057604051632dd9fc9760e01b815260040160405180910390fd5b6000806000610b8e8a612638565b925092509250600080600080610ba8878f60008f8f612838565b929650909450925090508e808514801590610bc557506000198114155b15610bed5760405163ac7411c960e01b81526004810186905260248101829052604401610641565b818482600080516020613943833981519152866000548c6003604051610c169493929190613415565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015610c5d576040516386657a5360e01b815260040160405180910390fd5b3332148015610c8a57507f0000000000000000000000000000000000000000000000000000000000000000155b15610c9b57610c9b888648896129f4565b505050506001600160a01b038716159350610efe92505050573660006020610cc483601f61349f565b610cce91906134b7565b9050610200610cde6002836135bd565b610ce891906134b7565b610cf38260066135cc565b610cfd919061349f565b610d07908461349f565b9250333214610d195760009150610e6e565b6001600160a01b03841615610e6e57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b158015610d6157600080fd5b505afa925050508015610d9657506040513d6000823e601f3d908101601f19168201604052610d9391908101906135eb565b60015b610d9f57610e6e565b805115610e6c576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e199190613393565b905048817f00000000000000000000000000000000000000000000000000000000000000008451610e4a91906135cc565b610e5491906135cc565b610e5e91906134b7565b610e68908661349f565b9450505b505b846001600160a01b031663e3db8a49335a610e899087613690565b856040518463ffffffff1660e01b8152600401610ea8939291906136a7565b602060405180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906136c8565b5050505b5050505050505050565b600081604051602001610f1d91815260200190565b60408051808303601f190181529082905260015481516020830120638db5993b60e01b8452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b90606401602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190613393565b9050801561100d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d111531056515117d253925560621b6044820152606401610641565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b8360405161103d9190613715565b60405180910390a26000806110526001612c2a565b9150915060008060008061106c8660016000806001612838565b9350935093509350836000146110b75760405162461bcd60e51b815260206004820152601060248201526f1053149150511657d4d15457d253925560821b6044820152606401610641565b808385600080516020613943833981519152856000548a60026040516110e09493929190613415565b60405180910390a4505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117991906133f8565b6001600160a01b0316336001600160a01b0316146111d55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b6001546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906133f8565b6002549091506001600160a01b03808316911614156112845760405163d054909f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906133f8565b6001600160a01b0316336001600160a01b0316141580156113585750600b546001600160a01b03163314155b1561137857336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260036020526040808220805460ff19168415151790555160019160008051602061396383398151915291a25050565b6040516331cee75f60e21b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141d57600080fd5b505afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906133f8565b6001600160a01b0316336001600160a01b0316146114b15760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008181526008602052604090205460ff166114e25760405162f20c5d60e01b815260048101829052602401610641565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a260405160039060008051602061396383398151915290600090a250565b826000805a90503332146115635760405163feb3d07160e01b815260040160405180910390fd5b3360009081526003602052604090205460ff1661159357604051632dd9fc9760e01b815260040160405180910390fd5b6000806115a18b8b8b612c56565b90925090508b81838c8c8b8b60008080806115bf89888a8989612838565b93509350935093508a84141580156115d957506000198b14155b156116015760405163ac7411c960e01b815260048101859052602481018c9052604401610641565b808385600080516020613943833981519152856000548f600060405161162a9493929190613415565b60405180910390a4505050506001600160a01b038c1615985061189a97505050505050505057366000602061166083601f61349f565b61166a91906134b7565b905061020061167a6002836135bd565b61168491906134b7565b61168f8260066135cc565b611699919061349f565b6116a3908461349f565b92503332146116b5576000915061180a565b6001600160a01b0384161561180a57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b1580156116fd57600080fd5b505afa92505050801561173257506040513d6000823e601f3d908101601f1916820160405261172f91908101906135eb565b60015b61173b5761180a565b805115611808576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613393565b905048817f000000000000000000000000000000000000000000000000000000000000000084516117e691906135cc565b6117f091906135cc565b6117fa91906134b7565b611804908661349f565b9450505b505b846001600160a01b031663e3db8a49335a6118259087613690565b856040518463ffffffff1660e01b8152600401611844939291906136a7565b602060405180830381600087803b15801561185e57600080fd5b505af1158015611872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189691906136c8565b5050505b50505050505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156118ef5760405162461bcd60e51b8152600401610641906133ac565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461194c57604051631194af8760e11b81523360048201526001600160a01b0382166024820152604401610641565b60045415801561195c5750600554155b80156119685750600654155b80156119745750600754155b1561199257604051633bcd329760e21b815260040160405180910390fd5b6004546001600160401b0310806119b157506005546001600160401b03105b806119c457506006546001600160401b03105b806119d757506007546001600160401b03105b156119f55760405163d0afb66160e01b815260040160405180910390fd5b505060048054600a80546005805460068054600780546001600160401b03908116600160c01b026001600160c01b03938216600160801b02939093166001600160801b03958216600160401b026001600160801b0319909816919099161795909517929092169590951717909255600093849055908390559082905555565b467f00000000000000000000000000000000000000000000000000000000000000001415611ab557604051635180dd8360e11b815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2257600080fd5b505afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a91906133f8565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b611bbf81612561565b604051600090600080516020613963833981519152908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2957600080fd5b505afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906133f8565b6001600160a01b0316336001600160a01b031614611cbd5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008282604051611ccf929190613748565b604051908190038120607f60f91b6020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310611d535760405162461bcd60e51b81526020600482015260136024820152726b657973657420697320746f6f206c6172676560681b6044820152606401610641565b60008181526008602052604090205460ff1615611d8657604051637d17eeed60e11b815260048101829052602401610641565b437f000000000000000000000000000000000000000000000000000000000000000015611e225760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190613393565b90505b604080518082018252600181526001600160401b0383811660208084019182526000878152600890915284902092518354915168ffffffffffffffffff1990921690151568ffffffffffffffff0019161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290611eb09088908890613758565b60405180910390a260405160029060008051602061396383398151915290600090a25050505050565b6001546040516316bf557960e01b8152600481018390526000916001600160a01b0316906316bf55799060240160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613393565b92915050565b826000805a3360009081526003602052604090205490915060ff16158015611f8f57506002546001600160a01b03163314155b15611fad57604051632dd9fc9760e01b815260040160405180910390fd5b600080611fbb8b8b8b612c56565b909250905060008c82848c8b8b868080611fd88787838888612838565b929c5090945092509050888a14801590611ff457506000198914155b1561201c5760405163ac7411c960e01b8152600481018b9052602481018a9052604401610641565b80838b600080516020613943833981519152856000548d60016040516120459493929190613415565b60405180910390a4505050505050505050807ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051612088929190613758565b60405180910390a25050506001600160a01b0383161561189a57366000602061166083601f61349f565b6000806000806000806000806120c6612e15565b6001600160401b039384169b50918316995082169750169450505050505b90919293565b600054861161210c57604051633eb9f37d60e11b815260040160405180910390fd5b60006121bc8684612120602089018961379d565b61213060408a0160208b0161379d565b61213b60018d613690565b6040805160f89690961b6001600160f81b03191660208088019190915260609590951b6001600160601b031916602187015260c093841b6001600160c01b031990811660358801529290931b909116603d85015260458401526065830188905260858084018790528151808503909101815260a59093019052815191012090565b600a5490915043906001600160401b03166121da602088018861379d565b6121e491906137c6565b6001600160401b03161061220b5760405163ad3515d960e01b815260040160405180910390fd5b600a544290600160801b90046001600160401b0316612230604088016020890161379d565b61223a91906137c6565b6001600160401b0316106122615760405163c76d17e560e01b815260040160405180910390fd5b600060018811156122f9576001546001600160a01b031663d5719dc261228860028b613690565b6040518263ffffffff1660e01b81526004016122a691815260200190565b60206040518083038186803b1580156122be57600080fd5b505afa1580156122d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f69190613393565b90505b60408051602080820184905281830185905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc29061233f908c613690565b6040518263ffffffff1660e01b815260040161235d91815260200190565b60206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad9190613393565b146123cb576040516313947fd760e01b815260040160405180910390fd5b6000806123d78a612c2a565b9150915060008a90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b815260040160206040518083038186803b15801561243057600080fd5b505afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613393565b905080600080808061247d8988838880612838565b9350935093509350808385600080516020613943833981519152856000548d60026040516124ae9493929190613415565b60405180910390a45050505050505050505050505050505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649161250791906137f1565b600060405180830381855afa9150503d8060008114612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b509150915081801561255a575080516020145b9250505090565b80516001600160401b031080612581575060208101516001600160401b03105b80612596575060408101516001600160401b03105b806125ab575060608101516001600160401b03105b156125c9576040516309cfba7560e01b815260040160405180910390fd5b8051600a8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055565b6000612642612f93565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b15801561269e57600080fd5b505afa1580156126b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126da91908101906135eb565b90508051600014156126ff57604051631e693f5b60e11b815260040160405180910390fd5b60008061270b87612e86565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561277057600080fd5b505afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613393565b6127b291906135cc565b6127bc91906135cc565b6040519091508390600560fc1b906127d890879060200161380d565b60408051601f19818403018152908290526127f7939291602001613843565b60405160208183030381529060405280519060200120826000481161281d576000612827565b61282748846134b7565b965096509650505050509193909250565b60008060008060005488101561286157604051633eb9f37d60e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190613393565b8811156129075760405163925f8bd360e01b815260040160405180910390fd5b60015460405163432cc52b60e11b8152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a5690608401608060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299a9190613886565b60008c90559296509094509250905086158015906129d657507f0000000000000000000000000000000000000000000000000000000000000000155b156129e8576129e889854860006129f4565b95509550955095915050565b327f000000000000000000000000000000000000000000000000000000000000000015612aa9576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a5757600080fd5b505afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f9190613393565b9050612a9b48826134b7565b612aa5908461349f565b9250505b6001600160401b03821115612af75760405162461bcd60e51b8152602060048201526014602482015273115615149057d1d054d7d393d517d55253950d8d60621b6044820152606401610641565b604080514260208201526001600160601b0319606084901b16918101919091526054810186905260748101859052609481018490526001600160c01b031960c084901b1660b482015260009060bc0160408051808303601f190181529082905260015481516020830120637a88b10760e01b84526001600160a01b0386811660048601526024850191909152919350600092911690637a88b10790604401602060405180830381600087803b158015612baf57600080fd5b505af1158015612bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be79190613393565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051612c199190613715565b60405180910390a250505050505050565b6000612c34612f93565b600080612c4085612e86565b8151602090920191909120969095509350505050565b6000612c60612f93565b6000612c6d85602861349f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612cd957604051634634691b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610641565b600080612ce586612e86565b90925090508615612ddb57612d1588886000818110612d0657612d06613787565b9050013560f81c60f81b612f2d565b612d505787876000818110612d2c57612d2c613787565b9050013560f81c60f81b60405163359999ab60e11b81526004016106419190612fba565b600160ff1b8888600081612d6657612d66613787565b6001600160f81b031992013592909216161580159150612d87575060218710155b15612ddb576000612d9c602160018a8c6138bc565b612da5916138e6565b60008181526008602052604090205490915060ff16612dd95760405162f20c5d60e01b815260048101829052602401610641565b505b818888604051602001612df093929190613904565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014612e52575060019250829150819050806120e4565b5050600a546001600160401b038082169350600160401b820481169250600160801b8204811691600160c01b9004166120e4565b6060612e90612f93565b6000612e9a612f88565b90506000816000015182602001518360400151846060015188604051602001612f0295949392919060c095861b6001600160c01b0319908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b60405160208183030381529060405290506028815114612f2457612f2461392c565b94909350915050565b60006001600160f81b031982161580612f5357506001600160f81b03198216600160ff1b145b80612f6b57506001600160f81b03198216601160fb1b145b80611f5657506001600160f81b03198216600160fd1b1492915050565b612f90612f93565b90565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160f81b031991909116815260200190565b600060208284031215612fe157600080fd5b5035919050565b6001600160a01b0381168114612ffd57600080fd5b50565b60008082840360a081121561301457600080fd5b833561301f81612fe8565b92506080601f198201121561303357600080fd5b506020830190509250929050565b8015158114612ffd57600080fd5b6000806040838503121561306257600080fd5b823561306d81612fe8565b9150602083013561307d81613041565b809150509250929050565b60006020828403121561309a57600080fd5b81356130a581612fe8565b9392505050565b600080600080600060a086880312156130c457600080fd5b853594506020860135935060408601356130dd81612fe8565b94979396509394606081013594506080013592915050565b60008083601f84011261310757600080fd5b5081356001600160401b0381111561311e57600080fd5b60208301915083602082850101111561313657600080fd5b9250929050565b60008060008060006080868803121561315557600080fd5b8535945060208601356001600160401b0381111561317257600080fd5b61317e888289016130f5565b90955093505060408601359150606086013561319981612fe8565b809150509295509295909350565b6001600160a01b0391909116815260200190565b600080600080600080600060c0888a0312156131d657600080fd5b8735965060208801356001600160401b038111156131f357600080fd5b6131ff8a828b016130f5565b90975095505060408801359350606088013561321a81612fe8565b969995985093969295946080840135945060a09093013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561327557613275613237565b604052919050565b60006080828403121561328f57600080fd5b604051608081018181106001600160401b03821117156132b1576132b1613237565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156132f557600080fd5b82356001600160401b0381111561330b57600080fd5b613317858286016130f5565b90969095509350505050565b60008060008060008060e0878903121561333c57600080fd5b86359550602087013560ff8116811461335457600080fd5b9450608087018881111561336757600080fd5b60408801945035925060a087013561337e81612fe8565b8092505060c087013590509295509295509295565b6000602082840312156133a557600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b60006020828403121561340a57600080fd5b81516130a581612fe8565b600060e0820190508582528460208301526001600160401b038085511660408401528060208601511660608401528060408601511660808401528060608601511660a0840152506004831061347a57634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156134b2576134b2613489565b500190565b6000826134d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156135145781600019048211156134fa576134fa613489565b8085161561350757918102915b93841c93908002906134de565b509250929050565b60008261352b57506001611f56565b8161353857506000611f56565b816001811461354e576002811461355857613574565b6001915050611f56565b60ff84111561356957613569613489565b50506001821b611f56565b5060208310610133831016604e8410600b8410161715613597575081810a611f56565b6135a183836134d9565b80600019048211156135b5576135b5613489565b029392505050565b60006130a560ff84168361351c565b60008160001904831182151516156135e6576135e6613489565b500290565b600060208083850312156135fe57600080fd5b82516001600160401b038082111561361557600080fd5b818501915085601f83011261362957600080fd5b81518181111561363b5761363b613237565b8060051b915061364c84830161324d565b818152918301840191848101908884111561366657600080fd5b938501935b838510156136845784518252938501939085019061366b565b98975050505050505050565b6000828210156136a2576136a2613489565b500390565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156136da57600080fd5b81516130a581613041565b60005b838110156137005781810151838201526020016136e8565b8381111561370f576000848401525b50505050565b60208152600082518060208401526137348160408501602087016136e5565b601f01601f19169190910160400192915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156137af57600080fd5b81356001600160401b03811681146130a557600080fd5b60006001600160401b038083168185168083038211156137e8576137e8613489565b01949350505050565b600082516138038184602087016136e5565b9190910192915050565b815160009082906020808601845b838110156138375781518552938201939082019060010161381b565b50929695505050505050565b600084516138558184602089016136e5565b6001600160f81b0319851690830190815283516138798160018401602088016136e5565b0160010195945050505050565b6000806000806080858703121561389c57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600080858511156138cc57600080fd5b838611156138d957600080fd5b5050820193919092039150565b80356020831015611f5657600019602084900360031b1b1692915050565b600084516139168184602089016136e5565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fdfe7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7ea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456ea26469706673582212206705d8aed9a2fb3e963a10bd89ec2fde4c076711323861063b3ca592a3f8a7c664736f6c63430008090033",
|
1121
|
+
"bytecode": "0x610160604052306080526202000060a05246610100526200002b620001bc602090811b620024c917901c565b1515610120523480156200003e57600080fd5b5060405162003e2438038062003e24833981016040819052620000619162000295565b8282828260e081815250506101205115620000a5576001600160a01b038216156200009f576040516386657a5360e01b815260040160405180910390fd5b620000ee565b6001600160a01b038216620000ee576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0391821660c052151561014052600180549882166001600160a01b0319998a161781556002805490991633179098558551600a80546020808a01516040808c01516060909c01516001600160401b03908116600160c01b026001600160c01b039d8216600160801b029d909d166001600160801b0393821668010000000000000000026001600160801b031990961691909716179390931716939093179890981790559616600090815260039096525050509120805460ff191690921790915550620003b6565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491620001fc919062000378565b600060405180830381855afa9150503d806000811462000239576040519150601f19603f3d011682016040523d82523d6000602084013e6200023e565b606091505b509150915081801562000252575080516020145b9250505090565b6001600160a01b03811681146200026f57600080fd5b50565b80516200027f8162000259565b919050565b805180151581146200027f57600080fd5b600080600080600080868803610120811215620002b157600080fd5b8751620002be8162000259565b6020890151909750620002d18162000259565b95506080603f1982011215620002e657600080fd5b50604051608081016001600160401b03811182821017156200031857634e487b7160e01b600052604160045260246000fd5b806040525060408801518152606088015160208201526080880151604082015260a088015160608201528094505060c087015192506200035b60e0880162000272565b91506200036c610100880162000284565b90509295509295509295565b6000825160005b818110156200039b57602081860181015185830152016200037f565b81811115620003ab576000828501525b509190910192915050565b60805160a05160c05160e0516101005161012051610140516139b86200046c600039600081816104490152818161072a01528181610c6901526129b5015260008181610c2001528181611d8901526129f7015260008181611a770152612e1d01526000818161051001528181612c710152612cad01526000818161040201528181610b2b015281816126470152612719015260008181610e1f01526117bb01526000818161060301526118b101526139b86000f3fe608060405234801561001057600080fd5b50600436106102125760003560e01c80637fa3a40e11610120578063cc2a1a0c116100b8578063e78cea921161007c578063e78cea92146104f8578063e8eb1dc31461050b578063ebea461d14610532578063f19815781461055a578063f60a50911461056d57600080fd5b8063cc2a1a0c146104a1578063d1ce8da8146104b4578063d9dd67ab146104c7578063e0bc9729146104da578063e5a358c8146104ed57600080fd5b80637fa3a40e146103e157806384420860146103ea5780638d910dde146103fd5780638f111f3c1461043157806392d9f7821461044457806395fcea781461046b57806396cc5c7814610473578063b31761f81461047b578063cb23bcb51461048e57600080fd5b80632cbf74e5116101ae5780636d46e987116101725780636d46e987146103235780636e7df3e7146103465780636f12b0c914610359578063715ea34b1461036c57806371c3e6fe146103be57600080fd5b80632cbf74e5146102df5780633e5aa082146102ea5780636633ae85146102fd5780636ae71f12146103105780636c8904501461031857600080fd5b806302c992751461021757806306f13056146102385780631637be481461024e57806316af91a7146102815780631f7a92b2146102895780631f9566321461029e5780631ff64790146102b1578063258f0495146102c457806327957a49146102d7575b600080fd5b610222600160fd1b81565b60405161022f9190612fba565b60405180910390f35b610240610578565b60405190815260200161022f565b61027161025c366004612fcf565b60009081526008602052604090205460ff1690565b604051901515815260200161022f565b610222600081565b61029c610297366004613000565b6105f8565b005b61029c6102ac36600461304f565b610831565b61029c6102bf366004613088565b610941565b6102406102d2366004612fcf565b610abf565b610240602881565b610222600560fc1b81565b61029c6102f83660046130ac565b610b28565b61029c61030b366004612fcf565b610f08565b61029c6110f3565b610222600160fb1b81565b610271610331366004613088565b60096020526000908152604090205460ff1681565b61029c61035436600461304f565b6112a6565b61029c61036736600461313d565b6113b6565b61039f61037a366004612fcf565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161022f565b6102716103cc366004613088565b60036020526000908152604090205460ff1681565b61024060005481565b61029c6103f8366004612fcf565b6113cf565b6104247f000000000000000000000000000000000000000000000000000000000000000081565b60405161022f91906131a7565b61029c61043f3660046131bb565b61153c565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b61029c6118a6565b61029c611a74565b61029c61048936600461327d565b611ad4565b600254610424906001600160a01b031681565b600b54610424906001600160a01b031681565b61029c6104c23660046132e2565b611bdb565b6102406104d5366004612fcf565b611ed9565b61029c6104e83660046131bb565b611f5c565b610222600160fe1b81565b600154610424906001600160a01b031681565b6102407f000000000000000000000000000000000000000000000000000000000000000081565b61053a6120b2565b60408051948552602085019390935291830152606082015260800161022f565b61029c610568366004613323565b6120ea565b610222600160ff1b81565b600154604080516221048360e21b815290516000926001600160a01b0316916284120c916004808301926020929190829003018186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f39190613393565b905090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561064a5760405162461bcd60e51b8152600401610641906133ac565b60405180910390fd5b6001546001600160a01b03161561067457604051633bcd329760e21b815260040160405180910390fd5b6001600160a01b03821661069b57604051631ad0f74360e01b815260040160405180910390fd5b6000826001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa925050508015610706575060408051601f3d908101601f19168201909252610703918101906133f8565b60015b61070f57610725565b6001600160a01b0381161561072357600191505b505b8015157f00000000000000000000000000000000000000000000000000000000000000001515146107695760405163c3e31f8d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0385169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906133f8565b600280546001600160a01b0319166001600160a01b039290921691909117905561082c6108273684900384018461327d565b612561565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087f57600080fd5b505afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b791906133f8565b6001600160a01b0316336001600160a01b0316141580156108e35750600b546001600160a01b03163314155b1561090357336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260096020526040808220805460ff19168415151790555160049160008051602061396383398151915291a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561098f57600080fd5b505afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906133f8565b6001600160a01b0316336001600160a01b031614610a875760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b91906133f8565b604051631194af8760e11b81526001600160a01b03928316600482015291166024820152604401610641565b600b80546001600160a01b0319166001600160a01b03831617905560405160059060008051602061396383398151915290600090a250565b600081815260086020908152604080832081518083019092525460ff81161515825261010090046001600160401b031691810182905290610b155760405162f20c5d60e01b815260048101849052602401610641565b602001516001600160401b031692915050565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16610b8057604051632dd9fc9760e01b815260040160405180910390fd5b6000806000610b8e8a612638565b925092509250600080600080610ba8878f60008f8f612838565b929650909450925090508e808514801590610bc557506000198114155b15610bed5760405163ac7411c960e01b81526004810186905260248101829052604401610641565b818482600080516020613943833981519152866000548c6003604051610c169493929190613415565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015610c5d576040516386657a5360e01b815260040160405180910390fd5b3332148015610c8a57507f0000000000000000000000000000000000000000000000000000000000000000155b15610c9b57610c9b888648896129f4565b505050506001600160a01b038716159350610efe92505050573660006020610cc483601f61349f565b610cce91906134b7565b9050610200610cde6002836135bd565b610ce891906134b7565b610cf38260066135cc565b610cfd919061349f565b610d07908461349f565b9250333214610d195760009150610e6e565b6001600160a01b03841615610e6e57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b158015610d6157600080fd5b505afa925050508015610d9657506040513d6000823e601f3d908101601f19168201604052610d9391908101906135eb565b60015b610d9f57610e6e565b805115610e6c576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e199190613393565b905048817f00000000000000000000000000000000000000000000000000000000000000008451610e4a91906135cc565b610e5491906135cc565b610e5e91906134b7565b610e68908661349f565b9450505b505b846001600160a01b031663e3db8a49335a610e899087613690565b856040518463ffffffff1660e01b8152600401610ea8939291906136a7565b602060405180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906136c8565b5050505b5050505050505050565b600081604051602001610f1d91815260200190565b60408051808303601f190181529082905260015481516020830120638db5993b60e01b8452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b90606401602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190613393565b9050801561100d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d111531056515117d253925560621b6044820152606401610641565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b8360405161103d9190613715565b60405180910390a26000806110526001612c2a565b9150915060008060008061106c8660016000806001612838565b9350935093509350836000146110b75760405162461bcd60e51b815260206004820152601060248201526f1053149150511657d4d15457d253925560821b6044820152606401610641565b808385600080516020613943833981519152856000548a60026040516110e09493929190613415565b60405180910390a4505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117991906133f8565b6001600160a01b0316336001600160a01b0316146111d55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b6001546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906133f8565b6002549091506001600160a01b03808316911614156112845760405163d054909f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906133f8565b6001600160a01b0316336001600160a01b0316141580156113585750600b546001600160a01b03163314155b1561137857336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260036020526040808220805460ff19168415151790555160019160008051602061396383398151915291a25050565b6040516331cee75f60e21b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141d57600080fd5b505afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906133f8565b6001600160a01b0316336001600160a01b0316146114b15760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008181526008602052604090205460ff166114e25760405162f20c5d60e01b815260048101829052602401610641565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a260405160039060008051602061396383398151915290600090a250565b826000805a90503332146115635760405163feb3d07160e01b815260040160405180910390fd5b3360009081526003602052604090205460ff1661159357604051632dd9fc9760e01b815260040160405180910390fd5b6000806115a18b8b8b612c56565b90925090508b81838c8c8b8b60008080806115bf89888a8989612838565b93509350935093508a84141580156115d957506000198b14155b156116015760405163ac7411c960e01b815260048101859052602481018c9052604401610641565b808385600080516020613943833981519152856000548f600060405161162a9493929190613415565b60405180910390a4505050506001600160a01b038c1615985061189a97505050505050505057366000602061166083601f61349f565b61166a91906134b7565b905061020061167a6002836135bd565b61168491906134b7565b61168f8260066135cc565b611699919061349f565b6116a3908461349f565b92503332146116b5576000915061180a565b6001600160a01b0384161561180a57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b1580156116fd57600080fd5b505afa92505050801561173257506040513d6000823e601f3d908101601f1916820160405261172f91908101906135eb565b60015b61173b5761180a565b805115611808576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613393565b905048817f000000000000000000000000000000000000000000000000000000000000000084516117e691906135cc565b6117f091906135cc565b6117fa91906134b7565b611804908661349f565b9450505b505b846001600160a01b031663e3db8a49335a6118259087613690565b856040518463ffffffff1660e01b8152600401611844939291906136a7565b602060405180830381600087803b15801561185e57600080fd5b505af1158015611872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189691906136c8565b5050505b50505050505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156118ef5760405162461bcd60e51b8152600401610641906133ac565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461194c57604051631194af8760e11b81523360048201526001600160a01b0382166024820152604401610641565b60045415801561195c5750600554155b80156119685750600654155b80156119745750600754155b1561199257604051633bcd329760e21b815260040160405180910390fd5b6004546001600160401b0310806119b157506005546001600160401b03105b806119c457506006546001600160401b03105b806119d757506007546001600160401b03105b156119f55760405163d0afb66160e01b815260040160405180910390fd5b505060048054600a80546005805460068054600780546001600160401b03908116600160c01b026001600160c01b03938216600160801b02939093166001600160801b03958216600160401b026001600160801b0319909816919099161795909517929092169590951717909255600093849055908390559082905555565b467f00000000000000000000000000000000000000000000000000000000000000001415611ab557604051635180dd8360e11b815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2257600080fd5b505afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a91906133f8565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b611bbf81612561565b604051600090600080516020613963833981519152908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2957600080fd5b505afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906133f8565b6001600160a01b0316336001600160a01b031614611cbd5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008282604051611ccf929190613748565b604051908190038120607f60f91b6020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310611d535760405162461bcd60e51b81526020600482015260136024820152726b657973657420697320746f6f206c6172676560681b6044820152606401610641565b60008181526008602052604090205460ff1615611d8657604051637d17eeed60e11b815260048101829052602401610641565b437f000000000000000000000000000000000000000000000000000000000000000015611e225760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190613393565b90505b604080518082018252600181526001600160401b0383811660208084019182526000878152600890915284902092518354915168ffffffffffffffffff1990921690151568ffffffffffffffff0019161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290611eb09088908890613758565b60405180910390a260405160029060008051602061396383398151915290600090a25050505050565b6001546040516316bf557960e01b8152600481018390526000916001600160a01b0316906316bf55799060240160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613393565b92915050565b826000805a3360009081526003602052604090205490915060ff16158015611f8f57506002546001600160a01b03163314155b15611fad57604051632dd9fc9760e01b815260040160405180910390fd5b600080611fbb8b8b8b612c56565b909250905060008c82848c8b8b868080611fd88787838888612838565b929c5090945092509050888a14801590611ff457506000198914155b1561201c5760405163ac7411c960e01b8152600481018b9052602481018a9052604401610641565b80838b600080516020613943833981519152856000548d60016040516120459493929190613415565b60405180910390a4505050505050505050807ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051612088929190613758565b60405180910390a25050506001600160a01b0383161561189a57366000602061166083601f61349f565b6000806000806000806000806120c6612e15565b6001600160401b039384169b50918316995082169750169450505050505b90919293565b600054861161210c57604051633eb9f37d60e11b815260040160405180910390fd5b60006121bc8684612120602089018961379d565b61213060408a0160208b0161379d565b61213b60018d613690565b6040805160f89690961b6001600160f81b03191660208088019190915260609590951b6001600160601b031916602187015260c093841b6001600160c01b031990811660358801529290931b909116603d85015260458401526065830188905260858084018790528151808503909101815260a59093019052815191012090565b600a5490915043906001600160401b03166121da602088018861379d565b6121e491906137c6565b6001600160401b03161061220b5760405163ad3515d960e01b815260040160405180910390fd5b600a544290600160801b90046001600160401b0316612230604088016020890161379d565b61223a91906137c6565b6001600160401b0316106122615760405163c76d17e560e01b815260040160405180910390fd5b600060018811156122f9576001546001600160a01b031663d5719dc261228860028b613690565b6040518263ffffffff1660e01b81526004016122a691815260200190565b60206040518083038186803b1580156122be57600080fd5b505afa1580156122d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f69190613393565b90505b60408051602080820184905281830185905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc29061233f908c613690565b6040518263ffffffff1660e01b815260040161235d91815260200190565b60206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad9190613393565b146123cb576040516313947fd760e01b815260040160405180910390fd5b6000806123d78a612c2a565b9150915060008a90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b815260040160206040518083038186803b15801561243057600080fd5b505afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613393565b905080600080808061247d8988838880612838565b9350935093509350808385600080516020613943833981519152856000548d60026040516124ae9493929190613415565b60405180910390a45050505050505050505050505050505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649161250791906137f1565b600060405180830381855afa9150503d8060008114612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b509150915081801561255a575080516020145b9250505090565b80516001600160401b031080612581575060208101516001600160401b03105b80612596575060408101516001600160401b03105b806125ab575060608101516001600160401b03105b156125c9576040516309cfba7560e01b815260040160405180910390fd5b8051600a8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055565b6000612642612f93565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b15801561269e57600080fd5b505afa1580156126b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126da91908101906135eb565b90508051600014156126ff57604051631e693f5b60e11b815260040160405180910390fd5b60008061270b87612e86565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561277057600080fd5b505afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613393565b6127b291906135cc565b6127bc91906135cc565b6040519091508390600560fc1b906127d890879060200161380d565b60408051601f19818403018152908290526127f7939291602001613843565b60405160208183030381529060405280519060200120826000481161281d576000612827565b61282748846134b7565b965096509650505050509193909250565b60008060008060005488101561286157604051633eb9f37d60e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190613393565b8811156129075760405163925f8bd360e01b815260040160405180910390fd5b60015460405163432cc52b60e11b8152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a5690608401608060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299a9190613886565b60008c90559296509094509250905086158015906129d657507f0000000000000000000000000000000000000000000000000000000000000000155b156129e8576129e889854860006129f4565b95509550955095915050565b327f000000000000000000000000000000000000000000000000000000000000000015612aa9576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a5757600080fd5b505afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f9190613393565b9050612a9b48826134b7565b612aa5908461349f565b9250505b6001600160401b03821115612af75760405162461bcd60e51b8152602060048201526014602482015273115615149057d1d054d7d393d517d55253950d8d60621b6044820152606401610641565b604080514260208201526001600160601b0319606084901b16918101919091526054810186905260748101859052609481018490526001600160c01b031960c084901b1660b482015260009060bc0160408051808303601f190181529082905260015481516020830120637a88b10760e01b84526001600160a01b0386811660048601526024850191909152919350600092911690637a88b10790604401602060405180830381600087803b158015612baf57600080fd5b505af1158015612bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be79190613393565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051612c199190613715565b60405180910390a250505050505050565b6000612c34612f93565b600080612c4085612e86565b8151602090920191909120969095509350505050565b6000612c60612f93565b6000612c6d85602861349f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612cd957604051634634691b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610641565b600080612ce586612e86565b90925090508615612ddb57612d1588886000818110612d0657612d06613787565b9050013560f81c60f81b612f2d565b612d505787876000818110612d2c57612d2c613787565b9050013560f81c60f81b60405163359999ab60e11b81526004016106419190612fba565b600160ff1b8888600081612d6657612d66613787565b6001600160f81b031992013592909216161580159150612d87575060218710155b15612ddb576000612d9c602160018a8c6138bc565b612da5916138e6565b60008181526008602052604090205490915060ff16612dd95760405162f20c5d60e01b815260048101829052602401610641565b505b818888604051602001612df093929190613904565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014612e52575060019250829150819050806120e4565b5050600a546001600160401b038082169350600160401b820481169250600160801b8204811691600160c01b9004166120e4565b6060612e90612f93565b6000612e9a612f88565b90506000816000015182602001518360400151846060015188604051602001612f0295949392919060c095861b6001600160c01b0319908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b60405160208183030381529060405290506028815114612f2457612f2461392c565b94909350915050565b60006001600160f81b031982161580612f5357506001600160f81b03198216600160ff1b145b80612f6b57506001600160f81b03198216601160fb1b145b80611f5657506001600160f81b03198216600160fd1b1492915050565b612f90612f93565b90565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160f81b031991909116815260200190565b600060208284031215612fe157600080fd5b5035919050565b6001600160a01b0381168114612ffd57600080fd5b50565b60008082840360a081121561301457600080fd5b833561301f81612fe8565b92506080601f198201121561303357600080fd5b506020830190509250929050565b8015158114612ffd57600080fd5b6000806040838503121561306257600080fd5b823561306d81612fe8565b9150602083013561307d81613041565b809150509250929050565b60006020828403121561309a57600080fd5b81356130a581612fe8565b9392505050565b600080600080600060a086880312156130c457600080fd5b853594506020860135935060408601356130dd81612fe8565b94979396509394606081013594506080013592915050565b60008083601f84011261310757600080fd5b5081356001600160401b0381111561311e57600080fd5b60208301915083602082850101111561313657600080fd5b9250929050565b60008060008060006080868803121561315557600080fd5b8535945060208601356001600160401b0381111561317257600080fd5b61317e888289016130f5565b90955093505060408601359150606086013561319981612fe8565b809150509295509295909350565b6001600160a01b0391909116815260200190565b600080600080600080600060c0888a0312156131d657600080fd5b8735965060208801356001600160401b038111156131f357600080fd5b6131ff8a828b016130f5565b90975095505060408801359350606088013561321a81612fe8565b969995985093969295946080840135945060a09093013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561327557613275613237565b604052919050565b60006080828403121561328f57600080fd5b604051608081018181106001600160401b03821117156132b1576132b1613237565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156132f557600080fd5b82356001600160401b0381111561330b57600080fd5b613317858286016130f5565b90969095509350505050565b60008060008060008060e0878903121561333c57600080fd5b86359550602087013560ff8116811461335457600080fd5b9450608087018881111561336757600080fd5b60408801945035925060a087013561337e81612fe8565b8092505060c087013590509295509295509295565b6000602082840312156133a557600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b60006020828403121561340a57600080fd5b81516130a581612fe8565b600060e0820190508582528460208301526001600160401b038085511660408401528060208601511660608401528060408601511660808401528060608601511660a0840152506004831061347a57634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156134b2576134b2613489565b500190565b6000826134d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156135145781600019048211156134fa576134fa613489565b8085161561350757918102915b93841c93908002906134de565b509250929050565b60008261352b57506001611f56565b8161353857506000611f56565b816001811461354e576002811461355857613574565b6001915050611f56565b60ff84111561356957613569613489565b50506001821b611f56565b5060208310610133831016604e8410600b8410161715613597575081810a611f56565b6135a183836134d9565b80600019048211156135b5576135b5613489565b029392505050565b60006130a560ff84168361351c565b60008160001904831182151516156135e6576135e6613489565b500290565b600060208083850312156135fe57600080fd5b82516001600160401b038082111561361557600080fd5b818501915085601f83011261362957600080fd5b81518181111561363b5761363b613237565b8060051b915061364c84830161324d565b818152918301840191848101908884111561366657600080fd5b938501935b838510156136845784518252938501939085019061366b565b98975050505050505050565b6000828210156136a2576136a2613489565b500390565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156136da57600080fd5b81516130a581613041565b60005b838110156137005781810151838201526020016136e8565b8381111561370f576000848401525b50505050565b60208152600082518060208401526137348160408501602087016136e5565b601f01601f19169190910160400192915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156137af57600080fd5b81356001600160401b03811681146130a557600080fd5b60006001600160401b038083168185168083038211156137e8576137e8613489565b01949350505050565b600082516138038184602087016136e5565b9190910192915050565b815160009082906020808601845b838110156138375781518552938201939082019060010161381b565b50929695505050505050565b600084516138558184602089016136e5565b6001600160f81b0319851690830190815283516138798160018401602088016136e5565b0160010195945050505050565b6000806000806080858703121561389c57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600080858511156138cc57600080fd5b838611156138d957600080fd5b5050820193919092039150565b80356020831015611f5657600019602084900360031b1b1692915050565b600084516139168184602089016136e5565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fdfe7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7ea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456ea2646970667358221220b2aa0281c02516c2448dfdf9f7f2488b19c8cab5409be85a37a9f19fa4394a6064736f6c63430008090033",
|
1122
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102125760003560e01c80637fa3a40e11610120578063cc2a1a0c116100b8578063e78cea921161007c578063e78cea92146104f8578063e8eb1dc31461050b578063ebea461d14610532578063f19815781461055a578063f60a50911461056d57600080fd5b8063cc2a1a0c146104a1578063d1ce8da8146104b4578063d9dd67ab146104c7578063e0bc9729146104da578063e5a358c8146104ed57600080fd5b80637fa3a40e146103e157806384420860146103ea5780638d910dde146103fd5780638f111f3c1461043157806392d9f7821461044457806395fcea781461046b57806396cc5c7814610473578063b31761f81461047b578063cb23bcb51461048e57600080fd5b80632cbf74e5116101ae5780636d46e987116101725780636d46e987146103235780636e7df3e7146103465780636f12b0c914610359578063715ea34b1461036c57806371c3e6fe146103be57600080fd5b80632cbf74e5146102df5780633e5aa082146102ea5780636633ae85146102fd5780636ae71f12146103105780636c8904501461031857600080fd5b806302c992751461021757806306f13056146102385780631637be481461024e57806316af91a7146102815780631f7a92b2146102895780631f9566321461029e5780631ff64790146102b1578063258f0495146102c457806327957a49146102d7575b600080fd5b610222600160fd1b81565b60405161022f9190612fba565b60405180910390f35b610240610578565b60405190815260200161022f565b61027161025c366004612fcf565b60009081526008602052604090205460ff1690565b604051901515815260200161022f565b610222600081565b61029c610297366004613000565b6105f8565b005b61029c6102ac36600461304f565b610831565b61029c6102bf366004613088565b610941565b6102406102d2366004612fcf565b610abf565b610240602881565b610222600560fc1b81565b61029c6102f83660046130ac565b610b28565b61029c61030b366004612fcf565b610f08565b61029c6110f3565b610222600160fb1b81565b610271610331366004613088565b60096020526000908152604090205460ff1681565b61029c61035436600461304f565b6112a6565b61029c61036736600461313d565b6113b6565b61039f61037a366004612fcf565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161022f565b6102716103cc366004613088565b60036020526000908152604090205460ff1681565b61024060005481565b61029c6103f8366004612fcf565b6113cf565b6104247f000000000000000000000000000000000000000000000000000000000000000081565b60405161022f91906131a7565b61029c61043f3660046131bb565b61153c565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b61029c6118a6565b61029c611a74565b61029c61048936600461327d565b611ad4565b600254610424906001600160a01b031681565b600b54610424906001600160a01b031681565b61029c6104c23660046132e2565b611bdb565b6102406104d5366004612fcf565b611ed9565b61029c6104e83660046131bb565b611f5c565b610222600160fe1b81565b600154610424906001600160a01b031681565b6102407f000000000000000000000000000000000000000000000000000000000000000081565b61053a6120b2565b60408051948552602085019390935291830152606082015260800161022f565b61029c610568366004613323565b6120ea565b610222600160ff1b81565b600154604080516221048360e21b815290516000926001600160a01b0316916284120c916004808301926020929190829003018186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f39190613393565b905090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561064a5760405162461bcd60e51b8152600401610641906133ac565b60405180910390fd5b6001546001600160a01b03161561067457604051633bcd329760e21b815260040160405180910390fd5b6001600160a01b03821661069b57604051631ad0f74360e01b815260040160405180910390fd5b6000826001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa925050508015610706575060408051601f3d908101601f19168201909252610703918101906133f8565b60015b61070f57610725565b6001600160a01b0381161561072357600191505b505b8015157f00000000000000000000000000000000000000000000000000000000000000001515146107695760405163c3e31f8d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0385169081179091556040805163cb23bcb560e01b8152905163cb23bcb591600480820192602092909190829003018186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906133f8565b600280546001600160a01b0319166001600160a01b039290921691909117905561082c6108273684900384018461327d565b612561565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087f57600080fd5b505afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b791906133f8565b6001600160a01b0316336001600160a01b0316141580156108e35750600b546001600160a01b03163314155b1561090357336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260096020526040808220805460ff19168415151790555160049160008051602061396383398151915291a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561098f57600080fd5b505afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906133f8565b6001600160a01b0316336001600160a01b031614610a875760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b91906133f8565b604051631194af8760e11b81526001600160a01b03928316600482015291166024820152604401610641565b600b80546001600160a01b0319166001600160a01b03831617905560405160059060008051602061396383398151915290600090a250565b600081815260086020908152604080832081518083019092525460ff81161515825261010090046001600160401b031691810182905290610b155760405162f20c5d60e01b815260048101849052602401610641565b602001516001600160401b031692915050565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16610b8057604051632dd9fc9760e01b815260040160405180910390fd5b6000806000610b8e8a612638565b925092509250600080600080610ba8878f60008f8f612838565b929650909450925090508e808514801590610bc557506000198114155b15610bed5760405163ac7411c960e01b81526004810186905260248101829052604401610641565b818482600080516020613943833981519152866000548c6003604051610c169493929190613415565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015610c5d576040516386657a5360e01b815260040160405180910390fd5b3332148015610c8a57507f0000000000000000000000000000000000000000000000000000000000000000155b15610c9b57610c9b888648896129f4565b505050506001600160a01b038716159350610efe92505050573660006020610cc483601f61349f565b610cce91906134b7565b9050610200610cde6002836135bd565b610ce891906134b7565b610cf38260066135cc565b610cfd919061349f565b610d07908461349f565b9250333214610d195760009150610e6e565b6001600160a01b03841615610e6e57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b158015610d6157600080fd5b505afa925050508015610d9657506040513d6000823e601f3d908101601f19168201604052610d9391908101906135eb565b60015b610d9f57610e6e565b805115610e6c576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b158015610de157600080fd5b505afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e199190613393565b905048817f00000000000000000000000000000000000000000000000000000000000000008451610e4a91906135cc565b610e5491906135cc565b610e5e91906134b7565b610e68908661349f565b9450505b505b846001600160a01b031663e3db8a49335a610e899087613690565b856040518463ffffffff1660e01b8152600401610ea8939291906136a7565b602060405180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906136c8565b5050505b5050505050505050565b600081604051602001610f1d91815260200190565b60408051808303601f190181529082905260015481516020830120638db5993b60e01b8452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b90606401602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190613393565b9050801561100d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d111531056515117d253925560621b6044820152606401610641565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b8360405161103d9190613715565b60405180910390a26000806110526001612c2a565b9150915060008060008061106c8660016000806001612838565b9350935093509350836000146110b75760405162461bcd60e51b815260206004820152601060248201526f1053149150511657d4d15457d253925560821b6044820152606401610641565b808385600080516020613943833981519152856000548a60026040516110e09493929190613415565b60405180910390a4505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117991906133f8565b6001600160a01b0316336001600160a01b0316146111d55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b6001546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125291906133f8565b6002549091506001600160a01b03808316911614156112845760405163d054909f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906133f8565b6001600160a01b0316336001600160a01b0316141580156113585750600b546001600160a01b03163314155b1561137857336040516333059da160e11b815260040161064191906131a7565b6001600160a01b038216600090815260036020526040808220805460ff19168415151790555160019160008051602061396383398151915291a25050565b6040516331cee75f60e21b815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141d57600080fd5b505afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906133f8565b6001600160a01b0316336001600160a01b0316146114b15760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008181526008602052604090205460ff166114e25760405162f20c5d60e01b815260048101829052602401610641565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a260405160039060008051602061396383398151915290600090a250565b826000805a90503332146115635760405163feb3d07160e01b815260040160405180910390fd5b3360009081526003602052604090205460ff1661159357604051632dd9fc9760e01b815260040160405180910390fd5b6000806115a18b8b8b612c56565b90925090508b81838c8c8b8b60008080806115bf89888a8989612838565b93509350935093508a84141580156115d957506000198b14155b156116015760405163ac7411c960e01b815260048101859052602481018c9052604401610641565b808385600080516020613943833981519152856000548f600060405161162a9493929190613415565b60405180910390a4505050506001600160a01b038c1615985061189a97505050505050505057366000602061166083601f61349f565b61166a91906134b7565b905061020061167a6002836135bd565b61168491906134b7565b61168f8260066135cc565b611699919061349f565b6116a3908461349f565b92503332146116b5576000915061180a565b6001600160a01b0384161561180a57836001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b1580156116fd57600080fd5b505afa92505050801561173257506040513d6000823e601f3d908101601f1916820160405261172f91908101906135eb565b60015b61173b5761180a565b805115611808576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613393565b905048817f000000000000000000000000000000000000000000000000000000000000000084516117e691906135cc565b6117f091906135cc565b6117fa91906134b7565b611804908661349f565b9450505b505b846001600160a01b031663e3db8a49335a6118259087613690565b856040518463ffffffff1660e01b8152600401611844939291906136a7565b602060405180830381600087803b15801561185e57600080fd5b505af1158015611872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189691906136c8565b5050505b50505050505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156118ef5760405162461bcd60e51b8152600401610641906133ac565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461194c57604051631194af8760e11b81523360048201526001600160a01b0382166024820152604401610641565b60045415801561195c5750600554155b80156119685750600654155b80156119745750600754155b1561199257604051633bcd329760e21b815260040160405180910390fd5b6004546001600160401b0310806119b157506005546001600160401b03105b806119c457506006546001600160401b03105b806119d757506007546001600160401b03105b156119f55760405163d0afb66160e01b815260040160405180910390fd5b505060048054600a80546005805460068054600780546001600160401b03908116600160c01b026001600160c01b03938216600160801b02939093166001600160801b03958216600160401b026001600160801b0319909816919099161795909517929092169590951717909255600093849055908390559082905555565b467f00000000000000000000000000000000000000000000000000000000000000001415611ab557604051635180dd8360e11b815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2257600080fd5b505afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a91906133f8565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b611bbf81612561565b604051600090600080516020613963833981519152908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2957600080fd5b505afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6191906133f8565b6001600160a01b0316336001600160a01b031614611cbd5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a2357600080fd5b60008282604051611ccf929190613748565b604051908190038120607f60f91b6020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310611d535760405162461bcd60e51b81526020600482015260136024820152726b657973657420697320746f6f206c6172676560681b6044820152606401610641565b60008181526008602052604090205460ff1615611d8657604051637d17eeed60e11b815260048101829052602401610641565b437f000000000000000000000000000000000000000000000000000000000000000015611e225760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190613393565b90505b604080518082018252600181526001600160401b0383811660208084019182526000878152600890915284902092518354915168ffffffffffffffffff1990921690151568ffffffffffffffff0019161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290611eb09088908890613758565b60405180910390a260405160029060008051602061396383398151915290600090a25050505050565b6001546040516316bf557960e01b8152600481018390526000916001600160a01b0316906316bf55799060240160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613393565b92915050565b826000805a3360009081526003602052604090205490915060ff16158015611f8f57506002546001600160a01b03163314155b15611fad57604051632dd9fc9760e01b815260040160405180910390fd5b600080611fbb8b8b8b612c56565b909250905060008c82848c8b8b868080611fd88787838888612838565b929c5090945092509050888a14801590611ff457506000198914155b1561201c5760405163ac7411c960e01b8152600481018b9052602481018a9052604401610641565b80838b600080516020613943833981519152856000548d60016040516120459493929190613415565b60405180910390a4505050505050505050807ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051612088929190613758565b60405180910390a25050506001600160a01b0383161561189a57366000602061166083601f61349f565b6000806000806000806000806120c6612e15565b6001600160401b039384169b50918316995082169750169450505050505b90919293565b600054861161210c57604051633eb9f37d60e11b815260040160405180910390fd5b60006121bc8684612120602089018961379d565b61213060408a0160208b0161379d565b61213b60018d613690565b6040805160f89690961b6001600160f81b03191660208088019190915260609590951b6001600160601b031916602187015260c093841b6001600160c01b031990811660358801529290931b909116603d85015260458401526065830188905260858084018790528151808503909101815260a59093019052815191012090565b600a5490915043906001600160401b03166121da602088018861379d565b6121e491906137c6565b6001600160401b03161061220b5760405163ad3515d960e01b815260040160405180910390fd5b600a544290600160801b90046001600160401b0316612230604088016020890161379d565b61223a91906137c6565b6001600160401b0316106122615760405163c76d17e560e01b815260040160405180910390fd5b600060018811156122f9576001546001600160a01b031663d5719dc261228860028b613690565b6040518263ffffffff1660e01b81526004016122a691815260200190565b60206040518083038186803b1580156122be57600080fd5b505afa1580156122d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f69190613393565b90505b60408051602080820184905281830185905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc29061233f908c613690565b6040518263ffffffff1660e01b815260040161235d91815260200190565b60206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad9190613393565b146123cb576040516313947fd760e01b815260040160405180910390fd5b6000806123d78a612c2a565b9150915060008a90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b815260040160206040518083038186803b15801561243057600080fd5b505afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613393565b905080600080808061247d8988838880612838565b9350935093509350808385600080516020613943833981519152856000548d60026040516124ae9493929190613415565b60405180910390a45050505050505050505050505050505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649161250791906137f1565b600060405180830381855afa9150503d8060008114612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b509150915081801561255a575080516020145b9250505090565b80516001600160401b031080612581575060208101516001600160401b03105b80612596575060408101516001600160401b03105b806125ab575060608101516001600160401b03105b156125c9576040516309cfba7560e01b815260040160405180910390fd5b8051600a8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055565b6000612642612f93565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b815260040160006040518083038186803b15801561269e57600080fd5b505afa1580156126b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126da91908101906135eb565b90508051600014156126ff57604051631e693f5b60e11b815260040160405180910390fd5b60008061270b87612e86565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561277057600080fd5b505afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613393565b6127b291906135cc565b6127bc91906135cc565b6040519091508390600560fc1b906127d890879060200161380d565b60408051601f19818403018152908290526127f7939291602001613843565b60405160208183030381529060405280519060200120826000481161281d576000612827565b61282748846134b7565b965096509650505050509193909250565b60008060008060005488101561286157604051633eb9f37d60e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190613393565b8811156129075760405163925f8bd360e01b815260040160405180910390fd5b60015460405163432cc52b60e11b8152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a5690608401608060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299a9190613886565b60008c90559296509094509250905086158015906129d657507f0000000000000000000000000000000000000000000000000000000000000000155b156129e8576129e889854860006129f4565b95509550955095915050565b327f000000000000000000000000000000000000000000000000000000000000000015612aa9576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a5757600080fd5b505afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f9190613393565b9050612a9b48826134b7565b612aa5908461349f565b9250505b6001600160401b03821115612af75760405162461bcd60e51b8152602060048201526014602482015273115615149057d1d054d7d393d517d55253950d8d60621b6044820152606401610641565b604080514260208201526001600160601b0319606084901b16918101919091526054810186905260748101859052609481018490526001600160c01b031960c084901b1660b482015260009060bc0160408051808303601f190181529082905260015481516020830120637a88b10760e01b84526001600160a01b0386811660048601526024850191909152919350600092911690637a88b10790604401602060405180830381600087803b158015612baf57600080fd5b505af1158015612bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be79190613393565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051612c199190613715565b60405180910390a250505050505050565b6000612c34612f93565b600080612c4085612e86565b8151602090920191909120969095509350505050565b6000612c60612f93565b6000612c6d85602861349f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612cd957604051634634691b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610641565b600080612ce586612e86565b90925090508615612ddb57612d1588886000818110612d0657612d06613787565b9050013560f81c60f81b612f2d565b612d505787876000818110612d2c57612d2c613787565b9050013560f81c60f81b60405163359999ab60e11b81526004016106419190612fba565b600160ff1b8888600081612d6657612d66613787565b6001600160f81b031992013592909216161580159150612d87575060218710155b15612ddb576000612d9c602160018a8c6138bc565b612da5916138e6565b60008181526008602052604090205490915060ff16612dd95760405162f20c5d60e01b815260048101829052602401610641565b505b818888604051602001612df093929190613904565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014612e52575060019250829150819050806120e4565b5050600a546001600160401b038082169350600160401b820481169250600160801b8204811691600160c01b9004166120e4565b6060612e90612f93565b6000612e9a612f88565b90506000816000015182602001518360400151846060015188604051602001612f0295949392919060c095861b6001600160c01b0319908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b60405160208183030381529060405290506028815114612f2457612f2461392c565b94909350915050565b60006001600160f81b031982161580612f5357506001600160f81b03198216600160ff1b145b80612f6b57506001600160f81b03198216601160fb1b145b80611f5657506001600160f81b03198216600160fd1b1492915050565b612f90612f93565b90565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6001600160f81b031991909116815260200190565b600060208284031215612fe157600080fd5b5035919050565b6001600160a01b0381168114612ffd57600080fd5b50565b60008082840360a081121561301457600080fd5b833561301f81612fe8565b92506080601f198201121561303357600080fd5b506020830190509250929050565b8015158114612ffd57600080fd5b6000806040838503121561306257600080fd5b823561306d81612fe8565b9150602083013561307d81613041565b809150509250929050565b60006020828403121561309a57600080fd5b81356130a581612fe8565b9392505050565b600080600080600060a086880312156130c457600080fd5b853594506020860135935060408601356130dd81612fe8565b94979396509394606081013594506080013592915050565b60008083601f84011261310757600080fd5b5081356001600160401b0381111561311e57600080fd5b60208301915083602082850101111561313657600080fd5b9250929050565b60008060008060006080868803121561315557600080fd5b8535945060208601356001600160401b0381111561317257600080fd5b61317e888289016130f5565b90955093505060408601359150606086013561319981612fe8565b809150509295509295909350565b6001600160a01b0391909116815260200190565b600080600080600080600060c0888a0312156131d657600080fd5b8735965060208801356001600160401b038111156131f357600080fd5b6131ff8a828b016130f5565b90975095505060408801359350606088013561321a81612fe8565b969995985093969295946080840135945060a09093013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561327557613275613237565b604052919050565b60006080828403121561328f57600080fd5b604051608081018181106001600160401b03821117156132b1576132b1613237565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156132f557600080fd5b82356001600160401b0381111561330b57600080fd5b613317858286016130f5565b90969095509350505050565b60008060008060008060e0878903121561333c57600080fd5b86359550602087013560ff8116811461335457600080fd5b9450608087018881111561336757600080fd5b60408801945035925060a087013561337e81612fe8565b8092505060c087013590509295509295509295565b6000602082840312156133a557600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b60006020828403121561340a57600080fd5b81516130a581612fe8565b600060e0820190508582528460208301526001600160401b038085511660408401528060208601511660608401528060408601511660808401528060608601511660a0840152506004831061347a57634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156134b2576134b2613489565b500190565b6000826134d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156135145781600019048211156134fa576134fa613489565b8085161561350757918102915b93841c93908002906134de565b509250929050565b60008261352b57506001611f56565b8161353857506000611f56565b816001811461354e576002811461355857613574565b6001915050611f56565b60ff84111561356957613569613489565b50506001821b611f56565b5060208310610133831016604e8410600b8410161715613597575081810a611f56565b6135a183836134d9565b80600019048211156135b5576135b5613489565b029392505050565b60006130a560ff84168361351c565b60008160001904831182151516156135e6576135e6613489565b500290565b600060208083850312156135fe57600080fd5b82516001600160401b038082111561361557600080fd5b818501915085601f83011261362957600080fd5b81518181111561363b5761363b613237565b8060051b915061364c84830161324d565b818152918301840191848101908884111561366657600080fd5b938501935b838510156136845784518252938501939085019061366b565b98975050505050505050565b6000828210156136a2576136a2613489565b500390565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156136da57600080fd5b81516130a581613041565b60005b838110156137005781810151838201526020016136e8565b8381111561370f576000848401525b50505050565b60208152600082518060208401526137348160408501602087016136e5565b601f01601f19169190910160400192915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156137af57600080fd5b81356001600160401b03811681146130a557600080fd5b60006001600160401b038083168185168083038211156137e8576137e8613489565b01949350505050565b600082516138038184602087016136e5565b9190910192915050565b815160009082906020808601845b838110156138375781518552938201939082019060010161381b565b50929695505050505050565b600084516138558184602089016136e5565b6001600160f81b0319851690830190815283516138798160018401602088016136e5565b0160010195945050505050565b6000806000806080858703121561389c57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600080858511156138cc57600080fd5b838611156138d957600080fd5b5050820193919092039150565b80356020831015611f5657600019602084900360031b1b1692915050565b600084516139168184602089016136e5565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fdfe7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7ea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456ea2646970667358221220b2aa0281c02516c2448dfdf9f7f2488b19c8cab5409be85a37a9f19fa4394a6064736f6c63430008090033",
|
1123
1123
|
"linkReferences": {},
|
1124
1124
|
"deployedLinkReferences": {}
|
1125
1125
|
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "SimpleCacheManager",
|
4
|
+
"sourceName": "src/mocks/SimpleCacheManager.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [
|
8
|
+
{
|
9
|
+
"internalType": "address",
|
10
|
+
"name": "program",
|
11
|
+
"type": "address"
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"name": "cacheProgram",
|
15
|
+
"outputs": [],
|
16
|
+
"stateMutability": "nonpayable",
|
17
|
+
"type": "function"
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"inputs": [
|
21
|
+
{
|
22
|
+
"internalType": "address",
|
23
|
+
"name": "program",
|
24
|
+
"type": "address"
|
25
|
+
}
|
26
|
+
],
|
27
|
+
"name": "evictProgram",
|
28
|
+
"outputs": [],
|
29
|
+
"stateMutability": "nonpayable",
|
30
|
+
"type": "function"
|
31
|
+
}
|
32
|
+
],
|
33
|
+
"bytecode": "0x608060405234801561001057600080fd5b5061014c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636c769c091461003b578063e73ac9f214610050575b600080fd5b61004e6100493660046100e6565b610063565b005b61004e61005e3660046100e6565b6100b9565b60405163ce97201360e01b8152813f600482015260729063ce972013906024015b600060405180830381600087803b15801561009e57600080fd5b505af11580156100b2573d6000803e3d6000fd5b5050505050565b60405163739d64f960e11b81526001600160a01b038216600482015260729063e73ac9f290602401610084565b6000602082840312156100f857600080fd5b81356001600160a01b038116811461010f57600080fd5b939250505056fea2646970667358221220b51a6d8788db1f3edf1c8949fd91357370957c416d76b32c58e4a96df4ec36e564736f6c63430008090033",
|
34
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80636c769c091461003b578063e73ac9f214610050575b600080fd5b61004e6100493660046100e6565b610063565b005b61004e61005e3660046100e6565b6100b9565b60405163ce97201360e01b8152813f600482015260729063ce972013906024015b600060405180830381600087803b15801561009e57600080fd5b505af11580156100b2573d6000803e3d6000fd5b5050505050565b60405163739d64f960e11b81526001600160a01b038216600482015260729063e73ac9f290602401610084565b6000602082840312156100f857600080fd5b81356001600160a01b038116811461010f57600080fd5b939250505056fea2646970667358221220b51a6d8788db1f3edf1c8949fd91357370957c416d76b32c58e4a96df4ec36e564736f6c63430008090033",
|
35
|
+
"linkReferences": {},
|
36
|
+
"deployedLinkReferences": {}
|
37
|
+
}
|