[ { "inputs": [ { "internalType": "address", "name": "_initialHolder", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationUsed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Burnt", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "source", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_requested", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_actual", "type": "uint256" } ], "name": "RoleUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "by", "type": "address" }, { "indexed": true, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "fromVal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toVal", "type": "uint256" } ], "name": "VotingPowerChanged", "type": "event" }, { "inputs": [], "name": "CANCEL_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DELEGATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_BURNS_ON_BEHALF", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_DELEGATIONS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_DELEGATIONS_ON_BEHALF", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_EIP2612_PERMITS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_EIP3009_RECEPTIONS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_EIP3009_TRANSFERS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_ERC1363_APPROVALS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_ERC1363_TRANSFERS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_OWN_BURNS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_TRANSFERS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_TRANSFERS_ON_BEHALF", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEATURE_UNSAFE_TRANSFERS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RECEIVE_WITH_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_ACCESS_MANAGER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_ERC20_RECEIVER", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_ERC20_SENDER", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_TOKEN_CREATOR", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_TOKEN_DESTROYER", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOKEN_UID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TRANSFER_WITH_AUTHORIZATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "remaining", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "approveAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "approveAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_authorizer", "type": "address" }, { "internalType": "bytes32", "name": "_nonce", "type": "bytes32" } ], "name": "authorizationState", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_authorizer", "type": "address" }, { "internalType": "bytes32", "name": "_nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "cancelAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "bytes32", "name": "_nonce", "type": "bytes32" }, { "internalType": "uint256", "name": "_exp", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "entireSupplyHistory", "outputs": [ { "components": [ { "internalType": "uint64", "name": "k", "type": "uint64" }, { "internalType": "uint192", "name": "v", "type": "uint192" } ], "internalType": "struct AliERC20v2.KV[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "desired", "type": "uint256" } ], "name": "evaluateBy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "features", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "isFeatureEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "isOperatorInRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "isSenderInRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_exp", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "_validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "_nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "receiveWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_blockNum", "type": "uint256" } ], "name": "totalSupplyAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "totalSupplyHistory", "outputs": [ { "internalType": "uint64", "name": "k", "type": "uint64" }, { "internalType": "uint192", "name": "v", "type": "uint192" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupplyHistoryLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transferAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "transferAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "transferFromAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transferFromAndCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "_validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "_nonce", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "transferWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "unsafeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mask", "type": "uint256" } ], "name": "updateFeatures", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "role", "type": "uint256" } ], "name": "updateRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userRoles", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "votingDelegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_of", "type": "address" }, { "internalType": "uint256", "name": "_blockNum", "type": "uint256" } ], "name": "votingPowerAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "votingPowerHistory", "outputs": [ { "internalType": "uint64", "name": "k", "type": "uint64" }, { "internalType": "uint192", "name": "v", "type": "uint192" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_of", "type": "address" } ], "name": "votingPowerHistoryLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_of", "type": "address" } ], "name": "votingPowerHistoryOf", "outputs": [ { "components": [ { "internalType": "uint64", "name": "k", "type": "uint64" }, { "internalType": "uint192", "name": "v", "type": "uint192" } ], "internalType": "struct AliERC20v2.KV[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_of", "type": "address" } ], "name": "votingPowerOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60a06040523480156200001157600080fd5b50604051620040a9380380620040a983398101604081905262000034916200074f565b33600090815260208190526040902060001990556001600160a01b038116620000b25760405162461bcd60e51b815260206004820152602560248201527f5f696e697469616c486f6c646572206e6f742073657420287a65726f20616464604482015264726573732960d81b60648201526084015b60405180910390fd5b604080518082018252600a81526920b634a2a92199183b1960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f5572cb272f139fecace047c0fa6b0771cef3e004fc181b85045ff215e5fcaa3c818401524660608201523060808083019190915283518083038201815260a0909201909352805191012090526200015f816b204fce5e3e2502611000000062000166565b50620007db565b620001746201000062000417565b620001b25760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401620000a9565b6001600160a01b038216620001f95760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401620000a9565b60015481810111620002585760405162461bcd60e51b815260206004820152602160248201527f7a65726f2076616c7565206f722061726974686d65746963206f766572666c6f6044820152607760f81b6064820152608401620000a9565b6001546001600160c01b0390620002719083906200077a565b1115620002c15760405162461bcd60e51b815260206004820152601f60248201527f746f74616c20737570706c79206f766572666c6f77202875696e7431393229006044820152606401620000a9565b8060016000828254620002d591906200077a565b90915550506001600160a01b03821660009081526002602052604081208054839290620003049084906200077a565b90915550620003239050600562001f9b6200042b60201b178362000440565b50506001600160a01b038083166000908152600360205260408120546200034f923392911684620005c3565b6040518181526001600160a01b0383169033907f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f09060200160405180910390a36040518181526001600160a01b0383169060009033907fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f9060200160405180910390a46040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006200042533836200071e565b92915050565b60006200043982846200077a565b9392505050565b82546000908190156200049957845485906200045f9060019062000795565b81548110620004725762000472620007c5565b6000918252602090912001546801000000000000000090046001600160c01b03166200049c565b60005b6001600160c01b03169150620004b382848660201c565b855490915015801590620005005750845443908690620004d69060019062000795565b81548110620004e957620004e9620007c5565b6000918252602090912001546001600160401b0316145b1562000564578454819086906200051a9060019062000795565b815481106200052d576200052d620007c5565b9060005260206000200160000160086101000a8154816001600160c01b0302191690836001600160c01b03160217905550620005bb565b604080518082019091526001600160401b0343811682526001600160c01b0380841660208085019182528954600181018b5560008b8152919091209451915190921668010000000000000000029216919091179101555b935093915050565b816001600160a01b0316836001600160a01b03161480620005e2575080155b15620005ee5762000718565b6001600160a01b0383161562000683576001600160a01b03831660009081526004602090815260408220919081906200063590849062000741901b62001fa7178662000440565b91509150856001600160a01b0316876001600160a01b031660008051602062004089833981519152848460405162000677929190918252602082015260400190565b60405180910390a35050505b6001600160a01b0382161562000718576001600160a01b0382166000908152600460209081526040822091908190620006ca9084906200042b901b62001f9b178662000440565b91509150846001600160a01b0316876001600160a01b03166000805160206200408983398151915284846040516200070c929190918252602082015260400190565b60405180910390a35050505b50505050565b6001600160a01b0382166000908152602081905260408120548216821462000439565b600062000439828462000795565b6000602082840312156200076257600080fd5b81516001600160a01b03811681146200043957600080fd5b60008219821115620007905762000790620007af565b500190565b600082821015620007aa57620007aa620007af565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60805161388b620007fe600039600081816105d9015261296b015261388b6000f3fe608060405234801561001057600080fd5b50600436106104335760003560e01c80637fd491b011610236578063c1d34b891161013b578063e3ee160e116100c3578063ef55bec611610087578063ef55bec614610a6b578063f63c2f8214610a7e578063f822d5aa14610a86578063f9cf927114610a99578063fcc2c07814610aac57600080fd5b8063e3ee160e146109e4578063e62cac76146109f7578063e7a324dc14610a01578063e94a010214610a28578063e98f5ba714610a6157600080fd5b8063d505accf1161010a578063d505accf1461094b578063d5bb7f671461095e578063d8fbe99414610971578063d916948714610984578063dd62ed3e146109ab57600080fd5b8063c1d34b8914610908578063c5ff500c1461091b578063c688d69314610925578063cae9ca511461093857600080fd5b8063a0cc6a68116101be578063ae682e2e1161018d578063ae682e2e146108c7578063b66dbdc5146108d2578063b88d4fde146108da578063bcc3f3bd146108ed578063c0d6568d1461090057600080fd5b8063a0cc6a6814610867578063a457c2d71461088e578063a9059cbb146108a1578063ae5b102e146108b457600080fd5b80638f6fba8c116102055780638f6fba8c1461080457806394f4f9301461080c57806395d89b411461081f578063981b24d0146108415780639dc29fac1461085457600080fd5b80637fd491b01461079757806387793f3e146107aa5780638a114e13146107d35780638d4e57e6146107fa57600080fd5b8063395093511161033c57806364cb8b96116102c4578063725f362611610293578063725f36261461070a57806374d5e1001461071d5780637815ef0c1461073d5780637ecebe00146107505780637f2eecc31461077057600080fd5b806364cb8b9614610689578063653de6201461069e5780636641d9a0146106a757806370a08231146106e157600080fd5b80634721272d1161030b5780634721272d1461063e57806359b961ef146106475780635a049a701461065a5780635c19a95c1461066d5780635e2dc2b71461068057600080fd5b806339509351146105fb5780633e9c5f7e1461060e5780634000aea01461061657806340c10f191461062957600080fd5b80631e0fa234116103bf5780632d4c39ea1161038e5780632d4c39ea1461057857806330adf81f14610580578063313ce567146105a75780633177029f146105c15780633644e515146105d457600080fd5b80631e0fa234146104e857806320606b701461052957806323b872dd146105505780632b5214161461056357600080fd5b8063136d035f11610406578063136d035f1461049b57806313873a24146104b957806318160ddd146104c15780631993f554146104d85780631a0b04ea146104e057600080fd5b806301ffc9a71461043857806306fdde0314610460578063095ea7b3146104755780631296ee6214610488575b600080fd5b61044b61044636600461351c565b610abf565b60405190151581526020015b60405180910390f35b610468610b47565b60405161045791906136bd565b61044b6104833660046133c3565b610b63565b61044b6104963660046133c3565b610b79565b6104a461080081565b60405163ffffffff9091168152602001610457565b6104a4608081565b6104ca60015481565b604051908152602001610457565b6104a4600481565b6104a4600881565b6105116104f63660046131ea565b6003602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610457565b6104ca7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b61044b61055e366004613238565b610b8d565b306000908152602081905260409020546104ca565b6104a4604081565b6104ca7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6105af601281565b60405160ff9091168152602001610457565b61044b6105cf3660046133c3565b610bfa565b6104ca7f000000000000000000000000000000000000000000000000000000000000000081565b61044b6106093660046133c3565b610c16565b6104a4602081565b61044b610624366004613493565b610cc2565b61063c6106373660046133c3565b610cd0565b005b6104a461020081565b61063c610655366004613238565b610f33565b61063c610668366004613445565b610f44565b61063c61067b3660046131ea565b610fef565b6104a461040081565b610691611052565b6040516104579190613620565b6104a461010081565b6106ba6106b5366004613556565b6110ce565b604080516001600160401b0390931683526001600160c01b03909116602083015201610457565b6104ca6106ef3660046131ea565b6001600160a01b031660009081526002602052604090205490565b61044b610718366004613556565b611109565b6104ca61072b3660046131ea565b60006020819052908152604090205481565b61069161074b3660046131ea565b611122565b6104ca61075e3660046131ea565b60066020526000908152604090205481565b6104ca7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b6106ba6107a53660046133c3565b6111b4565b6104ca6107b83660046131ea565b6001600160a01b031660009081526004602052604090205490565b6104ca7f8d4fb97da97378ef7d0ad259aec651f42bd22c200159282baa58486bb390286b81565b6104a46201000081565b6104a4600281565b6104ca61081a3660046133c3565b6111fd565b61046860405180604001604052806003815260200162414c4960e81b81525081565b6104ca61084f366004613556565b611266565b61063c6108623660046133c3565b6112b8565b6104ca7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b61044b61089c3660046133c3565b611713565b61044b6108af3660046133c3565b6117f0565b61063c6108c23660046133c3565b6117fd565b6104ca600160ff1b81565b6005546104ca565b61044b6108e8366004613274565b6118a0565b6104ca6108fb3660046131ea565b6118c6565b6104a4600181565b61044b610916366004613274565b611939565b6104a46204000081565b61044b6109333660046133c3565b6119aa565b61044b610946366004613493565b6119cc565b61063c610959366004613359565b611a3b565b61063c61096c366004613556565b611b8a565b61044b61097f366004613238565b611b94565b6104ca7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b6104ca6109b9366004613205565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b61063c6109f23660046132db565b611bb1565b6104a46202000081565b6104ca7fff41620983935eb4d4a3c7384a066ca8c1d10cef9a5eca9eb97ca735cd14a75581565b61044b610a363660046133c3565b6001600160a01b03919091166000908152600760209081526040808320938352929052205460ff1690565b6104a46208000081565b61063c610a793660046132db565b611d0c565b6104a4601081565b6104ca610a943660046134e9565b611e6b565b61063c610aa73660046133ed565b611e96565b61044b610aba366004613556565b611f8f565b60006001600160e01b031982166301ffc9a760e01b1480610af057506001600160e01b031982166336372b0760e01b145b80610b0b57506001600160e01b0319821663b0202a1160e01b145b80610b2657506001600160e01b03198216634ec7fbed60e11b145b80610b4157506001600160e01b03198216635ffa99dd60e11b145b92915050565b6040518060600160405280602481526020016138126024913981565b6000610b70338484611fb3565b50600192915050565b6000610b86338484611b94565b9392505050565b6000610b996004611109565b80610bac5750610bac83620400006119aa565b80610bbe5750610bbe62080000611f8f565b15610bd357610bce848484610f33565b610bf0565b610bee848484604051806020016040528060008152506118a0565b505b5060019392505050565b6000610b868383604051806020016040528060008152506119cc565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018110610cac5760405162461bcd60e51b815260206004820152603360248201527f7a65726f2076616c756520617070726f76616c20696e637265617365206f722060448201527261726974686d65746963206f766572666c6f7760681b60648201526084015b60405180910390fd5b610cba84610483858461374d565b949350505050565b6000610cba33858585611939565b610cdc62010000611f8f565b610cf85760405162461bcd60e51b8152600401610ca3906136fb565b6001600160a01b038216610d3d5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610ca3565b60015481810111610d9a5760405162461bcd60e51b815260206004820152602160248201527f7a65726f2076616c7565206f722061726974686d65746963206f766572666c6f6044820152607760f81b6064820152608401610ca3565b6001546001600160c01b0390610db190839061374d565b1115610dff5760405162461bcd60e51b815260206004820152601f60248201527f746f74616c20737570706c79206f766572666c6f77202875696e7431393229006044820152606401610ca3565b8060016000828254610e11919061374d565b90915550506001600160a01b03821660009081526002602052604081208054839290610e3e90849061374d565b90915550610e5290506005611f9b836120c4565b50506001600160a01b03808316600090815260036020526040812054610e7c92339291168461222b565b6040518181526001600160a01b0383169033907f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f09060200160405180910390a36040518181526001600160a01b0383169060009033907fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f9060200160405180910390a46040518181526001600160a01b03831690600090600080516020613836833981519152906020015b60405180910390a35050565b610f3f33848484612381565b505050565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960208201526001600160a01b0387169181019190915260608101859052600090610fa8906080015b60405160208183030381529060405285858561294e565b9050856001600160a01b0316816001600160a01b031614610fdb5760405162461bcd60e51b8152600401610ca3906136d0565b610fe7868660016129d0565b505050505050565b610ff96020611109565b6110455760405162461bcd60e51b815260206004820152601860248201527f64656c65676174696f6e73206172652064697361626c656400000000000000006044820152606401610ca3565b61104f3382612ade565b50565b60606005805480602002602001604051908101604052809291908181526020016000905b828210156110c557600084815260209081902060408051808201909152908401546001600160401b0381168252600160401b90046001600160c01b031681830152825260019092019101611076565b50505050905090565b600581815481106110de57600080fd5b6000918252602090912001546001600160401b0381169150600160401b90046001600160c01b031682565b3060009081526020819052604081205482168214610b41565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b828210156111a957600084815260209081902060408051808201909152908401546001600160401b0381168252600160401b90046001600160c01b03168183015282526001909201910161115a565b505050509050919050565b600460205281600052604060002081815481106111d057600080fd5b6000918252602090912001546001600160401b0381169250600160401b90046001600160c01b0316905082565b60004382106112445760405162461bcd60e51b8152602060048201526013602482015272189b1bd8dac81b9bdd081e595d081b5a5b9959606a1b6044820152606401610ca3565b6001600160a01b0383166000908152600460205260409020610b869083612b7a565b60004382106112ad5760405162461bcd60e51b8152602060048201526013602482015272189b1bd8dac81b9bdd081e595d081b5a5b9959606a1b6044820152606401610ca3565b610b41600583612b7a565b6112c462020000611f8f565b6114e7576001600160a01b038216331480156112e557506112e56008611109565b8061130957506001600160a01b038216331480159061130957506113096010611109565b6001600160a01b0383163314611354576040518060400160405280601c81526020017f6275726e73206f6e20626568616c66206172652064697361626c656400000000815250611380565b60405180604001604052806012815260200171189d5c9b9cc8185c9948191a5cd8589b195960721b8152505b9061139e5760405162461bcd60e51b8152600401610ca391906136bd565b506001600160a01b03821633146114e7576001600160a01b0382166000908152600860209081526040808320338452909152902054818110156114235760405162461bcd60e51b815260206004820152601d60248201527f6275726e20616d6f756e74206578636565647320616c6c6f77616e63650000006044820152606401610ca3565b6000198110156114e5576114378282613787565b6001600160a01b0384166000818152600860209081526040808320338085529252909120839055919250907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a761148d858561374d565b60408051918252602082018690520160405180910390a360405181815233906001600160a01b038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259060200160405180910390a35b505b806115265760405162461bcd60e51b815260206004820152600f60248201526e3d32b937903b30b63ab290313ab93760891b6044820152606401610ca3565b6001600160a01b03821661157c5760405162461bcd60e51b815260206004820152601a60248201527f6275726e2066726f6d20746865207a65726f20616464726573730000000000006044820152606401610ca3565b6001600160a01b0382166000908152600260205260409020548111156115e45760405162461bcd60e51b815260206004820152601b60248201527f6275726e20616d6f756e7420657863656564732062616c616e636500000000006044820152606401610ca3565b6001600160a01b0382166000908152600260205260408120805483929061160c908490613787565b9250508190555080600160008282546116259190613787565b9091555061163990506005611fa7836120c4565b50506001600160a01b038083166000908152600360205260408120546116649233929116908461222b565b6040518181526001600160a01b0383169033907fe8a89cc6e5096f9d9f43de82c077c1f4cfe707c0e0c2032176c68813b9ae6a5c9060200160405180910390a36040518181526000906001600160a01b0384169033907fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f9060200160405180910390a46040518181526000906001600160a01b0384169060008051602061383683398151915290602001610f27565b3360009081526008602090815260408083206001600160a01b0386168452909152812054826117845760405162461bcd60e51b815260206004820152601c60248201527f7a65726f2076616c756520617070726f76616c206465637265617365000000006044820152606401610ca3565b828110156117e25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ca3565b610cba846104838584613787565b6000610b86338484610b8d565b61180a600160ff1b611f8f565b6118265760405162461bcd60e51b8152600401610ca3906136fb565b6001600160a01b03821660009081526020819052604090205461184b90339083611e6b565b6001600160a01b03831660008181526020818152604091829020849055815185815290810193909352909133917f5a10526456f5116c0b7b80582c217d666243fd51b6a2d92c8011e601c2462e5f9101610f27565b60006118ad858585610f33565b6118bb858585856001612d5b565b506001949350505050565b6001600160a01b038116600090815260046020526040812080541561192657805481906118f590600190613787565b81548110611905576119056137cf565b600091825260209091200154600160401b90046001600160c01b0316611929565b60005b6001600160c01b03169392505050565b60006119456080611109565b6119915760405162461bcd60e51b815260206004820152601e60248201527f45524331333633207472616e7366657273206172652064697361626c656400006044820152606401610ca3565b61199c858585610f33565b6118bb858585856000612d5b565b6001600160a01b03821660009081526020819052604081205482168214610b86565b60006119d9610100611109565b611a255760405162461bcd60e51b815260206004820152601e60248201527f4552433133363320617070726f76616c73206172652064697361626c656400006044820152606401610ca3565b611a2f8484610b63565b50610bf0848484612e9f565b611a46610200611109565b611a925760405162461bcd60e51b815260206004820152601c60248201527f45495032363132207065726d697473206172652064697361626c6564000000006044820152606401610ca3565b6001600160a01b03871660009081526006602052604081208054611b23917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9187611ae28361379e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001610f91565b9050876001600160a01b0316816001600160a01b031614611b565760405162461bcd60e51b8152600401610ca3906136d0565b844210611b755760405162461bcd60e51b8152600401610ca390613722565b611b80888888611fb3565b5050505050505050565b61104f30826117fd565b6000610cba84848460405180602001604052806000815250611939565b611bbc610400611109565b611c085760405162461bcd60e51b815260206004820152601e60248201527f45495033303039207472616e7366657273206172652064697361626c656400006044820152606401610ca3565b6000611c4d7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760001b8b8b8b8b8b8b604051602001610f919796959493929190613681565b9050896001600160a01b0316816001600160a01b031614611c805760405162461bcd60e51b8152600401610ca3906136d0565b864211611cc95760405162461bcd60e51b81526020600482015260176024820152761cda59db985d1d5c99481b9bdd081e595d081d985b1a59604a1b6044820152606401610ca3565b854210611ce85760405162461bcd60e51b8152600401610ca390613722565b611cf48a8660006129d0565b611d00818b8b8b612381565b50505050505050505050565b611d17610800611109565b611d635760405162461bcd60e51b815260206004820152601f60248201527f4549503330303920726563657074696f6e73206172652064697361626c6564006044820152606401610ca3565b6000611da87fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860001b8b8b8b8b8b8b604051602001610f919796959493929190613681565b9050896001600160a01b0316816001600160a01b031614611ddb5760405162461bcd60e51b8152600401610ca3906136d0565b864211611e245760405162461bcd60e51b81526020600482015260176024820152761cda59db985d1d5c99481b9bdd081e595d081d985b1a59604a1b6044820152606401610ca3565b854210611e435760405162461bcd60e51b8152600401610ca390613722565b6001600160a01b0389163314611ce85760405162461bcd60e51b8152600401610ca3906136fb565b6001600160a01b03929092166000908152602081905260409020546000198084188216189216171690565b611ea06040611109565b611ef75760405162461bcd60e51b815260206004820152602260248201527f64656c65676174696f6e73206f6e20626568616c66206172652064697361626c604482015261195960f21b6064820152608401610ca3565b604080517fff41620983935eb4d4a3c7384a066ca8c1d10cef9a5eca9eb97ca735cd14a75560208201526001600160a01b038816918101919091526060810186905260808101859052600090611f4f9060a001610f91565b9050844210611f705760405162461bcd60e51b8152600401610ca390613722565b611f7c818760006129d0565b611f868188612ade565b50505050505050565b6000610b4133836119aa565b6000610b86828461374d565b6000610b868284613787565b6001600160a01b0382166120095760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610ca3565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902080549086905582518181529182018690529392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a3826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516120b691815260200190565b60405180910390a350505050565b825460009081901561211157845485906120e090600190613787565b815481106120f0576120f06137cf565b600091825260209091200154600160401b90046001600160c01b0316612114565b60005b6001600160c01b0316915061212d82848663ffffffff16565b855490915015801590612174575084544390869061214d90600190613787565b8154811061215d5761215d6137cf565b6000918252602090912001546001600160401b0316145b156121d15784548190869061218b90600190613787565b8154811061219b5761219b6137cf565b9060005260206000200160000160086101000a8154816001600160c01b0302191690836001600160c01b03160217905550612223565b604080518082019091526001600160401b0343811682526001600160c01b0380841660208085019182528954600181018b5560008b81529190912094519151909216600160401b029216919091179101555b935093915050565b816001600160a01b0316836001600160a01b03161480612249575080155b156122535761237b565b6001600160a01b038316156122e7576001600160a01b0383166000908152600460205260408120908061228983611fa7866120c4565b91509150856001600160a01b0316876001600160a01b03167fd1404f22081753a56b50e0d5ff5c9ed0e4a3a840e1171a443721a342e71bb5c184846040516122db929190918252602082015260400190565b60405180910390a35050505b6001600160a01b0382161561237b576001600160a01b0382166000908152600460205260408120908061231d83611f9b866120c4565b91509150846001600160a01b0316876001600160a01b03167fd1404f22081753a56b50e0d5ff5c9ed0e4a3a840e1171a443721a342e71bb5c1848460405161236f929190918252602082015260400190565b60405180910390a35050505b50505050565b836001600160a01b0316836001600160a01b03161480156123a757506123a76001611109565b806123d45750836001600160a01b0316836001600160a01b0316141580156123d457506123d46002611109565b846001600160a01b0316846001600160a01b031614612428576040518060400160405280602081526020017f7472616e7366657273206f6e20626568616c66206172652064697361626c6564815250612458565b604051806040016040528060168152602001751d1c985b9cd9995c9cc8185c9948191a5cd8589b195960521b8152505b906124765760405162461bcd60e51b8152600401610ca391906136bd565b506001600160a01b0383166124cd5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610ca3565b6001600160a01b0382166125235760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610ca3565b816001600160a01b0316836001600160a01b0316141561259d5760405162461bcd60e51b815260206004820152602f60248201527f73656e64657220616e6420726563697069656e7420617265207468652073616d60448201526e6520285f66726f6d203d205f746f2960881b6064820152608401610ca3565b6001600160a01b03821630141561261c5760405162461bcd60e51b815260206004820152603f60248201527f696e76616c696420726563697069656e7420287472616e7366657220746f207460448201527f686520746f6b656e20736d61727420636f6e747261637420697473656c6629006064820152608401610ca3565b8061266157816001600160a01b0316836001600160a01b03166000805160206138368339815191528360405161265491815260200190565b60405180910390a361237b565b836001600160a01b0316836001600160a01b0316146127cf576001600160a01b03808416600090815260086020908152604080832093881683529290522054818110156126fa5760405162461bcd60e51b815260206004820152602160248201527f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b6064820152608401610ca3565b6000198110156127cd5761270e8282613787565b6001600160a01b038086166000818152600860209081526040808320948b16808452949091529020839055919250907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7612768858561374d565b60408051918252602082018690520160405180910390a3846001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127c491815260200190565b60405180910390a35b505b6001600160a01b0383166000908152600260205260409020548111156128375760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610ca3565b6001600160a01b0383166000908152600260205260408120805483929061285f908490613787565b90915550506001600160a01b0382166000908152600260205260408120805483929061288c90849061374d565b90915550506001600160a01b038084166000908152600360205260408082205485841683529120546128c4928792811691168461222b565b816001600160a01b0316836001600160a01b0316856001600160a01b03167fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f8460405161291391815260200190565b60405180910390a4816001600160a01b0316836001600160a01b0316600080516020613836833981519152836040516120b691815260200190565b835160208086019190912060405161190160f01b928101929092527f0000000000000000000000000000000000000000000000000000000000000000602283015260428201819052600091829060620160405160208183030381529060405280519060200120905060006129c482888888612fce565b98975050505050505050565b6001600160a01b038316600090815260076020908152604080832085845290915290205460ff1615612a345760405162461bcd60e51b815260206004820152600d60248201526c696e76616c6964206e6f6e636560981b6044820152606401610ca3565b6001600160a01b03831660009081526007602090815260408083208584529091529020805460ff191660011790558015612aa35760405182906001600160a01b038516907f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8190600090a3505050565b60405182906001600160a01b038516907f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a590600090a3505050565b6001600160a01b0380831660009081526003602081815260408084208054600284529190942054929091528484166001600160a01b0319821617909255911690612b2a8483858461222b565b826001600160a01b0316826001600160a01b0316856001600160a01b03167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a450505050565b8154600090612b8b57506000610b41565b825482908490612b9d90600190613787565b81548110612bad57612bad6137cf565b6000918252602090912001546001600160401b031611612c0a5782548390612bd790600190613787565b81548110612be757612be76137cf565b600091825260209091200154600160401b90046001600160c01b03169050610b41565b8183600081548110612c1e57612c1e6137cf565b6000918252602090912001546001600160401b03161115612c4157506000610b41565b82546000908190612c5490600190613787565b90505b81811115612d245760006002612c6d8484613787565b612c779190613765565b612c819083613787565b90506000868281548110612c9757612c976137cf565b6000918252602091829020604080518082019091529101546001600160401b038116808352600160401b9091046001600160c01b0316928201929092529150861415612cf557602001516001600160c01b03169350610b4192505050565b80516001600160401b0316861115612d0f57819350612d1d565b612d1a600183613787565b92505b5050612c57565b848281548110612d3657612d366137cf565b600091825260209091200154600160401b90046001600160c01b031695945050505050565b833b612da35780612d9e5760405162461bcd60e51b815260206004820152600d60248201526c1153d0481c9958da5c1a595b9d609a1b6044820152606401610ca3565b612e98565b604051632229f29760e21b81526000906001600160a01b038616906388a7ca5c90612dd89033908a90899089906004016135bc565b602060405180830381600087803b158015612df257600080fd5b505af1158015612e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2a9190613539565b90506001600160e01b03198116632229f29760e21b14610fe75760405162461bcd60e51b815260206004820152602360248201527f696e76616c6964206f6e5472616e73666572526563656976656420726573706f6044820152626e736560e81b6064820152608401610ca3565b5050505050565b823b612edb5760405162461bcd60e51b815260206004820152600b60248201526a22a7a09039b832b73232b960a91b6044820152606401610ca3565b6040516307b04a2d60e41b81526000906001600160a01b03851690637b04a2d090612f0e903390879087906004016135f9565b602060405180830381600087803b158015612f2857600080fd5b505af1158015612f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f609190613539565b90506001600160e01b031981166307b04a2d60e41b1461237b5760405162461bcd60e51b815260206004820152602360248201527f696e76616c6964206f6e417070726f76616c526563656976656420726573706f6044820152626e736560e81b6064820152608401610ca3565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156130405760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964207369676e6174757265202773272076616c756500000000006044820152606401610ca3565b8360ff16601b148061305557508360ff16601c145b6130a15760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964207369676e6174757265202776272076616c756500000000006044820152606401610ca3565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156130f5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166131285760405162461bcd60e51b8152600401610ca3906136d0565b95945050505050565b80356001600160a01b038116811461314857600080fd5b919050565b600082601f83011261315e57600080fd5b81356001600160401b0380821115613178576131786137e5565b604051601f8301601f19908116603f011681019082821181831017156131a0576131a06137e5565b816040528381528660208588010111156131b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff8116811461314857600080fd5b6000602082840312156131fc57600080fd5b610b8682613131565b6000806040838503121561321857600080fd5b61322183613131565b915061322f60208401613131565b90509250929050565b60008060006060848603121561324d57600080fd5b61325684613131565b925061326460208501613131565b9150604084013590509250925092565b6000806000806080858703121561328a57600080fd5b61329385613131565b93506132a160208601613131565b92506040850135915060608501356001600160401b038111156132c357600080fd5b6132cf8782880161314d565b91505092959194509250565b60008060008060008060008060006101208a8c0312156132fa57600080fd5b6133038a613131565b985061331160208b01613131565b975060408a0135965060608a0135955060808a0135945060a08a0135935061333b60c08b016131d9565b925060e08a013591506101008a013590509295985092959850929598565b600080600080600080600060e0888a03121561337457600080fd5b61337d88613131565b965061338b60208901613131565b955060408801359450606088013593506133a7608089016131d9565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156133d657600080fd5b6133df83613131565b946020939093013593505050565b60008060008060008060c0878903121561340657600080fd5b61340f87613131565b9550602087013594506040870135935061342b606088016131d9565b92506080870135915060a087013590509295509295509295565b600080600080600060a0868803121561345d57600080fd5b61346686613131565b94506020860135935061347b604087016131d9565b94979396509394606081013594506080013592915050565b6000806000606084860312156134a857600080fd5b6134b184613131565b92506020840135915060408401356001600160401b038111156134d357600080fd5b6134df8682870161314d565b9150509250925092565b6000806000606084860312156134fe57600080fd5b61350784613131565b95602085013595506040909401359392505050565b60006020828403121561352e57600080fd5b8135610b86816137fb565b60006020828403121561354b57600080fd5b8151610b86816137fb565b60006020828403121561356857600080fd5b5035919050565b6000815180845260005b8181101561359557602081850181015186830182015201613579565b818111156135a7576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906135ef9083018461356f565b9695505050505050565b60018060a01b0384168152826020820152606060408201526000613128606083018461356f565b602080825282518282018190526000919060409081850190868401855b8281101561367457815180516001600160401b031685528601516001600160c01b031686850152928401929085019060010161363d565b5091979650505050505050565b9687526001600160a01b0395861660208801529390941660408601526060850191909152608084015260a083019190915260c082015260e00190565b602081526000610b86602083018461356f565b602080825260119082015270696e76616c6964207369676e617475726560781b604082015260600190565b6020808252600d908201526c1858d8d95cdcc819195b9a5959609a1b604082015260600190565b6020808252601190820152701cda59db985d1d5c9948195e1c1a5c9959607a1b604082015260600190565b60008219821115613760576137606137b9565b500190565b60008261378257634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613799576137996137b9565b500390565b60006000198214156137b2576137b26137b9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461104f57600080fdfe4172746966696369616c204c697175696420496e74656c6c6967656e636520546f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b0e9471542ced6fae57630b6407a7ff6726b1207e920650b09b9c8ef89cd103764736f6c63430008070033d1404f22081753a56b50e0d5ff5c9ed0e4a3a840e1171a443721a342e71bb5c10000000000000000000000000738f702d1a7364d356729cb8845701885c487a1
Loading