@arbitrum/nitro-contracts 3.0.0-alpha.2 → 3.0.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE.md +1 -1
- package/README.md +3 -3
- 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/extensions/draft-IERC20Permit.sol/IERC20Permit.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/Create2.sol/Create2.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 +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +271 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +226 -0
- 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/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +294 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +325 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +233 -0
- 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/Create2Upgradeable.sol/Create2Upgradeable.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/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +24 -0
- 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/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.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/DelayBuffer.sol/DelayBuffer.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +2 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- 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/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/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +1 -1
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +1 -1
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.json +10 -0
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +47 -0
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json +10 -0
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +1601 -0
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +1296 -0
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +10 -0
- 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/CallerChecker.sol/CallerChecker.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 +1 -1
- 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/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- 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/CreateTest.sol/CreateTest.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +1 -1
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +1 -1
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +1 -1
- 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/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- 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/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/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 +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- 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/Assertion.sol/AssertionNodeLib.dbg.json +1 -1
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +84 -32
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +2 -2
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +45 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +2 -2
- 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/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +10 -0
- 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/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +12 -2
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +12 -2
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +12 -2
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- 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/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- 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/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- 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/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/package.json +2 -3
- package/src/bridge/AbsBridge.sol +2 -2
- package/src/bridge/ERC20Bridge.sol +6 -2
- package/src/express-lane-auction/Balance.sol +137 -0
- package/src/express-lane-auction/Burner.sol +26 -0
- package/src/express-lane-auction/ELCRound.sol +70 -0
- package/src/express-lane-auction/Errors.sol +31 -0
- package/src/express-lane-auction/ExpressLaneAuction.sol +567 -0
- package/src/express-lane-auction/IExpressLaneAuction.sol +441 -0
- package/src/express-lane-auction/RoundTimingInfo.sol +118 -0
- package/src/rollup/BOLDUpgradeAction.sol +53 -104
- package/src/rollup/BridgeCreator.sol +23 -5
- package/src/rollup/Config.sol +2 -0
- package/src/rollup/RollupAdminLogic.sol +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +0 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +0 -385
@@ -111,11 +111,6 @@
|
|
111
111
|
"name": "outbox",
|
112
112
|
"type": "address"
|
113
113
|
},
|
114
|
-
{
|
115
|
-
"internalType": "address",
|
116
|
-
"name": "oldRollupUser",
|
117
|
-
"type": "address"
|
118
|
-
},
|
119
114
|
{
|
120
115
|
"internalType": "address",
|
121
116
|
"name": "newRollupUser",
|
@@ -168,6 +163,16 @@
|
|
168
163
|
"name": "chainId",
|
169
164
|
"type": "uint256"
|
170
165
|
},
|
166
|
+
{
|
167
|
+
"internalType": "uint256",
|
168
|
+
"name": "minimumAssertionPeriod",
|
169
|
+
"type": "uint256"
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"internalType": "uint64",
|
173
|
+
"name": "validatorAfkBlocks",
|
174
|
+
"type": "uint64"
|
175
|
+
},
|
171
176
|
{
|
172
177
|
"internalType": "bool",
|
173
178
|
"name": "disableValidatorWhitelist",
|
@@ -450,7 +455,7 @@
|
|
450
455
|
},
|
451
456
|
{
|
452
457
|
"inputs": [],
|
453
|
-
"name": "
|
458
|
+
"name": "IMPL_REI",
|
454
459
|
"outputs": [
|
455
460
|
{
|
456
461
|
"internalType": "address",
|
@@ -463,7 +468,7 @@
|
|
463
468
|
},
|
464
469
|
{
|
465
470
|
"inputs": [],
|
466
|
-
"name": "
|
471
|
+
"name": "IMPL_SEQUENCER_INBOX",
|
467
472
|
"outputs": [
|
468
473
|
{
|
469
474
|
"internalType": "address",
|
@@ -476,7 +481,7 @@
|
|
476
481
|
},
|
477
482
|
{
|
478
483
|
"inputs": [],
|
479
|
-
"name": "
|
484
|
+
"name": "INBOX",
|
480
485
|
"outputs": [
|
481
486
|
{
|
482
487
|
"internalType": "address",
|
@@ -489,12 +494,12 @@
|
|
489
494
|
},
|
490
495
|
{
|
491
496
|
"inputs": [],
|
492
|
-
"name": "
|
497
|
+
"name": "IS_DELAY_BUFFERABLE",
|
493
498
|
"outputs": [
|
494
499
|
{
|
495
|
-
"internalType": "
|
500
|
+
"internalType": "bool",
|
496
501
|
"name": "",
|
497
|
-
"type": "
|
502
|
+
"type": "bool"
|
498
503
|
}
|
499
504
|
],
|
500
505
|
"stateMutability": "view",
|
@@ -502,12 +507,12 @@
|
|
502
507
|
},
|
503
508
|
{
|
504
509
|
"inputs": [],
|
505
|
-
"name": "
|
510
|
+
"name": "MAX",
|
506
511
|
"outputs": [
|
507
512
|
{
|
508
|
-
"internalType": "
|
513
|
+
"internalType": "uint64",
|
509
514
|
"name": "",
|
510
|
-
"type": "
|
515
|
+
"type": "uint64"
|
511
516
|
}
|
512
517
|
],
|
513
518
|
"stateMutability": "view",
|
@@ -515,12 +520,12 @@
|
|
515
520
|
},
|
516
521
|
{
|
517
522
|
"inputs": [],
|
518
|
-
"name": "
|
523
|
+
"name": "MINIMUM_ASSERTION_PERIOD",
|
519
524
|
"outputs": [
|
520
525
|
{
|
521
|
-
"internalType": "
|
526
|
+
"internalType": "uint256",
|
522
527
|
"name": "",
|
523
|
-
"type": "
|
528
|
+
"type": "uint256"
|
524
529
|
}
|
525
530
|
],
|
526
531
|
"stateMutability": "view",
|
@@ -695,19 +700,6 @@
|
|
695
700
|
"stateMutability": "view",
|
696
701
|
"type": "function"
|
697
702
|
},
|
698
|
-
{
|
699
|
-
"inputs": [],
|
700
|
-
"name": "ROLLUP_READER",
|
701
|
-
"outputs": [
|
702
|
-
{
|
703
|
-
"internalType": "contract RollupReader",
|
704
|
-
"name": "",
|
705
|
-
"type": "address"
|
706
|
-
}
|
707
|
-
],
|
708
|
-
"stateMutability": "view",
|
709
|
-
"type": "function"
|
710
|
-
},
|
711
703
|
{
|
712
704
|
"inputs": [],
|
713
705
|
"name": "SECONDS_PER_SLOT",
|
@@ -786,6 +778,43 @@
|
|
786
778
|
"stateMutability": "view",
|
787
779
|
"type": "function"
|
788
780
|
},
|
781
|
+
{
|
782
|
+
"inputs": [],
|
783
|
+
"name": "VALIDATOR_AFK_BLOCKS",
|
784
|
+
"outputs": [
|
785
|
+
{
|
786
|
+
"internalType": "uint64",
|
787
|
+
"name": "",
|
788
|
+
"type": "uint64"
|
789
|
+
}
|
790
|
+
],
|
791
|
+
"stateMutability": "view",
|
792
|
+
"type": "function"
|
793
|
+
},
|
794
|
+
{
|
795
|
+
"inputs": [
|
796
|
+
{
|
797
|
+
"internalType": "address",
|
798
|
+
"name": "deployer",
|
799
|
+
"type": "address"
|
800
|
+
},
|
801
|
+
{
|
802
|
+
"internalType": "uint256",
|
803
|
+
"name": "chainId",
|
804
|
+
"type": "uint256"
|
805
|
+
}
|
806
|
+
],
|
807
|
+
"name": "expectedRollupAddress",
|
808
|
+
"outputs": [
|
809
|
+
{
|
810
|
+
"internalType": "address",
|
811
|
+
"name": "",
|
812
|
+
"type": "address"
|
813
|
+
}
|
814
|
+
],
|
815
|
+
"stateMutability": "pure",
|
816
|
+
"type": "function"
|
817
|
+
},
|
789
818
|
{
|
790
819
|
"inputs": [
|
791
820
|
{
|
@@ -798,10 +827,33 @@
|
|
798
827
|
"outputs": [],
|
799
828
|
"stateMutability": "nonpayable",
|
800
829
|
"type": "function"
|
830
|
+
},
|
831
|
+
{
|
832
|
+
"inputs": [
|
833
|
+
{
|
834
|
+
"internalType": "address",
|
835
|
+
"name": "rollupAddress",
|
836
|
+
"type": "address"
|
837
|
+
},
|
838
|
+
{
|
839
|
+
"internalType": "address",
|
840
|
+
"name": "deployer",
|
841
|
+
"type": "address"
|
842
|
+
},
|
843
|
+
{
|
844
|
+
"internalType": "uint256",
|
845
|
+
"name": "chainId",
|
846
|
+
"type": "uint256"
|
847
|
+
}
|
848
|
+
],
|
849
|
+
"name": "validateRollupDeployedAtAddress",
|
850
|
+
"outputs": [],
|
851
|
+
"stateMutability": "view",
|
852
|
+
"type": "function"
|
801
853
|
}
|
802
854
|
],
|
803
|
-
"bytecode": "0x6105806040523480156200001257600080fd5b506040516200853c3803806200853c833981016040819052620000359162000779565b83516001600160a01b039081166101005260208086015182166101205260408087015183166101405260608088015184166101605260808089015185166101805260a089015185166101a05260c089015185166101c05260e089015185166103605287518516610380529287015184166103a0528682015184166103c05286015183166103e052908501519091166104005251620000d390620002b3565b604051809103906000f080158015620000f0573d6000803e3d6000fd5b506001600160a01b03166104205260208401516040516200011190620002c1565b6001600160a01b039091168152602001604051809103906000f0801580156200013e573d6000803e3d6000fd5b506001600160a01b0390811661044052825181166104605260208084015182166104805260408085015183166104a05260608086015184166104c05260808087015185166104e05260a08088015186166105005260c088015186166105205260e08801518616610540526101008801518616610560528601516102605285516001600160401b039081166101e0529386015190931661020052848201519093166102205291830151610240528201519051620001fa90620002cf565b620002069190620008a0565b604051809103906000f08015801562000223573d6000803e3d6000fd5b506001600160a01b03166102c05260c08082015115156102805260e08083015160805261010083015160a05261012083015190915261014082015160ff1690526101608101516001600160401b039081166102a05261018082015115156102e0526101a09091018051602001518216610300528051518216610320525160400151166103405250620008e6915050565b610a2d8062006c0283390190565b610c6d806200762f83390190565b6102a0806200829c83390190565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620003195762000319620002dd565b60405290565b6040516101c081016001600160401b0381118282101715620003195762000319620002dd565b60405161010081016001600160401b0381118282101715620003195762000319620002dd565b6001600160a01b03811681146200038157600080fd5b50565b805162000391816200036b565b919050565b600060a08284031215620003a957600080fd5b60405160a081016001600160401b0381118282101715620003ce57620003ce620002dd565b80604052508091508251620003e3816200036b565b81526020830151620003f5816200036b565b602082015260408301516200040a816200036b565b604082015260608301516200041f816200036b565b6060820152608083015162000434816200036b565b6080919091015292915050565b600061012082840312156200045557600080fd5b6200045f620002f3565b90506200046c8262000384565b81526200047c6020830162000384565b60208201526200048f6040830162000384565b6040820152620004a26060830162000384565b6060820152620004b56080830162000384565b6080820152620004c860a0830162000384565b60a0820152620004db60c0830162000384565b60c0820152620004ee60e0830162000384565b60e08201526101006200050381840162000384565b9082015292915050565b80516001600160401b03811681146200039157600080fd5b600082601f8301126200053757600080fd5b815160206001600160401b0380831115620005565762000556620002dd565b8260051b604051601f19603f830116810181811084821117156200057e576200057e620002dd565b6040529384528581018301938381019250878511156200059d57600080fd5b83870191505b84821015620005be57815183529183019190830190620005a3565b979650505050505050565b805180151581146200039157600080fd5b805160ff811681146200039157600080fd5b600060608284031215620005ff57600080fd5b604051606081016001600160401b0381118282101715620006245762000624620002dd565b60405290508062000635836200050d565b815262000645602084016200050d565b602082015262000658604084016200050d565b60408201525092915050565b600061020082840312156200067857600080fd5b620006826200031f565b90506200068f826200050d565b81526200069f602083016200050d565b6020820152620006b26040830162000384565b60408201526060828101519082015260808201516001600160401b03811115620006db57600080fd5b620006e98482850162000525565b60808301525060a082015160a08201526200070760c08301620005c9565b60c082015260e08281015190820152610100808301519082015261012080830151908201526101406200073c818401620005da565b90820152610160620007508382016200050d565b9082015261018062000764838201620005c9565b908201526101a06200050384848301620005ec565b6000806000808486036102e08112156200079257600080fd5b61010080821215620007a357600080fd5b620007ad62000345565b91508651620007bc816200036b565b8252620007cc6020880162000384565b6020830152620007df6040880162000384565b6040830152620007f26060880162000384565b6060830152620008056080880162000384565b60808301526200081860a0880162000384565b60a08301526200082b60c0880162000384565b60c08301526200083e60e0880162000384565b60e0830152819550620008548882890162000396565b9450505062000868866101a0870162000441565b6102c08601519092506001600160401b038111156200088657600080fd5b620008948782880162000664565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015620008da57835183529284019291840191600101620008bc565b50909695505050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051615f5e62000ca4600039600081816103fa0152610a050152600081816103230152610ba301526000818161052a0152610bd20152600081816104d101526117cf01526000818161081e01526123210152600081816107ce01526121e5015260008181610655015261211e0152600081816107f6015281816124e00152818161269601526127550152600081816108be0152611fb501526000818161057a01528181610c0101528181610f7f015281816112030152818161144a01528181611542015281816115f601528181611866015281816118950152611c5e015260008181610846015281816119d50152611a9f01526000818161055201526121470152600081816104a9015281816124b0015281816126be0152612779015260008181610502015261220f01526000818161039001528181610a260152611fde015260008181610368015261234b0152600081816106f50152610d3901526000818161090e015261256c01526000818161062d015261250c015260008181610896015261253c0152600081816108e60152818161248901526128690152600081816107560152611d6101526000818161094f0152611eac01526000818161071d01528181611145015261119201526000818161067d0152611d260152600081816109c70152611c3801526000818161044a0152611c090152600081816106cd0152610d180152600081816103b80152611bd901526000818161077e01528181610b0701526120f501526000818161042201528181610b36015281816122f801526123ac0152600081816107a601528181610b65015281816121bc015261227001526000818161086e01528181610ad8015281816124680152818161288c0152818161298e01528181612a7401528181612b1c0152612d5f01526000818161097701528181610aa901528181611f8c01526120740152600081816106a5015281816113d30152818161170101526117f701526000818161060501528181610d710152611cf70152600081816105a20152611e8301526000818161099f0152611e410152600081816104720152611e1b0152600081816105dd0152611df50152615f5e6000f3fe60806040523480156200001157600080fd5b5060043610620003185760003560e01c80638765240f11620001a5578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a21462000971578063fa2874201462000999578063faf5625f14620009c157600080fd5b8063eb657a4e1462000908578063ebe03a931462000930578063ec4f74ce146200094957600080fd5b8063d49d518111620000d8578063d49d51811462000890578063dae7cb8b14620008b8578063e8180c2914620008e057600080fd5b8063cc8089bb1462000840578063d384cb95146200086857600080fd5b8063b70106971162000153578063c21c42331162000136578063c21c423314620007c8578063c519d15114620007f0578063c897f55e146200081857600080fd5b8063b70106971462000778578063be41b36714620007a057600080fd5b80639f9854e511620001885780639f9854e514620006ef578063b38d57f01462000717578063b5e00c3f146200075057600080fd5b80638765240f146200069f57806391ddb28514620006c757600080fd5b8063304b9071116200026d5780635d9e2444116200021b578063785ffb3711620001f2578063785ffb371462000627578063817cd312146200064f57806385e1f4d0146200067757600080fd5b80635d9e2444146200059c578063609fb50314620005d757806364f4992a14620005ff57600080fd5b80634692de5d11620002505780634692de5d14620005245780634b2f51ef146200054c5780634e0e75fb146200057457600080fd5b8063304b907114620004f35780633c2b784014620004fc57600080fd5b80631b142ea711620002cb5780631ccc2cd111620002ae5780631ccc2cd1146200046c5780632cfb7ca314620004a35780632db93bdc14620004cb57600080fd5b80631b142ea7146200041c5780631c39b672146200044457600080fd5b80630a54257d11620003005780630a54257d146200038a5780631047fc5214620003b257806310a662e214620003f457600080fd5b8062f9731e146200031d5780630787484b1462000362575b600080fd5b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b62000494600c81565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620005c47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000359565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620009476200094136600462003068565b620009e9565b005b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620009f3620013d1565b6000620009ff62001858565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000a539062002dde565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000a96573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c84919062003113565b6001600160a01b0316815250905060008360405160200162000ca791906200343d565b604051602081830303815290604052805190602001209050600062000cf9826040518060200162000cd89062002dec565b6020820181038252601f19601f820116604052508051906020012062001ee9565b905062000d068162001f75565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961014001518a61016001518b61018001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61020001518f61010001516040518b63ffffffff1660e01b815260040162000dc39a9998979695949392919062003452565b600060405180830381600087803b15801562000dde57600080fd5b505af115801562000df3573d6000803e3d6000fd5b5050505060008260405162000e089062002dec565b8190604051809103906000f590508015801562000e29573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000e935760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f41444452000000000000000000000060448201526064015b60405180910390fd5b608086018051309091526040517fd384644b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063d384644b9062000ee6908a908990600401620034cf565b600060405180830381600087803b15801562000f0157600080fd5b505af115801562000f16573d6000803e3d6000fd5b50505050875160001462001143576000885167ffffffffffffffff81111562000f435762000f4362002f8b565b60405190808252806020026020018201604052801562000f6d578160200160208202803683370190505b50905060005b8951811015620010c3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b838151811062000fc15762000fc1620035b5565b60200260200101516040518263ffffffff1660e01b815260040162000ff591906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001013573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010399190620035e1565b620010875760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000e8a565b60018282815181106200109e576200109e620035b5565b9115156020928302919091019091015280620010ba8162003615565b91505062000f73565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200110d908c9085906004016200368b565b600060405180830381600087803b1580156200112857600080fd5b505af11580156200113d573d6000803e3d6000fd5b50505050505b7f00000000000000000000000000000000000000000000000000000000000000001562001201576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b158015620011e757600080fd5b505af1158015620011fc573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200127e575060408051601f3d908101601f191682019092526200127b9181019062003113565b60015b156200130d576001600160a01b038116156200130b576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b158015620012f157600080fd5b505af115801562001306573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200136a57600080fd5b505af11580156200137f573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200142d57600080fd5b505af115801562001442573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa158015620014a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014cd919062003701565b905060328167ffffffffffffffff161115620014e7575060325b60005b8167ffffffffffffffff168167ffffffffffffffff1610156200179e576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001592573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015b8919062003113565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa1580156200163e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200166491906200371f565b905080608001518015620016845750606081015167ffffffffffffffff16155b156200178657604080516001808252818301909252600091602080830190803683370190505090508281600081518110620016c357620016c3620035b5565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c298906200173a908490600401620037b2565b600060405180830381600087803b1580156200175557600080fd5b505af11580156200176a573d6000803e3d6000fd5b505050506001856200177d9190620037c7565b94505062001796565b826200179281620037f2565b9350505b5050620014ea565b506040517f0d40a0fd0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690630d40a0fd90602401600060405180830381600087803b1580156200183c57600080fd5b505af115801562001851573d6000803e3d6000fd5b5050505050565b6200186262002dfa565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001918919062003701565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200199d91906200381c565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001a25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a4b919062003970565b9150915062001a5962002f04565b8251815260208084015190820190600281111562001a7b5762001a7b62003227565b9081600281111562001a915762001a9162003227565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001acf8462002426565b856040518363ffffffff1660e01b815260040162001aef92919062003a41565b602060405180830381865afa15801562001b0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b33919062003a78565b1462001b825760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000e8a565b62001bae6040518060800160405280600081526020016000815260200160008152602001600081525090565b60408051606081018252600080825260208201819052918101919091526040518061026001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cbb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ce1919062003a78565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001dbe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001de8919081019062003a92565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000905b90505b92915050565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200202557600080fd5b505af11580156200203a573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b158015620020bb57600080fd5b505af1158015620020d0573d6000803e3d6000fd5b50505050620020de62002466565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200218e57600080fd5b505af1158015620021a3573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200225557600080fd5b505af11580156200226a573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620022ca57600080fd5b505af1158015620022df573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200239157600080fd5b505af1158015620023a6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200240657600080fd5b505af11580156200241b573d6000803e3d6000fd5b505050505050505050565b6200243062002f2d565b604051806040016040528083600001518152602001836020015160028111156200245e576200245e62003227565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002677577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815250604051602401620025aa919062003b21565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526200263d9392919060040162003b53565b600060405180830381600087803b1580156200265857600080fd5b505af11580156200266d573d6000803e3d6000fd5b505050506200271d565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b1580156200270357600080fd5b505af115801562002718573d6000803e3d6000fd5b505050505b6040517f204e1c7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000008116917f00000000000000000000000000000000000000000000000000000000000000009091169063204e1c7a90602401602060405180830381865afa158015620027c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e9919062003113565b6001600160a01b031614620028675760405162461bcd60e51b815260206004820152603160248201527f44656c61794275666665723a206e65772073657120696e626f7820696d706c6560448201527f6d656e746174696f6e206e6f7420736574000000000000000000000000000000606482015260840162000e8a565b7f000000000000000000000000000000000000000000000000000000000000000015157f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b678a666040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200290f9190620035e1565b151514620029865760405162461bcd60e51b815260206004820152602660248201527f44656c61794275666665723a20697344656c617942756666657261626c65206e60448201527f6f74207365740000000000000000000000000000000000000000000000000000606482015260840162000e8a565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa158015620029eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a11919062003b8a565b93509350935093506000600c8362002a2a919062003bd7565b1562002a505762002a3d600c8462003bee565b62002a4a90600162003c05565b62002a5d565b62002a5d600c8462003bee565b905084811162002a6e578462002a70565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b815260040162002ae0919062003c1b565b600060405180830381600087803b15801562002afb57600080fd5b505af115801562002b10573d6000803e3d6000fd5b505050506000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa15801562002b79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b9f919062003b8a565b935093509350935088841462002bf85760405162461bcd60e51b815260206004820181905260248201527f44656c61794275666665723a2064656c6179426c6f636b73206e6f7420736574604482015260640162000e8a565b86821462002c6f5760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a2064656c61795365636f6e6473206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b87831462002ce65760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a20667574757265426c6f636b73206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b85811462002d5d5760405162461bcd60e51b815260206004820152602260248201527f44656c61794275666665723a206675747572655365636f6e6473206e6f74207360448201527f6574000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002db957600080fd5b505af115801562002dce573d6000803e3d6000fd5b5050505050505050505050505050565b610ed38062003c4883390190565b61140e8062004b1b83390190565b604051806102600160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200162002e996040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ebd62002f04565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002f1962002f4e565b815260200160008152600060209091015290565b604051806040016040528062002f4262002f4e565b81526020016000905290565b604051806040016040528062002f6362002f6d565b815260200162002eff5b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b60405290565b6040805190810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b604051601f8201601f1916810167ffffffffffffffff8111828210171562003020576200302062002f8b565b604052919050565b600067ffffffffffffffff82111562003045576200304562002f8b565b5060051b60200190565b6001600160a01b03811681146200306557600080fd5b50565b600060208083850312156200307c57600080fd5b823567ffffffffffffffff8111156200309457600080fd5b8301601f81018513620030a657600080fd5b8035620030bd620030b78262003028565b62002ff4565b81815260059190911b82018301908381019087831115620030dd57600080fd5b928401925b8284101562003108578335620030f8816200304f565b82529284019290840190620030e2565b979650505050505050565b6000602082840312156200312657600080fd5b815162003133816200304f565b9392505050565b6000815180845260005b81811015620031625760208185018101518683018201520162003144565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b83811015620031b45781518752958201959082019060010162003196565b509495945050505050565b80518260005b6002811015620031e6578251825260209283019290910190600101620031c5565b5050506020808201516040840160005b60028110156200321f57825167ffffffffffffffff1682529183019190830190600101620031f6565b505050505050565b634e487b7160e01b600052602160045260246000fd5b600381106200325c57634e487b7160e01b600052602160045260246000fd5b9052565b6200326d828251620031bf565b60208101516200328160808401826200323d565b506040015160a09190910152565b805167ffffffffffffffff16825260006103a06020830151620032bd60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151620032ed60808601826001600160a01b03169052565b5060a08301516200330960a08601826001600160a01b03169052565b5060c083015160c085015260e08301518160e08601526200332d828601826200313a565b91505061010080840151858303828701526200334a838262003182565b6101208681015180518983015260208101516101408a015260408101516101608a015260608101516101808a01529194509250905050506101408301516101a0818187015261016085015191506101c0828188015261018086015192506101e083818901528287015193506102009250620033c88389018562003260565b908601516102c08801528501516001600160a01b03166102e087015284015160ff166103008601525061022083015167ffffffffffffffff908116610320860152610240840151805182166103408701526020810151821661036087015260408101519091166103808601525b509392505050565b60208152600062001f6c60208301846200328f565b60006101406001600160a01b03808e16845267ffffffffffffffff8d166020850152808c1660408501528a60608501528960808501528860a085015280881660c085015280871660e08501525060ff851661010084015280610120840152620034be8184018562003182565b9d9c50505050505050505050505050565b6000610140808352620034e5818401866200328f565b9150506001600160a01b03835116602083015260208301516200351360408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e08301516101006200359a818501836001600160a01b03169052565b8401516001600160a01b038116610120850152905062003435565b634e487b7160e01b600052603260045260246000fd5b80518015158114620035dc57600080fd5b919050565b600060208284031215620035f457600080fd5b62001f6c82620035cb565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620036495762003649620035ff565b5060010190565b600081518084526020808501945080840160005b83811015620031b45781516001600160a01b03168752958201959082019060010162003664565b604081526000620036a0604083018562003650565b82810360208481019190915284518083528582019282019060005b81811015620036db578451151583529383019391830191600101620036bb565b5090979650505050505050565b805167ffffffffffffffff81168114620035dc57600080fd5b6000602082840312156200371457600080fd5b62001f6c82620036e8565b600060a082840312156200373257600080fd5b60405160a0810181811067ffffffffffffffff8211171562003758576200375862002f8b565b604052825181526200376d60208401620036e8565b60208201526200378060408401620036e8565b60408201526200379360608401620036e8565b6060820152620037a660808401620035cb565b60808201529392505050565b60208152600062001f6c602083018462003650565b67ffffffffffffffff828116828216039080821115620037eb57620037eb620035ff565b5092915050565b600067ffffffffffffffff808316818103620038125762003812620035ff565b6001019392505050565b600061018082840312156200383057600080fd5b6200383a62002fa1565b8251815260208301516020820152604083015160408201526200386060608401620036e8565b60608201526200387360808401620036e8565b60808201526200388660a08401620036e8565b60a08201526200389960c08401620036e8565b60c0820152620038ac60e08401620036e8565b60e0820152610100620038c1818501620036e8565b90820152610120620038d5848201620036e8565b90820152610140620038e9848201620036e8565b90820152610160928301519281019290925250919050565b600082601f8301126200391357600080fd5b6200391d62002fce565b8060408401858111156200393057600080fd5b845b8181101562003955576200394681620036e8565b84526020938401930162003932565b509095945050505050565b805160038110620035dc57600080fd5b60008082840360c08112156200398557600080fd5b60a08112156200399457600080fd5b6200399e62002fce565b6080821215620039ad57600080fd5b620039b762002fce565b915085601f860112620039c957600080fd5b620039d362002fce565b806040870188811115620039e657600080fd5b875b8181101562003a02578051845260209384019301620039e8565b5081855262003a12898262003901565b602086015250505081815262003a2b6080860162003960565b602082015260a094909401519395939450505050565b600060c08201905062003a56828551620031bf565b602084015162003a6a60808401826200323d565b508260a08301529392505050565b60006020828403121562003a8b57600080fd5b5051919050565b6000602080838503121562003aa657600080fd5b825167ffffffffffffffff81111562003abe57600080fd5b8301601f8101851362003ad057600080fd5b805162003ae1620030b78262003028565b81815260059190911b8201830190838101908783111562003b0157600080fd5b928401925b82841015620031085783518252928401929084019062003b06565b6060810162001f6f8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003b8160608301846200313a565b95945050505050565b6000806000806080858703121562003ba157600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b60008262003be95762003be962003bc1565b500690565b60008262003c005762003c0062003bc1565b500490565b8082018082111562001f6f5762001f6f620035ff565b815181526020808301519082015260408083015190820152606080830151908201526080810162001f6f56fe608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564608060405234801561001057600080fd5b506113ee806100206000396000f3fe6080604052600436106100225760003560e01c8063d384644b1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d792919061113d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e7e6aa70000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461132b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a661134c565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61132b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff61134c565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e61132b565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d146104585761045861134c565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610648838360405180606001604052806027815260200161139260279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf9190611362565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c919061137e565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b604051610260810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103a08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008084013583811115610e7357600080fd5b610e7f8a828701610a82565b8284015250506101209150610e9688838501610b02565b828201526101a0915081830135848201526101c09350838301356101608201526101e080840135610180830152610200610ed28a828701610bce565b848401526102c085013586840152610eed6102e086016109fb565b82840152610efe6103008601610c7e565b9083015250610f1061032084016109e3565b610220820152610f24886103408501610c8f565b61024082015280955050505050610f3e8460208501610cde565b90509250929050565b60005b83811015610f62578181015183820152602001610f4a565b50506000910152565b60008151808452610f83816020860160208601610f47565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b60038110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b600281101561101b578251825260209283019290910190600101610ffc565b505050602090810151906040840160005b600281101561105357835167ffffffffffffffff168252928201929082019060010161102c565b505082015190506110676080840182610fd2565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110b660608401826001600160a01b03169052565b5060808101516110d160808401826001600160a01b03169052565b5060a08101516110ec60a08401826001600160a01b03169052565b5060c081015161110760c08401826001600160a01b03169052565b5060e081015161112260e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b600061014080835261115b818401865167ffffffffffffffff169052565b6020850151610160611177818601836001600160a01b03169052565b604087015191506101808281870152606088015192506101a08381880152608089015193506101c06111b3818901866001600160a01b03169052565b60a08a015194506101e06111d1818a01876001600160a01b03169052565b60c08b0151955061020086818b015260e08c015196506102206103a0818c01526111ff6104e08c0189610f6b565b97506101008d01516102407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301818e015261123d8a83610f97565b99506101208f015191506112766102608e0183805182526020810151602083015260408101516040830152606081015160608301525050565b998e01516102e08d0152878e01516103008d0152868e01516103208d0152858e0151996112a76103408e018c610ff4565b948e01516104008d015250918c01516001600160a01b03166104208b01528b015160ff166104408a01528a015167ffffffffffffffff9081166104608a0152908a0151805182166104808a0152602081015182166104a08a015260408101519091166104c0890152945061131a92505050565b915061082490506020830184611075565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251611374818460208701610f47565b9190910192915050565b6020815260006106486020830184610f6b56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203bd7e50a8d8b387e26bd33809f5e06ba6f73a7c0c834d9cabd9c4f72c6ccf5ac64736f6c63430008110033a2646970667358221220788bded21774b9c5cda5ac48a85cd30bed023800bc90a282aa276e37e8cf988c64736f6c63430008110033608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea26469706673582212209c97f7ab66737cd7ec5db02432cdc0239086eefb3c33282396752a97d3d2314764736f6c6343000811003360a060405234801561001057600080fd5b50604051610c6d380380610c6d83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610ba36100ca600039600081816101c801528181610219015281816102a20152818161035d015281816103da015281816104f7015281816105c2015281816106310152818161069101526107280152610ba36000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a23c44b111610076578063cb23bcb51161005b578063cb23bcb5146101c3578063dff69787146101ea578063facd743b146101f257600080fd5b8063a23c44b114610152578063bc45e0ae146101bb57600080fd5b80636ddd3744116100a75780636ddd3744146101095780638ee1a1261461011c57806392c8134c1461013257600080fd5b806355840a58146100c357806365f7f80d146100e8575b600080fd5b6100cb610215565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f061029e565b60405167ffffffffffffffff90911681526020016100df565b6100cb6101173660046107ae565b610322565b6101246103d6565b6040519081526020016100df565b6101456101403660046107ae565b61045a565b6040516100df91906107d2565b6101656101603660046108eb565b610563565b6040516100df9190600060a08201905082518252602083015167ffffffffffffffff8082166020850152806040860151166040850152806060860151166060850152505060808301511515608083015292915050565b6100cb61062d565b6100cb7f000000000000000000000000000000000000000000000000000000000000000081565b6100f061068d565b6102056102003660046108eb565b6106ed565b60405190151581526020016100df565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610908565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610935565b6040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610908565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610952565b6040805161018081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018190526101208201819052610140820181905261016082015290517f92c8134c00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906392c8134c9060240161018060405180830381865afa15801561053f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d091906109bc565b6040805160a08101825260008082526020820181905281830181905260608201819052608082015290517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610a9e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b6040517ffacd743b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063facd743b90602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610b52565b67ffffffffffffffff811681146107ab57600080fd5b50565b6000602082840312156107c057600080fd5b81356107cb81610795565b9392505050565b600061018082019050825182526020830151602083015260408301516040830152606083015161080e606084018267ffffffffffffffff169052565b50608083015161082a608084018267ffffffffffffffff169052565b5060a083015161084660a084018267ffffffffffffffff169052565b5060c083015161086260c084018267ffffffffffffffff169052565b5060e083015161087e60e084018267ffffffffffffffff169052565b506101008381015167ffffffffffffffff81168483015250506101208381015167ffffffffffffffff81168483015250506101408381015167ffffffffffffffff811684830152505061016092830151919092015290565b6001600160a01b03811681146107ab57600080fd5b6000602082840312156108fd57600080fd5b81356107cb816108d6565b60006020828403121561091a57600080fd5b81516107cb816108d6565b805161093081610795565b919050565b60006020828403121561094757600080fd5b81516107cb81610795565b60006020828403121561096457600080fd5b5051919050565b604051610180810167ffffffffffffffff811182821017156109b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b600061018082840312156109cf57600080fd5b6109d761096b565b8251815260208301516020820152604083015160408201526109fb60608401610925565b6060820152610a0c60808401610925565b6080820152610a1d60a08401610925565b60a0820152610a2e60c08401610925565b60c0820152610a3f60e08401610925565b60e0820152610100610a52818501610925565b90820152610120610a64848201610925565b90820152610140610a76848201610925565b90820152610160928301519281019290925250919050565b8051801515811461093057600080fd5b600060a08284031215610ab057600080fd5b60405160a0810181811067ffffffffffffffff82111715610afa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020830151610b0f81610795565b60208201526040830151610b2281610795565b60408201526060830151610b3581610795565b6060820152610b4660808401610a8e565b60808201529392505050565b600060208284031215610b6457600080fd5b6107cb82610a8e56fea26469706673582212209e4e65eccf3145c72b67172525f68857a7ca8044d238bdcff6f8681fb457be6064736f6c63430008110033608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220ccd76edfb19199fe2f9147fa7c786fad8642f0fc5c0a057338c66b040066df5364736f6c63430008110033",
|
804
|
-
"deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620003185760003560e01c80638765240f11620001a5578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a21462000971578063fa2874201462000999578063faf5625f14620009c157600080fd5b8063eb657a4e1462000908578063ebe03a931462000930578063ec4f74ce146200094957600080fd5b8063d49d518111620000d8578063d49d51811462000890578063dae7cb8b14620008b8578063e8180c2914620008e057600080fd5b8063cc8089bb1462000840578063d384cb95146200086857600080fd5b8063b70106971162000153578063c21c42331162000136578063c21c423314620007c8578063c519d15114620007f0578063c897f55e146200081857600080fd5b8063b70106971462000778578063be41b36714620007a057600080fd5b80639f9854e511620001885780639f9854e514620006ef578063b38d57f01462000717578063b5e00c3f146200075057600080fd5b80638765240f146200069f57806391ddb28514620006c757600080fd5b8063304b9071116200026d5780635d9e2444116200021b578063785ffb3711620001f2578063785ffb371462000627578063817cd312146200064f57806385e1f4d0146200067757600080fd5b80635d9e2444146200059c578063609fb50314620005d757806364f4992a14620005ff57600080fd5b80634692de5d11620002505780634692de5d14620005245780634b2f51ef146200054c5780634e0e75fb146200057457600080fd5b8063304b907114620004f35780633c2b784014620004fc57600080fd5b80631b142ea711620002cb5780631ccc2cd111620002ae5780631ccc2cd1146200046c5780632cfb7ca314620004a35780632db93bdc14620004cb57600080fd5b80631b142ea7146200041c5780631c39b672146200044457600080fd5b80630a54257d11620003005780630a54257d146200038a5780631047fc5214620003b257806310a662e214620003f457600080fd5b8062f9731e146200031d5780630787484b1462000362575b600080fd5b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b62000494600c81565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620005c47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000359565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620009476200094136600462003068565b620009e9565b005b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620009f3620013d1565b6000620009ff62001858565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000a539062002dde565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000a96573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c84919062003113565b6001600160a01b0316815250905060008360405160200162000ca791906200343d565b604051602081830303815290604052805190602001209050600062000cf9826040518060200162000cd89062002dec565b6020820181038252601f19601f820116604052508051906020012062001ee9565b905062000d068162001f75565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961014001518a61016001518b61018001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61020001518f61010001516040518b63ffffffff1660e01b815260040162000dc39a9998979695949392919062003452565b600060405180830381600087803b15801562000dde57600080fd5b505af115801562000df3573d6000803e3d6000fd5b5050505060008260405162000e089062002dec565b8190604051809103906000f590508015801562000e29573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000e935760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f41444452000000000000000000000060448201526064015b60405180910390fd5b608086018051309091526040517fd384644b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063d384644b9062000ee6908a908990600401620034cf565b600060405180830381600087803b15801562000f0157600080fd5b505af115801562000f16573d6000803e3d6000fd5b50505050875160001462001143576000885167ffffffffffffffff81111562000f435762000f4362002f8b565b60405190808252806020026020018201604052801562000f6d578160200160208202803683370190505b50905060005b8951811015620010c3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b838151811062000fc15762000fc1620035b5565b60200260200101516040518263ffffffff1660e01b815260040162000ff591906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001013573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010399190620035e1565b620010875760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000e8a565b60018282815181106200109e576200109e620035b5565b9115156020928302919091019091015280620010ba8162003615565b91505062000f73565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200110d908c9085906004016200368b565b600060405180830381600087803b1580156200112857600080fd5b505af11580156200113d573d6000803e3d6000fd5b50505050505b7f00000000000000000000000000000000000000000000000000000000000000001562001201576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b158015620011e757600080fd5b505af1158015620011fc573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200127e575060408051601f3d908101601f191682019092526200127b9181019062003113565b60015b156200130d576001600160a01b038116156200130b576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b158015620012f157600080fd5b505af115801562001306573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200136a57600080fd5b505af11580156200137f573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200142d57600080fd5b505af115801562001442573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa158015620014a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014cd919062003701565b905060328167ffffffffffffffff161115620014e7575060325b60005b8167ffffffffffffffff168167ffffffffffffffff1610156200179e576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001592573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015b8919062003113565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa1580156200163e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200166491906200371f565b905080608001518015620016845750606081015167ffffffffffffffff16155b156200178657604080516001808252818301909252600091602080830190803683370190505090508281600081518110620016c357620016c3620035b5565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c298906200173a908490600401620037b2565b600060405180830381600087803b1580156200175557600080fd5b505af11580156200176a573d6000803e3d6000fd5b505050506001856200177d9190620037c7565b94505062001796565b826200179281620037f2565b9350505b5050620014ea565b506040517f0d40a0fd0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690630d40a0fd90602401600060405180830381600087803b1580156200183c57600080fd5b505af115801562001851573d6000803e3d6000fd5b5050505050565b6200186262002dfa565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001918919062003701565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200199d91906200381c565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001a25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a4b919062003970565b9150915062001a5962002f04565b8251815260208084015190820190600281111562001a7b5762001a7b62003227565b9081600281111562001a915762001a9162003227565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001acf8462002426565b856040518363ffffffff1660e01b815260040162001aef92919062003a41565b602060405180830381865afa15801562001b0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b33919062003a78565b1462001b825760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000e8a565b62001bae6040518060800160405280600081526020016000815260200160008152602001600081525090565b60408051606081018252600080825260208201819052918101919091526040518061026001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cbb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ce1919062003a78565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001dbe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001de8919081019062003a92565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000905b90505b92915050565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200202557600080fd5b505af11580156200203a573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b158015620020bb57600080fd5b505af1158015620020d0573d6000803e3d6000fd5b50505050620020de62002466565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200218e57600080fd5b505af1158015620021a3573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200225557600080fd5b505af11580156200226a573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620022ca57600080fd5b505af1158015620022df573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200239157600080fd5b505af1158015620023a6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200240657600080fd5b505af11580156200241b573d6000803e3d6000fd5b505050505050505050565b6200243062002f2d565b604051806040016040528083600001518152602001836020015160028111156200245e576200245e62003227565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002677577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815250604051602401620025aa919062003b21565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526200263d9392919060040162003b53565b600060405180830381600087803b1580156200265857600080fd5b505af11580156200266d573d6000803e3d6000fd5b505050506200271d565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b1580156200270357600080fd5b505af115801562002718573d6000803e3d6000fd5b505050505b6040517f204e1c7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000008116917f00000000000000000000000000000000000000000000000000000000000000009091169063204e1c7a90602401602060405180830381865afa158015620027c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e9919062003113565b6001600160a01b031614620028675760405162461bcd60e51b815260206004820152603160248201527f44656c61794275666665723a206e65772073657120696e626f7820696d706c6560448201527f6d656e746174696f6e206e6f7420736574000000000000000000000000000000606482015260840162000e8a565b7f000000000000000000000000000000000000000000000000000000000000000015157f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b678a666040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200290f9190620035e1565b151514620029865760405162461bcd60e51b815260206004820152602660248201527f44656c61794275666665723a20697344656c617942756666657261626c65206e60448201527f6f74207365740000000000000000000000000000000000000000000000000000606482015260840162000e8a565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa158015620029eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a11919062003b8a565b93509350935093506000600c8362002a2a919062003bd7565b1562002a505762002a3d600c8462003bee565b62002a4a90600162003c05565b62002a5d565b62002a5d600c8462003bee565b905084811162002a6e578462002a70565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b815260040162002ae0919062003c1b565b600060405180830381600087803b15801562002afb57600080fd5b505af115801562002b10573d6000803e3d6000fd5b505050506000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa15801562002b79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b9f919062003b8a565b935093509350935088841462002bf85760405162461bcd60e51b815260206004820181905260248201527f44656c61794275666665723a2064656c6179426c6f636b73206e6f7420736574604482015260640162000e8a565b86821462002c6f5760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a2064656c61795365636f6e6473206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b87831462002ce65760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a20667574757265426c6f636b73206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b85811462002d5d5760405162461bcd60e51b815260206004820152602260248201527f44656c61794275666665723a206675747572655365636f6e6473206e6f74207360448201527f6574000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002db957600080fd5b505af115801562002dce573d6000803e3d6000fd5b5050505050505050505050505050565b610ed38062003c4883390190565b61140e8062004b1b83390190565b604051806102600160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200162002e996040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ebd62002f04565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002f1962002f4e565b815260200160008152600060209091015290565b604051806040016040528062002f4262002f4e565b81526020016000905290565b604051806040016040528062002f6362002f6d565b815260200162002eff5b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b60405290565b6040805190810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b604051601f8201601f1916810167ffffffffffffffff8111828210171562003020576200302062002f8b565b604052919050565b600067ffffffffffffffff82111562003045576200304562002f8b565b5060051b60200190565b6001600160a01b03811681146200306557600080fd5b50565b600060208083850312156200307c57600080fd5b823567ffffffffffffffff8111156200309457600080fd5b8301601f81018513620030a657600080fd5b8035620030bd620030b78262003028565b62002ff4565b81815260059190911b82018301908381019087831115620030dd57600080fd5b928401925b8284101562003108578335620030f8816200304f565b82529284019290840190620030e2565b979650505050505050565b6000602082840312156200312657600080fd5b815162003133816200304f565b9392505050565b6000815180845260005b81811015620031625760208185018101518683018201520162003144565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b83811015620031b45781518752958201959082019060010162003196565b509495945050505050565b80518260005b6002811015620031e6578251825260209283019290910190600101620031c5565b5050506020808201516040840160005b60028110156200321f57825167ffffffffffffffff1682529183019190830190600101620031f6565b505050505050565b634e487b7160e01b600052602160045260246000fd5b600381106200325c57634e487b7160e01b600052602160045260246000fd5b9052565b6200326d828251620031bf565b60208101516200328160808401826200323d565b506040015160a09190910152565b805167ffffffffffffffff16825260006103a06020830151620032bd60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151620032ed60808601826001600160a01b03169052565b5060a08301516200330960a08601826001600160a01b03169052565b5060c083015160c085015260e08301518160e08601526200332d828601826200313a565b91505061010080840151858303828701526200334a838262003182565b6101208681015180518983015260208101516101408a015260408101516101608a015260608101516101808a01529194509250905050506101408301516101a0818187015261016085015191506101c0828188015261018086015192506101e083818901528287015193506102009250620033c88389018562003260565b908601516102c08801528501516001600160a01b03166102e087015284015160ff166103008601525061022083015167ffffffffffffffff908116610320860152610240840151805182166103408701526020810151821661036087015260408101519091166103808601525b509392505050565b60208152600062001f6c60208301846200328f565b60006101406001600160a01b03808e16845267ffffffffffffffff8d166020850152808c1660408501528a60608501528960808501528860a085015280881660c085015280871660e08501525060ff851661010084015280610120840152620034be8184018562003182565b9d9c50505050505050505050505050565b6000610140808352620034e5818401866200328f565b9150506001600160a01b03835116602083015260208301516200351360408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e08301516101006200359a818501836001600160a01b03169052565b8401516001600160a01b038116610120850152905062003435565b634e487b7160e01b600052603260045260246000fd5b80518015158114620035dc57600080fd5b919050565b600060208284031215620035f457600080fd5b62001f6c82620035cb565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620036495762003649620035ff565b5060010190565b600081518084526020808501945080840160005b83811015620031b45781516001600160a01b03168752958201959082019060010162003664565b604081526000620036a0604083018562003650565b82810360208481019190915284518083528582019282019060005b81811015620036db578451151583529383019391830191600101620036bb565b5090979650505050505050565b805167ffffffffffffffff81168114620035dc57600080fd5b6000602082840312156200371457600080fd5b62001f6c82620036e8565b600060a082840312156200373257600080fd5b60405160a0810181811067ffffffffffffffff8211171562003758576200375862002f8b565b604052825181526200376d60208401620036e8565b60208201526200378060408401620036e8565b60408201526200379360608401620036e8565b6060820152620037a660808401620035cb565b60808201529392505050565b60208152600062001f6c602083018462003650565b67ffffffffffffffff828116828216039080821115620037eb57620037eb620035ff565b5092915050565b600067ffffffffffffffff808316818103620038125762003812620035ff565b6001019392505050565b600061018082840312156200383057600080fd5b6200383a62002fa1565b8251815260208301516020820152604083015160408201526200386060608401620036e8565b60608201526200387360808401620036e8565b60808201526200388660a08401620036e8565b60a08201526200389960c08401620036e8565b60c0820152620038ac60e08401620036e8565b60e0820152610100620038c1818501620036e8565b90820152610120620038d5848201620036e8565b90820152610140620038e9848201620036e8565b90820152610160928301519281019290925250919050565b600082601f8301126200391357600080fd5b6200391d62002fce565b8060408401858111156200393057600080fd5b845b8181101562003955576200394681620036e8565b84526020938401930162003932565b509095945050505050565b805160038110620035dc57600080fd5b60008082840360c08112156200398557600080fd5b60a08112156200399457600080fd5b6200399e62002fce565b6080821215620039ad57600080fd5b620039b762002fce565b915085601f860112620039c957600080fd5b620039d362002fce565b806040870188811115620039e657600080fd5b875b8181101562003a02578051845260209384019301620039e8565b5081855262003a12898262003901565b602086015250505081815262003a2b6080860162003960565b602082015260a094909401519395939450505050565b600060c08201905062003a56828551620031bf565b602084015162003a6a60808401826200323d565b508260a08301529392505050565b60006020828403121562003a8b57600080fd5b5051919050565b6000602080838503121562003aa657600080fd5b825167ffffffffffffffff81111562003abe57600080fd5b8301601f8101851362003ad057600080fd5b805162003ae1620030b78262003028565b81815260059190911b8201830190838101908783111562003b0157600080fd5b928401925b82841015620031085783518252928401929084019062003b06565b6060810162001f6f8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003b8160608301846200313a565b95945050505050565b6000806000806080858703121562003ba157600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b60008262003be95762003be962003bc1565b500690565b60008262003c005762003c0062003bc1565b500490565b8082018082111562001f6f5762001f6f620035ff565b815181526020808301519082015260408083015190820152606080830151908201526080810162001f6f56fe608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564608060405234801561001057600080fd5b506113ee806100206000396000f3fe6080604052600436106100225760003560e01c8063d384644b1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d792919061113d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e7e6aa70000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461132b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a661134c565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61132b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff61134c565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e61132b565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d146104585761045861134c565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610648838360405180606001604052806027815260200161139260279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf9190611362565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c919061137e565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b604051610260810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103a08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008084013583811115610e7357600080fd5b610e7f8a828701610a82565b8284015250506101209150610e9688838501610b02565b828201526101a0915081830135848201526101c09350838301356101608201526101e080840135610180830152610200610ed28a828701610bce565b848401526102c085013586840152610eed6102e086016109fb565b82840152610efe6103008601610c7e565b9083015250610f1061032084016109e3565b610220820152610f24886103408501610c8f565b61024082015280955050505050610f3e8460208501610cde565b90509250929050565b60005b83811015610f62578181015183820152602001610f4a565b50506000910152565b60008151808452610f83816020860160208601610f47565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b60038110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b600281101561101b578251825260209283019290910190600101610ffc565b505050602090810151906040840160005b600281101561105357835167ffffffffffffffff168252928201929082019060010161102c565b505082015190506110676080840182610fd2565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110b660608401826001600160a01b03169052565b5060808101516110d160808401826001600160a01b03169052565b5060a08101516110ec60a08401826001600160a01b03169052565b5060c081015161110760c08401826001600160a01b03169052565b5060e081015161112260e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b600061014080835261115b818401865167ffffffffffffffff169052565b6020850151610160611177818601836001600160a01b03169052565b604087015191506101808281870152606088015192506101a08381880152608089015193506101c06111b3818901866001600160a01b03169052565b60a08a015194506101e06111d1818a01876001600160a01b03169052565b60c08b0151955061020086818b015260e08c015196506102206103a0818c01526111ff6104e08c0189610f6b565b97506101008d01516102407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301818e015261123d8a83610f97565b99506101208f015191506112766102608e0183805182526020810151602083015260408101516040830152606081015160608301525050565b998e01516102e08d0152878e01516103008d0152868e01516103208d0152858e0151996112a76103408e018c610ff4565b948e01516104008d015250918c01516001600160a01b03166104208b01528b015160ff166104408a01528a015167ffffffffffffffff9081166104608a0152908a0151805182166104808a0152602081015182166104a08a015260408101519091166104c0890152945061131a92505050565b915061082490506020830184611075565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251611374818460208701610f47565b9190910192915050565b6020815260006106486020830184610f6b56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203bd7e50a8d8b387e26bd33809f5e06ba6f73a7c0c834d9cabd9c4f72c6ccf5ac64736f6c63430008110033a2646970667358221220788bded21774b9c5cda5ac48a85cd30bed023800bc90a282aa276e37e8cf988c64736f6c63430008110033",
|
855
|
+
"bytecode": "0x6105806040523480156200001257600080fd5b506040516200758f3803806200758f833981016040819052620000359162000718565b83516001600160a01b039081166101005260208086015182166101205260408087015183166101405260608088015184166101605260808089015185166101805260a089015185166101a05260c089015185166101c05260e089015185166103a052875185166103c0529287015184166103e05286820151841661040052860151831661042052908501519091166104405251620000d3906200026d565b604051809103906000f080158015620000f0573d6000803e3d6000fd5b506001600160a01b0390811661046052825181166104805260208084015182166104a05260408085015183166104c05260608086015184166104e05260808087015185166105005260a08088015186166105205260c08089015187166105405260e0808a01518816610560529188015161026052870151610280528601516001600160401b039081166102a052865181166101e0529386015190931661020052848201519093166102205291830151610240528201519051620001b3906200027b565b620001bf91906200083f565b604051809103906000f080158015620001dc573d6000803e3d6000fd5b506001600160a01b03166103005261010081015115156102c05261012081015160805261014081015160a05261016081015160c05261018081015160ff1660e0526101a08101516001600160401b039081166102e0526101c08201511515610320526101e0909101805160200151821661034052805151821661036052516040015116610380525062000885915050565b610a2d80620068c283390190565b6102a080620072ef83390190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715620002c557620002c562000289565b60405290565b60405161020081016001600160401b0381118282101715620002c557620002c562000289565b6001600160a01b03811681146200030757600080fd5b50565b80516200031781620002f1565b919050565b600060a082840312156200032f57600080fd5b60405160a081016001600160401b038111828210171562000354576200035462000289565b806040525080915082516200036981620002f1565b815260208301516200037b81620002f1565b602082015260408301516200039081620002f1565b60408201526060830151620003a581620002f1565b60608201526080830151620003ba81620002f1565b6080919091015292915050565b60006101008284031215620003db57600080fd5b620003e56200029f565b90508151620003f481620002f1565b815260208201516200040681620002f1565b602082015262000419604083016200030a565b60408201526200042c606083016200030a565b60608201526200043f608083016200030a565b60808201526200045260a083016200030a565b60a08201526200046560c083016200030a565b60c08201526200047860e083016200030a565b60e082015292915050565b80516001600160401b03811681146200031757600080fd5b600082601f830112620004ad57600080fd5b815160206001600160401b0380831115620004cc57620004cc62000289565b8260051b604051601f19603f83011681018181108482111715620004f457620004f462000289565b6040529384528581018301938381019250878511156200051357600080fd5b83870191505b84821015620005345781518352918301919083019062000519565b979650505050505050565b805180151581146200031757600080fd5b805160ff811681146200031757600080fd5b6000606082840312156200057557600080fd5b604051606081016001600160401b03811182821017156200059a576200059a62000289565b604052905080620005ab8362000483565b8152620005bb6020840162000483565b6020820152620005ce6040840162000483565b60408201525092915050565b60006102408284031215620005ee57600080fd5b620005f8620002cb565b9050620006058262000483565b8152620006156020830162000483565b602082015262000628604083016200030a565b60408201526060828101519082015260808201516001600160401b038111156200065157600080fd5b6200065f848285016200049b565b60808301525060a082015160a082015260c082015160c08201526200068760e0830162000483565b60e08201526101006200069c8184016200053f565b90820152610120828101519082015261014080830151908201526101608083015190820152610180620006d181840162000550565b908201526101a0620006e583820162000483565b908201526101c0620006f98382016200053f565b908201526101e06200070e8484830162000562565b9082015292915050565b6000806000808486036102c08112156200073157600080fd5b610100808212156200074257600080fd5b6200074c6200029f565b915086516200075b81620002f1565b82526200076b602088016200030a565b60208301526200077e604088016200030a565b604083015262000791606088016200030a565b6060830152620007a4608088016200030a565b6080830152620007b760a088016200030a565b60a0830152620007ca60c088016200030a565b60c0830152620007dd60e088016200030a565b60e0830152819550620007f3888289016200031c565b9450505062000807866101a08701620003c7565b6102a08601519092506001600160401b038111156200082557600080fd5b6200083387828801620005da565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b8181101562000879578351835292840192918401916001016200085b565b50909695505050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051615ca262000c20600039600081816104480152610b4a0152600081816103750152610ce80152600081816105580152610d1701526000818161086501526123db015260008181610815015261229f01526000818161068301526121d801526000818161083d0152818161259a0152612750015260008181610905015261206f01526000818161088d01528181611ac50152611b8f01526000818161058001526122010152600081816104ff0152818161256a015261277801526000818161053001526122c90152600081816103de01528181610b6b01526120980152600081816103b6015261240501526000818161073c0152610e5b015260008181610955015261262601526000818161065b01526125c60152600081816108dd01526125f601526000818161092d015261254301526000818161079d0152611ea70152600081816109940152611ff20152600081816107640152818161126301526112b00152600081816105a80152611e7701526000818161033a0152611e510152600081816106ab0152611e16015260008181610a0c0152611d280152600081816104980152611cf90152600081816106fb0152610e3a0152600081816104060152611cc90152600081816107c501528181610c4c01526121af01526000818161047001528181610c7b015281816123b201526124660152600081816107ed01528181610caa01528181612276015261232a0152600081816108b501528181610c1d01528181612522015281816127df015281816128c501526129670152600081816109bc01528181610bee01528181612046015261212e0152600081816106d301528181610d460152818161109d0152818161132101528181611579015281816115f0015281816116e80152818161179c015281816118a701528181611956015281816119850152611d4e01526000818161063301528181610e930152611de70152600081816105d00152611fc90152600081816109e40152611f870152600081816104c00152611f6101526000818161060b0152611f3b0152615ca26000f3fe60806040523480156200001157600080fd5b50600436106200032f5760003560e01c80638765240f11620001b1578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a214620009b6578063fa28742014620009de578063faf5625f1462000a0657600080fd5b8063eb657a4e146200094f578063ebe03a931462000977578063ec4f74ce146200098e57600080fd5b8063d49d518111620000d8578063d49d518114620008d7578063dae7cb8b14620008ff578063e8180c29146200092757600080fd5b8063cc8089bb1462000887578063d384cb9514620008af57600080fd5b8063b5e00c3f116200015f578063c21c42331162000136578063c21c4233146200080f578063c519d1511462000837578063c897f55e146200085f57600080fd5b8063b5e00c3f1462000797578063b701069714620007bf578063be41b36714620007e757600080fd5b8063999f20db1162000194578063999f20db146200071d5780639f9854e51462000736578063b38d57f0146200075e57600080fd5b80638765240f14620006cd57806391ddb28514620006f557600080fd5b8063304b907111620002795780635d9e24441162000227578063785ffb3711620001fe578063785ffb371462000655578063817cd312146200067d57806385e1f4d014620006a557600080fd5b80635d9e244414620005ca578063609fb503146200060557806364f4992a146200062d57600080fd5b80634692de5d116200025c5780634692de5d14620005525780634b2f51ef146200057a5780634ceccfe514620005a257600080fd5b8063304b907114620005215780633c2b7840146200052a57600080fd5b806310a662e211620002e35780631ccc2cd111620002ba5780631ccc2cd114620004ba57806328fb228c14620004e25780632cfb7ca314620004f957600080fd5b806310a662e214620004425780631b142ea7146200046a5780631c39b672146200049257600080fd5b80630787484b11620003185780630787484b14620003b05780630a54257d14620003d85780631047fc52146200040057600080fd5b80623c78fb1462000334578062f9731e146200036f575b600080fd5b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b62000397620004f336600462002bc0565b62000a2e565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c600c81565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620005f27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000366565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200072e36600462002bef565b62000aa0565b005b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200098836600462002cf9565b62000b2e565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6000808260405160200162000a4591815260200190565b60405160208183030381529060405280519060200120905062000a96816040518060200162000a7490620029e2565b6020820181038252601f19601f820116604052508051906020012086620014ef565b9150505b92915050565b6000836001600160a01b03163b11801562000ad75750826001600160a01b031662000acc838362000a2e565b6001600160a01b0316145b62000b295760405162461bcd60e51b815260206004820152600d60248201527f414444525f4d49534d415443480000000000000000000000000000000000000060448201526064015b60405180910390fd5b505050565b62000b3862001577565b600062000b4462001948565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000b9890620029f0565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000bdb573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000da3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dc9919062002da4565b6001600160a01b0316815250905060008360c0015160405160200162000df191815260200190565b604051602081830303815290604052805190602001209050600062000e1b308660c0015162000a2e565b905062000e28816200202f565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961018001518a6101a001518b6101c001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61024001518f61014001516040518b63ffffffff1660e01b815260040162000ee59a9998979695949392919062002dc4565b600060405180830381600087803b15801562000f0057600080fd5b505af115801562000f15573d6000803e3d6000fd5b5050505060008260405162000f2a90620029e2565b8190604051809103906000f590508015801562000f4b573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000fb15760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f414444520000000000000000000000604482015260640162000b20565b608086018051309091526040517fadfef6ac0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063adfef6ac9062001004908a9089906004016200308e565b600060405180830381600087803b1580156200101f57600080fd5b505af115801562001034573d6000803e3d6000fd5b50505050875160001462001261576000885167ffffffffffffffff81111562001061576200106162002c35565b6040519080825280602002602001820160405280156200108b578160200160208202803683370190505b50905060005b8951811015620011e1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b8381518110620010df57620010df620032b4565b60200260200101516040518263ffffffff1660e01b81526004016200111391906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011579190620032e0565b620011a55760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000b20565b6001828281518110620011bc57620011bc620032b4565b9115156020928302919091019091015280620011d88162003314565b91505062001091565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200122b908c9085906004016200338a565b600060405180830381600087803b1580156200124657600080fd5b505af11580156200125b573d6000803e3d6000fd5b50505050505b7f0000000000000000000000000000000000000000000000000000000000000000156200131f576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b1580156200130557600080fd5b505af11580156200131a573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200139c575060408051601f3d908101601f19168201909252620013999181019062002da4565b60015b156200142b576001600160a01b0381161562001429576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b1580156200140f57600080fd5b505af115801562001424573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200148857600080fd5b505af11580156200149d573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b604080517fff00000000000000000000000000000000000000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201869052605580830186905283518084039091018152607590920190925280519101205b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620015d357600080fd5b505af1158015620015e8573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200164d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001673919062003400565b905060328167ffffffffffffffff1611156200168d575060325b60005b8167ffffffffffffffff168167ffffffffffffffff16101562001944576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001738573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200175e919062002da4565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015620017e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180a91906200341e565b9050806080015180156200182a5750606081015167ffffffffffffffff16155b156200192c57604080516001808252818301909252600091602080830190803683370190505090508281600081518110620018695762001869620032b4565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c29890620018e0908490600401620034b1565b600060405180830381600087803b158015620018fb57600080fd5b505af115801562001910573d6000803e3d6000fd5b50505050600185620019239190620034c6565b9450506200193c565b826200193881620034f1565b9350505b505062001690565b5050565b62001952620029fe565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620019e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a08919062003400565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001a67573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a8d91906200351b565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001b15573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b3b91906200366f565b9150915062001b4962002b20565b8251815260208084015190820190600281111562001b6b5762001b6b62002f5e565b9081600281111562001b815762001b8162002f5e565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001bbf84620024e0565b856040518363ffffffff1660e01b815260040162001bdf92919062003740565b602060405180830381865afa15801562001bfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c23919062003777565b1462001c725760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000b20565b62001c9e6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160608101825260008082526020820181905291810191909152604051806102a001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001dab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd1919062003777565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001f04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001f2e919081019062003791565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b158015620020df57600080fd5b505af1158015620020f4573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b1580156200217557600080fd5b505af11580156200218a573d6000803e3d6000fd5b505050506200219862002520565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200224857600080fd5b505af11580156200225d573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200230f57600080fd5b505af115801562002324573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200238457600080fd5b505af115801562002399573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200244b57600080fd5b505af115801562002460573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620024c057600080fd5b505af1158015620024d5573d6000803e3d6000fd5b505050505050505050565b620024ea62002b49565b6040518060400160405280836000015181526020018360200151600281111562002518576200251862002f5e565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002731577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681525060405160240162002664919062003820565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152620026f79392919060040162003852565b600060405180830381600087803b1580156200271257600080fd5b505af115801562002727573d6000803e3d6000fd5b50505050620027d7565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b158015620027bd57600080fd5b505af1158015620027d2573d6000803e3d6000fd5b505050505b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa1580156200283c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002862919062003889565b93509350935093506000600c836200287b9190620038d6565b15620028a1576200288e600c84620038ed565b6200289b90600162003904565b620028ae565b620028ae600c84620038ed565b9050848111620028bf5784620028c1565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b81526004016200293191906200391a565b600060405180830381600087803b1580156200294c57600080fd5b505af115801562002961573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620029c157600080fd5b505af1158015620029d6573d6000803e3d6000fd5b50505050505050505050565b611453806200394783390190565b610ed38062004d9a83390190565b604051806102a00160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016060815260200160008152602001600067ffffffffffffffff1681526020016060815260200162002ab56040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ad962002b20565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002b3562002b6a565b815260200160008152600060209091015290565b604051806040016040528062002b5e62002b6a565b81526020016000905290565b604051806040016040528062002b7f62002b89565b815260200162002b1b5b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462002bbd57600080fd5b50565b6000806040838503121562002bd457600080fd5b823562002be18162002ba7565b946020939093013593505050565b60008060006060848603121562002c0557600080fd5b833562002c128162002ba7565b9250602084013562002c248162002ba7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b60405290565b6040805190810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002cca5762002cca62002c35565b604052919050565b600067ffffffffffffffff82111562002cef5762002cef62002c35565b5060051b60200190565b6000602080838503121562002d0d57600080fd5b823567ffffffffffffffff81111562002d2557600080fd5b8301601f8101851362002d3757600080fd5b803562002d4e62002d488262002cd2565b62002c9e565b81815260059190911b8201830190838101908783111562002d6e57600080fd5b928401925b8284101562002d9957833562002d898162002ba7565b8252928401929084019062002d73565b979650505050505050565b60006020828403121562002db757600080fd5b8151620015708162002ba7565b60006101408083016001600160a01b03808f168552602067ffffffffffffffff8f1681870152818e1660408701528c60608701528b60808701528a60a0870152818a1660c087015281891660e087015260ff8816610100870152836101208701528293508651915081835261016086019350808701925060005b8281101562002e5c5783518552938101939281019260010162002e3e565b50929f9e505050505050505050505050505050565b6000815180845260005b8181101562002e995760208185018101518683018201520162002e7b565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101562002eeb5781518752958201959082019060010162002ecd565b509495945050505050565b80518260005b600281101562002f1d57825182526020928301929091019060010162002efc565b5050506020808201516040840160005b600281101562002f5657825167ffffffffffffffff168252918301919083019060010162002f2d565b505050505050565b634e487b7160e01b600052602160045260246000fd5b6003811062002f9357634e487b7160e01b600052602160045260246000fd5b9052565b62002fa482825162002ef6565b602081015162002fb8608084018262002f74565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516200300860608401826001600160a01b03169052565b5060808101516200302460808401826001600160a01b03169052565b5060a08101516200304060a08401826001600160a01b03169052565b5060c08101516200305c60c08401826001600160a01b03169052565b5060e08101516200307860e08401826001600160a01b03169052565b50610100908101516001600160a01b0316910152565b6000610140808352620030ad818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c0620030fe818801856001600160a01b03169052565b60a089015193506101e06200311d818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526200314d6105208b018862002e71565b96506101008c015161024081818d01526101208e015191506102606200317e818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e0152620031be8a8c62002eb9565b9a506101608f01519950620031f86102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506200322c6103808e018b62002f97565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a01529450620032a29350505050565b50905062001570602083018462002fc6565b634e487b7160e01b600052603260045260246000fd5b80518015158114620032db57600080fd5b919050565b600060208284031215620032f357600080fd5b6200157082620032ca565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620033485762003348620032fe565b5060010190565b600081518084526020808501945080840160005b8381101562002eeb5781516001600160a01b03168752958201959082019060010162003363565b6040815260006200339f60408301856200334f565b82810360208481019190915284518083528582019282019060005b81811015620033da578451151583529383019391830191600101620033ba565b5090979650505050505050565b805167ffffffffffffffff81168114620032db57600080fd5b6000602082840312156200341357600080fd5b6200157082620033e7565b600060a082840312156200343157600080fd5b60405160a0810181811067ffffffffffffffff8211171562003457576200345762002c35565b604052825181526200346c60208401620033e7565b60208201526200347f60408401620033e7565b60408201526200349260608401620033e7565b6060820152620034a560808401620032ca565b60808201529392505050565b6020815260006200157060208301846200334f565b67ffffffffffffffff828116828216039080821115620034ea57620034ea620032fe565b5092915050565b600067ffffffffffffffff808316818103620035115762003511620032fe565b6001019392505050565b600061018082840312156200352f57600080fd5b6200353962002c4b565b8251815260208301516020820152604083015160408201526200355f60608401620033e7565b60608201526200357260808401620033e7565b60808201526200358560a08401620033e7565b60a08201526200359860c08401620033e7565b60c0820152620035ab60e08401620033e7565b60e0820152610100620035c0818501620033e7565b90820152610120620035d4848201620033e7565b90820152610140620035e8848201620033e7565b90820152610160928301519281019290925250919050565b600082601f8301126200361257600080fd5b6200361c62002c78565b8060408401858111156200362f57600080fd5b845b8181101562003654576200364581620033e7565b84526020938401930162003631565b509095945050505050565b805160038110620032db57600080fd5b60008082840360c08112156200368457600080fd5b60a08112156200369357600080fd5b6200369d62002c78565b6080821215620036ac57600080fd5b620036b662002c78565b915085601f860112620036c857600080fd5b620036d262002c78565b806040870188811115620036e557600080fd5b875b8181101562003701578051845260209384019301620036e7565b5081855262003711898262003600565b60208601525050508181526200372a608086016200365f565b602082015260a094909401519395939450505050565b600060c0820190506200375582855162002ef6565b602084015162003769608084018262002f74565b508260a08301529392505050565b6000602082840312156200378a57600080fd5b5051919050565b60006020808385031215620037a557600080fd5b825167ffffffffffffffff811115620037bd57600080fd5b8301601f81018513620037cf57600080fd5b8051620037e062002d488262002cd2565b81815260059190911b820183019083810190878311156200380057600080fd5b928401925b8284101562002d995783518252928401929084019062003805565b6060810162000a9a8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003880606083018462002e71565b95945050505050565b60008060008060808587031215620038a057600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b600082620038e857620038e8620038c0565b500690565b600082620038ff57620038ff620038c0565b500490565b8082018082111562000a9a5762000a9a620032fe565b815181526020808301519082015260408083015190820152606080830151908201526080810162000a9a56fe608060405234801561001057600080fd5b50611433806100206000396000f3fe6080604052600436106100225760003560e01c8063adfef6ac1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d7929190611158565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ee5ef0c0000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104611370565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a6611391565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611370565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff611391565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e611370565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d1461045857610458611391565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061064883836040518060600160405280602781526020016113d760279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf91906113a7565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c91906113c3565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b6040516102a0810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103e08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008381013590820152610120610e788185016109e3565b908201528284013582811115610e8d57600080fd5b610e9989828601610a82565b85830152506101609350610eaf88858501610b02565b848201526101e09350838301356101808201526102009150818301356101a0820152610220808401356101c0830152610240610eed8a828701610bce565b8684015261030085013584840152610f0861032086016109fb565b82840152610f196103408601610c7e565b9083015250610f2b61036084016109e3565b610260820152610f3f886103808501610c8f565b61028082015280955050505050610f598460208501610cde565b90509250929050565b60005b83811015610f7d578181015183820152602001610f65565b50506000910152565b60008151808452610f9e816020860160208601610f62565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6003811061100b57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b6002811015611036578251825260209283019290910190600101611017565b505050602090810151906040840160005b600281101561106e57835167ffffffffffffffff1682529282019290820190600101611047565b505082015190506110826080840182610fed565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110d160608401826001600160a01b03169052565b5060808101516110ec60808401826001600160a01b03169052565b5060a081015161110760a08401826001600160a01b03169052565b5060c081015161112260c08401826001600160a01b03169052565b5060e081015161113d60e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b6000610140808352611176818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c06111c6818801856001600160a01b03169052565b60a089015193506101e06111e4818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526112126105208b0188610f86565b96506101008c015161024081818d01526101208e01519150610260611242818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e01526112808a8c610fb2565b9a506101608f015199506112b96102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506112eb6103808e018b61100f565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a015294506113609350505050565b5090506108246020830184611090565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516113b9818460208701610f62565b9190910192915050565b6020815260006106486020830184610f8656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c50f3bd10cc10c9d6a7e3c77a603ea076a398bfabf2598ec9e1d71302b8c13b364736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e2e928ef4546eee17482616f7037c9b105095b17ba3f206eac14d79f56342fab64736f6c63430008110033608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea264697066735822122003e908b2ad90a8679efc2624edf7a504089600109aba032cab81af5798ba4d5b64736f6c63430008110033608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220fcc832f04c9e38c8960c7609bb3c40492b00e6ba0c04f3665f38d872910fdb9064736f6c63430008110033",
|
856
|
+
"deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200032f5760003560e01c80638765240f11620001b1578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a214620009b6578063fa28742014620009de578063faf5625f1462000a0657600080fd5b8063eb657a4e146200094f578063ebe03a931462000977578063ec4f74ce146200098e57600080fd5b8063d49d518111620000d8578063d49d518114620008d7578063dae7cb8b14620008ff578063e8180c29146200092757600080fd5b8063cc8089bb1462000887578063d384cb9514620008af57600080fd5b8063b5e00c3f116200015f578063c21c42331162000136578063c21c4233146200080f578063c519d1511462000837578063c897f55e146200085f57600080fd5b8063b5e00c3f1462000797578063b701069714620007bf578063be41b36714620007e757600080fd5b8063999f20db1162000194578063999f20db146200071d5780639f9854e51462000736578063b38d57f0146200075e57600080fd5b80638765240f14620006cd57806391ddb28514620006f557600080fd5b8063304b907111620002795780635d9e24441162000227578063785ffb3711620001fe578063785ffb371462000655578063817cd312146200067d57806385e1f4d014620006a557600080fd5b80635d9e244414620005ca578063609fb503146200060557806364f4992a146200062d57600080fd5b80634692de5d116200025c5780634692de5d14620005525780634b2f51ef146200057a5780634ceccfe514620005a257600080fd5b8063304b907114620005215780633c2b7840146200052a57600080fd5b806310a662e211620002e35780631ccc2cd111620002ba5780631ccc2cd114620004ba57806328fb228c14620004e25780632cfb7ca314620004f957600080fd5b806310a662e214620004425780631b142ea7146200046a5780631c39b672146200049257600080fd5b80630787484b11620003185780630787484b14620003b05780630a54257d14620003d85780631047fc52146200040057600080fd5b80623c78fb1462000334578062f9731e146200036f575b600080fd5b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b62000397620004f336600462002bc0565b62000a2e565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c600c81565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620005f27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000366565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200072e36600462002bef565b62000aa0565b005b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200098836600462002cf9565b62000b2e565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6000808260405160200162000a4591815260200190565b60405160208183030381529060405280519060200120905062000a96816040518060200162000a7490620029e2565b6020820181038252601f19601f820116604052508051906020012086620014ef565b9150505b92915050565b6000836001600160a01b03163b11801562000ad75750826001600160a01b031662000acc838362000a2e565b6001600160a01b0316145b62000b295760405162461bcd60e51b815260206004820152600d60248201527f414444525f4d49534d415443480000000000000000000000000000000000000060448201526064015b60405180910390fd5b505050565b62000b3862001577565b600062000b4462001948565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000b9890620029f0565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000bdb573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000da3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dc9919062002da4565b6001600160a01b0316815250905060008360c0015160405160200162000df191815260200190565b604051602081830303815290604052805190602001209050600062000e1b308660c0015162000a2e565b905062000e28816200202f565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961018001518a6101a001518b6101c001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61024001518f61014001516040518b63ffffffff1660e01b815260040162000ee59a9998979695949392919062002dc4565b600060405180830381600087803b15801562000f0057600080fd5b505af115801562000f15573d6000803e3d6000fd5b5050505060008260405162000f2a90620029e2565b8190604051809103906000f590508015801562000f4b573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000fb15760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f414444520000000000000000000000604482015260640162000b20565b608086018051309091526040517fadfef6ac0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063adfef6ac9062001004908a9089906004016200308e565b600060405180830381600087803b1580156200101f57600080fd5b505af115801562001034573d6000803e3d6000fd5b50505050875160001462001261576000885167ffffffffffffffff81111562001061576200106162002c35565b6040519080825280602002602001820160405280156200108b578160200160208202803683370190505b50905060005b8951811015620011e1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b8381518110620010df57620010df620032b4565b60200260200101516040518263ffffffff1660e01b81526004016200111391906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011579190620032e0565b620011a55760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000b20565b6001828281518110620011bc57620011bc620032b4565b9115156020928302919091019091015280620011d88162003314565b91505062001091565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200122b908c9085906004016200338a565b600060405180830381600087803b1580156200124657600080fd5b505af11580156200125b573d6000803e3d6000fd5b50505050505b7f0000000000000000000000000000000000000000000000000000000000000000156200131f576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b1580156200130557600080fd5b505af11580156200131a573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200139c575060408051601f3d908101601f19168201909252620013999181019062002da4565b60015b156200142b576001600160a01b0381161562001429576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b1580156200140f57600080fd5b505af115801562001424573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200148857600080fd5b505af11580156200149d573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b604080517fff00000000000000000000000000000000000000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201869052605580830186905283518084039091018152607590920190925280519101205b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620015d357600080fd5b505af1158015620015e8573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200164d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001673919062003400565b905060328167ffffffffffffffff1611156200168d575060325b60005b8167ffffffffffffffff168167ffffffffffffffff16101562001944576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001738573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200175e919062002da4565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015620017e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180a91906200341e565b9050806080015180156200182a5750606081015167ffffffffffffffff16155b156200192c57604080516001808252818301909252600091602080830190803683370190505090508281600081518110620018695762001869620032b4565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c29890620018e0908490600401620034b1565b600060405180830381600087803b158015620018fb57600080fd5b505af115801562001910573d6000803e3d6000fd5b50505050600185620019239190620034c6565b9450506200193c565b826200193881620034f1565b9350505b505062001690565b5050565b62001952620029fe565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620019e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a08919062003400565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001a67573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a8d91906200351b565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001b15573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b3b91906200366f565b9150915062001b4962002b20565b8251815260208084015190820190600281111562001b6b5762001b6b62002f5e565b9081600281111562001b815762001b8162002f5e565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001bbf84620024e0565b856040518363ffffffff1660e01b815260040162001bdf92919062003740565b602060405180830381865afa15801562001bfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c23919062003777565b1462001c725760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000b20565b62001c9e6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160608101825260008082526020820181905291810191909152604051806102a001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001dab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd1919062003777565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001f04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001f2e919081019062003791565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b158015620020df57600080fd5b505af1158015620020f4573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b1580156200217557600080fd5b505af11580156200218a573d6000803e3d6000fd5b505050506200219862002520565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200224857600080fd5b505af11580156200225d573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200230f57600080fd5b505af115801562002324573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200238457600080fd5b505af115801562002399573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200244b57600080fd5b505af115801562002460573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620024c057600080fd5b505af1158015620024d5573d6000803e3d6000fd5b505050505050505050565b620024ea62002b49565b6040518060400160405280836000015181526020018360200151600281111562002518576200251862002f5e565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002731577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681525060405160240162002664919062003820565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152620026f79392919060040162003852565b600060405180830381600087803b1580156200271257600080fd5b505af115801562002727573d6000803e3d6000fd5b50505050620027d7565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b158015620027bd57600080fd5b505af1158015620027d2573d6000803e3d6000fd5b505050505b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa1580156200283c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002862919062003889565b93509350935093506000600c836200287b9190620038d6565b15620028a1576200288e600c84620038ed565b6200289b90600162003904565b620028ae565b620028ae600c84620038ed565b9050848111620028bf5784620028c1565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b81526004016200293191906200391a565b600060405180830381600087803b1580156200294c57600080fd5b505af115801562002961573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620029c157600080fd5b505af1158015620029d6573d6000803e3d6000fd5b50505050505050505050565b611453806200394783390190565b610ed38062004d9a83390190565b604051806102a00160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016060815260200160008152602001600067ffffffffffffffff1681526020016060815260200162002ab56040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ad962002b20565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002b3562002b6a565b815260200160008152600060209091015290565b604051806040016040528062002b5e62002b6a565b81526020016000905290565b604051806040016040528062002b7f62002b89565b815260200162002b1b5b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462002bbd57600080fd5b50565b6000806040838503121562002bd457600080fd5b823562002be18162002ba7565b946020939093013593505050565b60008060006060848603121562002c0557600080fd5b833562002c128162002ba7565b9250602084013562002c248162002ba7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b60405290565b6040805190810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002cca5762002cca62002c35565b604052919050565b600067ffffffffffffffff82111562002cef5762002cef62002c35565b5060051b60200190565b6000602080838503121562002d0d57600080fd5b823567ffffffffffffffff81111562002d2557600080fd5b8301601f8101851362002d3757600080fd5b803562002d4e62002d488262002cd2565b62002c9e565b81815260059190911b8201830190838101908783111562002d6e57600080fd5b928401925b8284101562002d9957833562002d898162002ba7565b8252928401929084019062002d73565b979650505050505050565b60006020828403121562002db757600080fd5b8151620015708162002ba7565b60006101408083016001600160a01b03808f168552602067ffffffffffffffff8f1681870152818e1660408701528c60608701528b60808701528a60a0870152818a1660c087015281891660e087015260ff8816610100870152836101208701528293508651915081835261016086019350808701925060005b8281101562002e5c5783518552938101939281019260010162002e3e565b50929f9e505050505050505050505050505050565b6000815180845260005b8181101562002e995760208185018101518683018201520162002e7b565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101562002eeb5781518752958201959082019060010162002ecd565b509495945050505050565b80518260005b600281101562002f1d57825182526020928301929091019060010162002efc565b5050506020808201516040840160005b600281101562002f5657825167ffffffffffffffff168252918301919083019060010162002f2d565b505050505050565b634e487b7160e01b600052602160045260246000fd5b6003811062002f9357634e487b7160e01b600052602160045260246000fd5b9052565b62002fa482825162002ef6565b602081015162002fb8608084018262002f74565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516200300860608401826001600160a01b03169052565b5060808101516200302460808401826001600160a01b03169052565b5060a08101516200304060a08401826001600160a01b03169052565b5060c08101516200305c60c08401826001600160a01b03169052565b5060e08101516200307860e08401826001600160a01b03169052565b50610100908101516001600160a01b0316910152565b6000610140808352620030ad818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c0620030fe818801856001600160a01b03169052565b60a089015193506101e06200311d818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526200314d6105208b018862002e71565b96506101008c015161024081818d01526101208e015191506102606200317e818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e0152620031be8a8c62002eb9565b9a506101608f01519950620031f86102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506200322c6103808e018b62002f97565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a01529450620032a29350505050565b50905062001570602083018462002fc6565b634e487b7160e01b600052603260045260246000fd5b80518015158114620032db57600080fd5b919050565b600060208284031215620032f357600080fd5b6200157082620032ca565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620033485762003348620032fe565b5060010190565b600081518084526020808501945080840160005b8381101562002eeb5781516001600160a01b03168752958201959082019060010162003363565b6040815260006200339f60408301856200334f565b82810360208481019190915284518083528582019282019060005b81811015620033da578451151583529383019391830191600101620033ba565b5090979650505050505050565b805167ffffffffffffffff81168114620032db57600080fd5b6000602082840312156200341357600080fd5b6200157082620033e7565b600060a082840312156200343157600080fd5b60405160a0810181811067ffffffffffffffff8211171562003457576200345762002c35565b604052825181526200346c60208401620033e7565b60208201526200347f60408401620033e7565b60408201526200349260608401620033e7565b6060820152620034a560808401620032ca565b60808201529392505050565b6020815260006200157060208301846200334f565b67ffffffffffffffff828116828216039080821115620034ea57620034ea620032fe565b5092915050565b600067ffffffffffffffff808316818103620035115762003511620032fe565b6001019392505050565b600061018082840312156200352f57600080fd5b6200353962002c4b565b8251815260208301516020820152604083015160408201526200355f60608401620033e7565b60608201526200357260808401620033e7565b60808201526200358560a08401620033e7565b60a08201526200359860c08401620033e7565b60c0820152620035ab60e08401620033e7565b60e0820152610100620035c0818501620033e7565b90820152610120620035d4848201620033e7565b90820152610140620035e8848201620033e7565b90820152610160928301519281019290925250919050565b600082601f8301126200361257600080fd5b6200361c62002c78565b8060408401858111156200362f57600080fd5b845b8181101562003654576200364581620033e7565b84526020938401930162003631565b509095945050505050565b805160038110620032db57600080fd5b60008082840360c08112156200368457600080fd5b60a08112156200369357600080fd5b6200369d62002c78565b6080821215620036ac57600080fd5b620036b662002c78565b915085601f860112620036c857600080fd5b620036d262002c78565b806040870188811115620036e557600080fd5b875b8181101562003701578051845260209384019301620036e7565b5081855262003711898262003600565b60208601525050508181526200372a608086016200365f565b602082015260a094909401519395939450505050565b600060c0820190506200375582855162002ef6565b602084015162003769608084018262002f74565b508260a08301529392505050565b6000602082840312156200378a57600080fd5b5051919050565b60006020808385031215620037a557600080fd5b825167ffffffffffffffff811115620037bd57600080fd5b8301601f81018513620037cf57600080fd5b8051620037e062002d488262002cd2565b81815260059190911b820183019083810190878311156200380057600080fd5b928401925b8284101562002d995783518252928401929084019062003805565b6060810162000a9a8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003880606083018462002e71565b95945050505050565b60008060008060808587031215620038a057600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b600082620038e857620038e8620038c0565b500690565b600082620038ff57620038ff620038c0565b500490565b8082018082111562000a9a5762000a9a620032fe565b815181526020808301519082015260408083015190820152606080830151908201526080810162000a9a56fe608060405234801561001057600080fd5b50611433806100206000396000f3fe6080604052600436106100225760003560e01c8063adfef6ac1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d7929190611158565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ee5ef0c0000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104611370565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a6611391565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611370565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff611391565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e611370565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d1461045857610458611391565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061064883836040518060600160405280602781526020016113d760279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf91906113a7565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c91906113c3565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b6040516102a0810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103e08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008381013590820152610120610e788185016109e3565b908201528284013582811115610e8d57600080fd5b610e9989828601610a82565b85830152506101609350610eaf88858501610b02565b848201526101e09350838301356101808201526102009150818301356101a0820152610220808401356101c0830152610240610eed8a828701610bce565b8684015261030085013584840152610f0861032086016109fb565b82840152610f196103408601610c7e565b9083015250610f2b61036084016109e3565b610260820152610f3f886103808501610c8f565b61028082015280955050505050610f598460208501610cde565b90509250929050565b60005b83811015610f7d578181015183820152602001610f65565b50506000910152565b60008151808452610f9e816020860160208601610f62565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6003811061100b57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b6002811015611036578251825260209283019290910190600101611017565b505050602090810151906040840160005b600281101561106e57835167ffffffffffffffff1682529282019290820190600101611047565b505082015190506110826080840182610fed565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110d160608401826001600160a01b03169052565b5060808101516110ec60808401826001600160a01b03169052565b5060a081015161110760a08401826001600160a01b03169052565b5060c081015161112260c08401826001600160a01b03169052565b5060e081015161113d60e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b6000610140808352611176818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c06111c6818801856001600160a01b03169052565b60a089015193506101e06111e4818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526112126105208b0188610f86565b96506101008c015161024081818d01526101208e01519150610260611242818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e01526112808a8c610fb2565b9a506101608f015199506112b96102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506112eb6103808e018b61100f565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a015294506113609350505050565b5090506108246020830184611090565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516113b9818460208701610f62565b9190910192915050565b6020815260006106486020830184610f8656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c50f3bd10cc10c9d6a7e3c77a603ea076a398bfabf2598ec9e1d71302b8c13b364736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e2e928ef4546eee17482616f7037c9b105095b17ba3f206eac14d79f56342fab64736f6c63430008110033",
|
805
857
|
"linkReferences": {},
|
806
858
|
"deployedLinkReferences": {}
|
807
859
|
}
|