[ { "inputs": [ { "internalType": "contract IGlobals", "name": "globals", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "voter", "type": "address" } ], "name": "AlreadyVotedError", "type": "error" }, { "inputs": [], "name": "BadPreciousListError", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "proposalHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "actualHash", "type": "bytes32" } ], "name": "BadProposalHashError", "type": "error" }, { "inputs": [ { "internalType": "enum PartyGovernance.ProposalStatus", "name": "status", "type": "uint8" } ], "name": "BadProposalStatusError", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "minAmount", "type": "uint256" } ], "name": "BelowMinWithdrawAmountError", "type": "error" }, { "inputs": [], "name": "CannotDisableRageQuitAfterInitializationError", "type": "error" }, { "inputs": [], "name": "CannotEnableRageQuitIfNotDistributionsRequireVoteError", "type": "error" }, { "inputs": [], "name": "CannotModifyTotalVotingPowerAndAcceptError", "type": "error" }, { "inputs": [ { "internalType": "uint40", "name": "rageQuitTimestamp", "type": "uint40" } ], "name": "CannotRageQuitError", "type": "error" }, { "inputs": [], "name": "DistributionsRequireVoteError", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "bytes", "name": "errData", "type": "bytes" } ], "name": "EthTransferFailed", "type": "error" }, { "inputs": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "timestamp", "type": "uint40" } ], "name": "ExecutionTimeExceededError", "type": "error" }, { "inputs": [ { "internalType": "uint40", "name": "rageQuitTimestamp", "type": "uint40" } ], "name": "FixedRageQuitTimestampError", "type": "error" }, { "inputs": [ { "internalType": "int192", "name": "i192", "type": "int192" } ], "name": "Int192ToUint96CastOutOfRange", "type": "error" }, { "inputs": [ { "internalType": "uint16", "name": "bps", "type": "uint16" } ], "name": "InvalidBpsError", "type": "error" }, { "inputs": [], "name": "InvalidDelegateError", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "InvalidGovernanceParameter", "type": "error" }, { "inputs": [], "name": "InvalidNewHostError", "type": "error" }, { "inputs": [], "name": "InvalidTokenOrderError", "type": "error" }, { "inputs": [], "name": "MismatchedPreciousListLengths", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" } ], "name": "NotATokenError", "type": "error" }, { "inputs": [], "name": "NotAuthorized", "type": "error" }, { "inputs": [], "name": "NotMinted", "type": "error" }, { "inputs": [], "name": "NothingToBurnError", "type": "error" }, { "inputs": [], "name": "OnlyDelegateCallError", "type": "error" }, { "inputs": [], "name": "OnlyWhenEmergencyActionsAllowedError", "type": "error" }, { "inputs": [], "name": "OnlyWhenEnabledError", "type": "error" }, { "inputs": [], "name": "PartyNotStartedError", "type": "error" }, { "inputs": [ { "internalType": "uint40", "name": "currentTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelTime", "type": "uint40" } ], "name": "ProposalCannotBeCancelledYetError", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenTransferFailedError", "type": "error" }, { "inputs": [], "name": "TooManyHosts", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "v", "type": "uint256" } ], "name": "Uint256ToInt192CastOutOfRange", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "v", "type": "uint256" } ], "name": "Uint256ToUint96CastOutOfRange", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authority", "type": "address" } ], "name": "AuthorityAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authority", "type": "address" } ], "name": "AuthorityRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "votingPower", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum ITokenDistributor.TokenType", "name": "tokenType", "type": "uint8" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "DistributionCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "amountEth", "type": "uint256" } ], "name": "EmergencyExecute", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EmergencyExecuteDisabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldHost", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newHost", "type": "address" } ], "name": "HostStatusTransferred", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "intrinsicVotingPower", "type": "uint256" } ], "name": "PartyCardIntrinsicVotingPowerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" } ], "name": "PartyDelegateUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "voter", "type": "address" }, { "indexed": false, "internalType": "uint40", "name": "timestamp", "type": "uint40" }, { "indexed": false, "internalType": "uint96", "name": "delegatedVotingPower", "type": "uint96" }, { "indexed": false, "internalType": "uint96", "name": "intrinsicVotingPower", "type": "uint96" }, { "indexed": false, "internalType": "bool", "name": "isDelegated", "type": "bool" } ], "name": "PartyVotingSnapshotCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "voter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "weight", "type": "uint256" } ], "name": "ProposalAccepted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "ProposalCancelled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "executor", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "nextProgressData", "type": "bytes" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "ProposalPassed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "host", "type": "address" } ], "name": "ProposalVetoed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "proposer", "type": "address" }, { "components": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelDelay", "type": "uint40" }, { "internalType": "bytes", "name": "proposalData", "type": "bytes" } ], "indexed": false, "internalType": "struct PartyGovernance.Proposal", "name": "proposal", "type": "tuple" } ], "name": "Proposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "contract IERC20[]", "name": "withdrawTokens", "type": "address[]" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "RageQuit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint40", "name": "oldRageQuitTimestamp", "type": "uint40" }, { "indexed": false, "internalType": "uint40", "name": "newRageQuitTimestamp", "type": "uint40" } ], "name": "RageQuitSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "nonpayable", "type": "fallback" }, { "inputs": [], "name": "IMPL", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION_ID", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "abdicateAuthority", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newPartyHost", "type": "address" } ], "name": "abdicateHost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "uint256", "name": "snapIndex", "type": "uint256" } ], "name": "accept", "outputs": [ { "internalType": "uint256", "name": "totalVotes", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authority", "type": "address" } ], "name": "addAuthority", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "components": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelDelay", "type": "uint40" }, { "internalType": "bytes", "name": "proposalData", "type": "bytes" } ], "internalType": "struct PartyGovernance.Proposal", "name": "proposal", "type": "tuple" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "votingPower", "type": "uint96" } ], "name": "decreaseTotalVotingPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint96", "name": "votingPower", "type": "uint96" } ], "name": "decreaseVotingPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "impl", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "name": "delegateCallAndRevert", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegate", "type": "address" } ], "name": "delegateVotingPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "delegationsByVoter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableEmergencyExecute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "enum ITokenDistributor.TokenType", "name": "tokenType", "type": "uint8" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "distribute", "outputs": [ { "components": [ { "internalType": "enum ITokenDistributor.TokenType", "name": "tokenType", "type": "uint8" }, { "internalType": "uint256", "name": "distributionId", "type": "uint256" }, { "internalType": "contract Party", "name": "party", "type": "address" }, { "internalType": "address payable", "name": "feeRecipient", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint128", "name": "memberSupply", "type": "uint128" }, { "internalType": "uint128", "name": "fee", "type": "uint128" }, { "internalType": "uint96", "name": "totalShares", "type": "uint96" } ], "internalType": "struct ITokenDistributor.DistributionInfo", "name": "distInfo", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "targetAddress", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }, { "internalType": "uint256", "name": "amountEth", "type": "uint256" } ], "name": "emergencyExecute", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "emergencyExecuteDisabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "components": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelDelay", "type": "uint40" }, { "internalType": "bytes", "name": "proposalData", "type": "bytes" } ], "internalType": "struct PartyGovernance.Proposal", "name": "proposal", "type": "tuple" }, { "internalType": "contract IERC721[]", "name": "preciousTokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "preciousTokenIds", "type": "uint256[]" }, { "internalType": "bytes", "name": "progressData", "type": "bytes" }, { "internalType": "bytes", "name": "extraData", "type": "bytes" } ], "name": "execute", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "feeBps", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeRecipient", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "voter", "type": "address" }, { "internalType": "uint40", "name": "timestamp", "type": "uint40" } ], "name": "findVotingPowerSnapshotIndex", "outputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getDistributionShareOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGovernanceValues", "outputs": [ { "components": [ { "internalType": "uint40", "name": "voteDuration", "type": "uint40" }, { "internalType": "uint40", "name": "executionDelay", "type": "uint40" }, { "internalType": "uint16", "name": "passThresholdBps", "type": "uint16" }, { "internalType": "uint96", "name": "totalVotingPower", "type": "uint96" } ], "internalType": "struct ProposalStorage.GovernanceValues", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getProposalEngineOpts", "outputs": [ { "components": [ { "internalType": "bool", "name": "enableAddAuthorityProposal", "type": "bool" }, { "internalType": "bool", "name": "allowArbCallsToSpendPartyEth", "type": "bool" }, { "internalType": "bool", "name": "allowOperators", "type": "bool" }, { "internalType": "bool", "name": "distributionsRequireVote", "type": "bool" } ], "internalType": "struct ProposalStorage.ProposalEngineOpts", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getProposalExecutionEngine", "outputs": [ { "internalType": "contract IProposalExecutionEngine", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelDelay", "type": "uint40" }, { "internalType": "bytes", "name": "proposalData", "type": "bytes" } ], "internalType": "struct PartyGovernance.Proposal", "name": "proposal", "type": "tuple" } ], "name": "getProposalHash", "outputs": [ { "internalType": "bytes32", "name": "proposalHash", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "getProposalStateInfo", "outputs": [ { "internalType": "enum PartyGovernance.ProposalStatus", "name": "status", "type": "uint8" }, { "components": [ { "internalType": "uint40", "name": "proposedTime", "type": "uint40" }, { "internalType": "uint40", "name": "passedTime", "type": "uint40" }, { "internalType": "uint40", "name": "executedTime", "type": "uint40" }, { "internalType": "uint40", "name": "completedTime", "type": "uint40" }, { "internalType": "uint96", "name": "votes", "type": "uint96" }, { "internalType": "uint96", "name": "totalVotingPower", "type": "uint96" }, { "internalType": "uint8", "name": "numHosts", "type": "uint8" }, { "internalType": "uint8", "name": "numHostsAccepted", "type": "uint8" }, { "internalType": "uint40", "name": "voteDuration", "type": "uint40" }, { "internalType": "uint40", "name": "executionDelay", "type": "uint40" }, { "internalType": "uint16", "name": "passThresholdBps", "type": "uint16" } ], "internalType": "struct PartyGovernance.ProposalStateValues", "name": "values", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "voter", "type": "address" }, { "internalType": "uint40", "name": "timestamp", "type": "uint40" }, { "internalType": "uint256", "name": "snapIndex", "type": "uint256" } ], "name": "getVotingPowerAt", "outputs": [ { "internalType": "uint96", "name": "votingPower", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getVotingPowerShareOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "votingPower", "type": "uint96" } ], "name": "increaseTotalVotingPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint96", "name": "votingPower", "type": "uint96" } ], "name": "increaseVotingPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "components": [ { "internalType": "address[]", "name": "hosts", "type": "address[]" }, { "internalType": "uint40", "name": "voteDuration", "type": "uint40" }, { "internalType": "uint40", "name": "executionDelay", "type": "uint40" }, { "internalType": "uint16", "name": "passThresholdBps", "type": "uint16" }, { "internalType": "uint96", "name": "totalVotingPower", "type": "uint96" }, { "internalType": "uint16", "name": "feeBps", "type": "uint16" }, { "internalType": "address payable", "name": "feeRecipient", "type": "address" } ], "internalType": "struct PartyGovernance.GovernanceOpts", "name": "governance", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "enableAddAuthorityProposal", "type": "bool" }, { "internalType": "bool", "name": "allowArbCallsToSpendPartyEth", "type": "bool" }, { "internalType": "bool", "name": "allowOperators", "type": "bool" }, { "internalType": "bool", "name": "distributionsRequireVote", "type": "bool" } ], "internalType": "struct ProposalStorage.ProposalEngineOpts", "name": "proposalEngine", "type": "tuple" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "customizationPresetId", "type": "uint256" } ], "internalType": "struct Party.PartyOptions", "name": "options", "type": "tuple" }, { "internalType": "contract IERC721[]", "name": "preciousTokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "preciousTokenIds", "type": "uint256[]" }, { "internalType": "address[]", "name": "authorities", "type": "address[]" }, { "internalType": "uint40", "name": "rageQuitTimestamp", "type": "uint40" } ], "internalType": "struct Party.PartyInitData", "name": "initData", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isAuthority", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isHost", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastProposalId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastTotalVotingPowerChangeTimestamp", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "votingPower", "type": "uint256" }, { "internalType": "address", "name": "delegate", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintedVotingPower", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numHosts", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preciousListHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint40", "name": "maxExecutableTime", "type": "uint40" }, { "internalType": "uint40", "name": "cancelDelay", "type": "uint40" }, { "internalType": "bytes", "name": "proposalData", "type": "bytes" } ], "internalType": "struct PartyGovernance.Proposal", "name": "proposal", "type": "tuple" }, { "internalType": "uint256", "name": "latestSnapIndex", "type": "uint256" } ], "name": "propose", "outputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "contract IERC20[]", "name": "withdrawTokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "minWithdrawAmounts", "type": "uint256[]" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "rageQuit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rageQuitTimestamp", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint40", "name": "newRageQuitTimestamp", "type": "uint40" } ], "name": "setRageQuit", "outputs": [], "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": "tokenCount", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "veto", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "votingPowerByTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e0346200037a57601f19906001600160401b03601f620063a03881900382810186168501848111868210176200037f578592829160405283396020948591810103126200037a5751936001600160a01b03851685036200037a576200006462000395565b936000908186526200007562000395565b92828452306080528760a05286518681116200036657600854976001988981811c911680156200035b575b858210146200034757908188849311620002f3575b5084908883116001146200029057869262000284575b5050600019600383901b1c191690881b176008555b835195861162000270576009548781811c9116801562000265575b83821014620002515785811162000208575b5081948611600114620001a05750509183949184939462000194575b50501b916000199060031b1c1916176009555b60c052604051615fea9081620003b6823960805181611b26015260a0518181816115060152818161174001528181612aa401528181613763015281816139e0015261518f015260c0518181816130c901526159270152f35b01519250388062000129565b600983528183209493928692918316915b88838310620001ed5750505010620001d3575b505050811b016009556200013c565b015160001960f88460031b161c19169055388080620001c4565b858701518855909601959485019487935090810190620001b1565b600984528284208680890160051c820192858a1062000247575b0160051c019088905b8281106200023b5750506200010d565b8581550188906200022b565b9250819262000222565b634e487b7160e01b84526022600452602484fd5b90607f1690620000fb565b634e487b7160e01b83526041600452602483fd5b015190503880620000cb565b90848b9416916008885286882092885b88828210620002dc5750508411620002c2575b505050811b01600855620000e0565b015160001960f88460031b161c19169055388080620002b3565b8385015186558e97909501949384019301620002a0565b909150600886528486208880850160051c8201928786106200033d575b918c91869594930160051c01915b8281106200032e575050620000b5565b8881558594508c91016200031e565b9250819262000310565b634e487b7160e01b86526022600452602486fd5b90607f1690620000a0565b634e487b7160e01b84526041600452602484fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b60405190602082016001600160401b038111838210176200037f5760405256fe60806040526004361015610022575b36156100205734156131e0575b600080fd5b005b60003560e01c806301ffc9a71461042857806302403f711461042357806306fdde031461041e578063081812fc146104195780630935847914610414578063095ea7b31461040f5780630d4d15131461040a578063158ef93e1461040557806316399ea2146104005780631d28dec7146103fb5780632330f247146103f657806323b872dd146103f157806324a9d853146103ec57806326defa73146103e757806327cb04b4146103e2578063287b4399146103dd5780632a55205a146103d85780632d992cd3146103d35780632fd75a27146103ce578063305a0721146103c957806333b9d8c4146103c45780633846b6d2146103bf5780633e4011b9146103ba5780634121c931146103b557806342842e0e146103b057806342966c68146103ab57806343bc8831146103a657806346904840146103a157806352a702b51461039c57806356973ee5146103975780635c60da1b146103975780636210f6b2146103925780636352211e1461038d5780636fd44cfd1461038857806370a082311461038357806374cb30411461037e57806378cfabac1461033d578063791fec56146103795780638518a7451461037457806395d89b411461036f5780639cd288941461036a5780639f181b5e14610365578063a22cb46514610360578063a25632fd1461035b578063b20240ee14610356578063b80f55c914610351578063b88d4fde1461034c578063c43683a114610347578063c87b56dd14610342578063caf6aa4b1461033d578063cc7b9d0614610338578063cd36324914610333578063cf67f3441461032e578063d1a35cba14610329578063d3c989af14610324578063d7faa2621461031f578063e6f26d9a1461031a578063e7265a9514610315578063e8a3d48514610310578063e985e9c51461030b578063eb2931b714610306578063f0689b4714610301578063f3ff955a146102fc578063fea44a56146102f75763fffc559d0361000e57612b52565b612a6d565b612960565b6128c6565b612884565b61282c565b612815565b612709565b6126e3565b6126c5565b612602565b6124e1565b6124a7565b61245e565b612442565b611c47565b61242b565b61239e565b61219f565b612164565b6120d1565b611f3c565b611e47565b611e1e565b611df6565b611d64565b611cf1565b611c73565b611c29565b611bd3565b611ba6565b611b76565b611b55565b611b10565b611ad1565b611aa8565b611a80565b611a12565b611932565b61167b565b6115ea565b6115b6565b611580565b6114a7565b61145c565b61138a565b610fcb565b610f75565b610eb4565b610e34565b610e0f565b610df8565b610d8a565b610be3565b610b3d565b610b1a565b6109bd565b6108e2565b6108a8565b610874565b61074b565b61052b565b61043f565b6001600160e01b031981160361001b57565b3461001b57602036600319011261001b5761049b60043561045f8161042d565b63ffffffff60e01b16630a85bd0160e11b81149081156104f0575b81156104b0575b811561049f575b5060405190151581529081906020820190565b0390f35b63152a902d60e11b14905038610488565b90506301ffc9a760e01b811480156104e0575b80156104d0575b90610481565b50635b5e139f60e01b81146104ca565b506380ac58cd60e01b81146104c3565b630271189760e51b8114915061047a565b6001600160601b031690565b6001600160601b0381160361001b57565b35906105298261050d565b565b3461001b57604036600319011261001b5760043560243561054b8161050d565b6105536154bb565b60018060601b039061059a61056f8284600e5460601c166147dd565b600e8054600160601b600160c01b03191660609290921b600160601b600160c01b0316919091179055565b169080600052600f60205260406000209081549183830392831161060157600080516020615f75833981519152936105fc936105ec92556105e66105dd84615c67565b9160170b6154d4565b90614669565b6040519081529081906020820190565b0390a1005b613290565b600091031261001b57565b90600182811c92168015610641575b602083101461062b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610620565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761067c57604052565b61064b565b61016081019081106001600160401b0382111761067c57604052565b6001600160401b03811161067c57604052565b61010081019081106001600160401b0382111761067c57604052565b601f909101601f19168101906001600160401b0382119082101761067c57604052565b60005b8381106107025750506000910152565b81810151838201526020016106f2565b9060209161072b815180928185528580860191016106ef565b601f01601f1916010190565b906020610748928181520190610712565b90565b3461001b57600080600319360112610812576040518160085461076d81610611565b808452906001908181169081156107ea57506001146107a3575b61049b84610797818803826106cc565b60405191829182610737565b6008835260209450600080516020615ef58339815191525b8284106107d7575050508161049b936107979282010193610787565b80548585018701529285019281016107bb565b61049b96506107979450602092508593915060ff191682840152151560051b82010193610787565b80fd5b600052600c602052604060002090565b600052600f602052604060002090565b6000526006602052604060002090565b600052600a602052604060002090565b6001600160a01b031690565b6001600160a01b03909116815260200190565b3461001b57602036600319011261001b57600435600052600c602052602060018060a01b0360406000205416604051908152f35b3461001b57604036600319011261001b5760206108c9602435600435613d99565b604051908152f35b6001600160a01b0381160361001b57565b3461001b57604036600319011261001b576004356108ff816108d1565b6024356000818152600a602052604081205490926001600160a01b0391821691903383141580610994575b6109835761095a8161093b86610815565b80546001600160a01b0319166001600160a01b03909216919091179055565b16907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b6040516282b42960e81b8152600490fd5b506109b86109b46109ad336109a887610cd7565b610d73565b5460ff1690565b1590565b61092a565b3461001b57606036600319011261001b5761049b600080516020615e758339815191526105ec610ab46004356109f2816108d1565b610ae9604435610a01816108d1565b610a096154bb565b600e5460018060601b03808260601c169181600080516020615e958339815191525460601c1692610a3b602435615b39565b9380151580610b03575b610af6575b5050600e80546001600160601b0319166001600160601b0392841660010184169283161790559788968792610a8c61056f86610a87600e546133f4565b6132a6565b84169384610a9985610825565b556040516001600160601b0390911681529081906020820190565b0390a2610ad0610ac385610cf1565b546001600160a01b031690565b6001600160a01b038116610aee575b5060170b83614737565b615d4f565b915038610adf565b0382169250600182610a4a565b50610b0e82826147dd565b84808716911610610a45565b3461001b57600036600319011261001b57602060ff600054166040519015158152f35b3461001b57602036600319011261001b57610bc1610b89600435610b608161050d565b610b686154bb565b600080516020615e958339815191525460601c6001600160601b03166147dd565b600080516020615e958339815191528054600160601b600160c01b03191660609290921b600160601b600160c01b0316919091179055565b600080516020615eb583398151915260408051600081526000196020820152a1005b3461001b57602036600319011261001b57600435610bff613585565b8060005260066020526040600020610c1e610c198261331d565b614bf4565b610c27816122a1565b600181141580610cc3575b80610caf575b610c8e575080546001600160a01b03166001600160a01b03191790557fc2131db10d833d6b93ae553fa450ea0f6c0c2dfb0160cb3309468bf72718f3eb60405180610c833382610861565b0390a2610020614dec565b604051630821641d60e21b8152908190610cab9060048301613d37565b0390fd5b50610cb9816122a1565b6004811415610c38565b50610ccd816122a1565b6003811415610c32565b6001600160a01b03166000908152600d6020526040902090565b6001600160a01b0316600090815260046020526040902090565b6001600160a01b0316600090815260036020526040902090565b6001600160a01b0316600090815260106020526040902090565b6001600160a01b0316600090815260076020526040902090565b6001600160a01b03166000908152600b6020526040902090565b9060018060a01b0316600052602052604060002090565b3461001b57602036600319011261001b57600435610da7816108d1565b60018060a01b03166000526010602052602060ff604060002054166040519015158152f35b606090600319011261001b57600435610de4816108d1565b90602435610df1816108d1565b9060443590565b3461001b57610020610e0936610dcc565b916157e1565b3461001b57600036600319011261001b57602061ffff60005460101c16604051908152f35b3461001b57602036600319011261001b57600435610e51816108d1565b303303610ea2576001600160a01b03166000818152601060205260408120805460ff19166001179055907f550a8ae64ec9d6640b6f168a26d3e6364b90defe8110c92135aa775b279e54ea8280a280f35b60405163ea8e4eb560e01b8152600490fd5b3461001b57602036600319011261001b57600435610ed1816108d1565b610ed9613585565b6001600160a01b03811615610efa5760405163640c1a3360e01b8152600490fd5b6005549060ff8216908115610601577fddffcdb3bb07c5efc18b0918cf4e3e88c7d42cc05156cdadb2ec12c3b5ff892f9260ff6105fc9360001901169060ff191617600555610f55610f4b33610d0b565b805460ff19169055565b604080513381526001600160a01b03909216602083015290918291820190565b3461001b5760008060031936011261081257610f8f6154bb565b33808252601060205260408220805460ff191690557f272215cde179041f7a3e8da6f8aabc7c8fc1336ccd73aba698cb825a80d3be488280a280f35b3461001b5760403660031901121561590c57600080fd5b6040519060e082016001600160401b0381118382101761067c57604052565b6040519060a082016001600160401b0381118382101761067c57604052565b6040519061052982610681565b6040519061052982610661565b6001600160401b03811161067c5760051b60200190565b81601f8201121561001b578035916110688361103a565b9261107660405194856106cc565b808452602092838086019260051b82010192831161001b578301905b8282106110a0575050505090565b83809183356110ae816108d1565b815201910190611092565b64ffffffffff81160361001b57565b3590610529826110b9565b359061ffff8216820361001b57565b3590610529826108d1565b91909160e08184031261001b57611102610fe2565b928135916001600160401b03831161001b5761112560c092611182948301611051565b8552611133602082016110c8565b6020860152611144604082016110c8565b6040860152611155606082016110d3565b60608601526111666080820161051e565b608086015261117760a082016110d3565b60a0860152016110e2565b60c0830152565b8015150361001b57565b919082608091031261001b576040516111ab81610661565b606080829480356111bb81611189565b845260208101356111cb81611189565b602085015260408101356111de81611189565b60408501520135916111ef83611189565b0152565b6001600160401b03811161067c57601f01601f191660200190565b91909161121a816111f3565b61122760405191826106cc565b8093828252821161001b57818160009384602080950137010152565b92919261124f826111f3565b9161125d60405193846106cc565b82948184528183011161001b578281602093846000960137010152565b9080601f8301121561001b5781602061074893359101611243565b91906101008382031261001b576112aa611001565b926001600160401b03813581811161001b57836112c89184016110ed565b85526112d78360208401611193565b602086015260a082013581811161001b57836112f491840161127a565b604086015260c082013590811161001b5760e09261131391830161127a565b606085015201356080830152565b929161132c8261103a565b9161133a60405193846106cc565b829481845260208094019160051b810192831161001b57905b8282106113605750505050565b81358152908301908301611353565b9080601f8301121561001b5781602061074893359101611321565b3461001b5760031960203682011261001b5760048035916001600160401b03919082841161001b5760a090843603011261001b576113c6611001565b918382013581811161001b576113e190833691870101611295565b8352602484013581811161001b576113fe90833691870101611051565b6020840152604484013581811161001b5761141e9083369187010161136f565b6040840152606484013590811161001b5761002093611447608492611452943691840101611051565b6060850152016110c8565b6080820152612ff8565b3461001b57602036600319011261001b5760206108c960043561545f565b9181601f8401121561001b578235916001600160401b03831161001b576020838186019501011161001b57565b606036600319011261001b576004356114bf816108d1565b6024356001600160401b03811161001b576114de90369060040161147a565b604051635c9fcd8560e11b8152600b60048201529192916001600160a01b03906020816024817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561157b5760009161154d575b50163303610ea257610020926044359261419b565b61156e915060203d8111611574575b61156681836106cc565b8101906135e7565b38611538565b503d61155c565b6135fc565b3461001b57600036600319011261001b57600080516020615f95833981519152546040516001600160a01b039091168152602090f35b3461001b57604036600319011261001b5760206108c96004356115d8816108d1565b602435906115e5826110b9565b6134f6565b3461001b57604036600319011261001b57600435611607816108d1565b6024356001600160401b03811161001b5761162690369060040161127a565b9030330361001b576000828192602082519201905af461166961167761164a61416b565b6040519283916020830195151586526040808401526060830190610712565b03601f1981018352826106cc565b5190fd5b3461001b576003196040368201811361001b576004803592602435906001600160401b03821161001b57606090823603011261001b576116b9613cff565b6116c284610835565b6116db60028201546116d636858701611ed0565b614e0e565b6116e48161331d565b916116ee83614bf4565b6116f7816122a1565b60058103611917575061170f60246117199201614152565b64ffffffffff1690565b8451631106aeeb60e21b808252600f8287019081526020966001600160a01b0396909492937f000000000000000000000000000000000000000000000000000000000000000088169289908290819083010381865afa94851561157b5789916000966118f8575b508a519384918252818061179b8a8201906017602083019252565b03915afa801561157b576117d9948a936000926118c9575b50806118b9575b50806118a7575b5001516117d49064ffffffffff1661170f565b61347f565b90814210611881578660008088886118188961180242600160271b1764ffffffffff168b613ad0565b600080516020615f958339815191525416610855565b915163e0a8f6f560e01b9181019182526024810186905261183c8160448101611669565b51915af461184861416b565b901561187c57507f416e669c63d9a3a5e36ee7cc7e2104b8db28ccd286aa18966e98fa230c73b08c600080a2610020614dec565b614223565b610cab86519283926303861c4b60e41b845264ffffffffff809216914216908401613ffe565b808410156117c15792506117d46117c1565b808511156117ba579350386117ba565b6118ea9192508a3d8c116118f1575b6118e281836106cc565b81019061415c565b90386117b3565b503d6118d8565b611910919650823d84116118f1576118e281836106cc565b9438611780565b8551630821641d60e21b8152908190610cab90828801613d37565b3461001b5761194036610dcc565b919061194d8382846157e1565b803b15159283611973575b50505061196157005b604051633da6393160e01b8152600490fd5b604051630a85bd0160e11b8082523360048301526001600160a01b03948516602483015260448201929092526080606482015260006084820181905291945092602092849260a4928492165af190811561157b576000916119e4575b506001600160e01b0319161415388080611958565b611a05915060203d8111611a0b575b6119fd81836106cc565b810190615c9a565b386119cf565b503d6119f3565b3461001b57602036600319011261001b57604080519081016001600160401b0381118282101761067c576040526001815260208101906020368337805115611a6a57610020916004359052611a656154bb565b6154ec565b6134ac565b64ffffffffff909116815260200190565b3461001b57600036600319011261001b57602064ffffffffff600e5460c01c16604051908152f35b3461001b57600036600319011261001b57600054604051602091821c6001600160a01b03168152f35b3461001b57602036600319011261001b576020600435611af0816108d1565b60018060a01b038091166000526004825260406000205416604051908152f35b3461001b57600036600319011261001b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461001b57600036600319011261001b57602060ff60055416604051908152f35b3461001b57602036600319011261001b576020611b94600435615c67565b6040516001600160a01b039091168152f35b3461001b57600036600319011261001b57600e5460405160609190911c6001600160601b03168152602090f35b3461001b57602036600319011261001b57600435611bf0816108d1565b6001600160a01b03168015611c1757600052600b6020526020604060002054604051908152f35b60405163d92e233d60e01b8152600490fd5b3461001b57600036600319011261001b576020600254604051908152f35b3461001b57602036600319011261001b57600435600052600f6020526020604060002054604051908152f35b3461001b57602036600319011261001b57610bc1610b89600435611c968161050d565b611c9e6154bb565b600080516020615e958339815191525460601c6001600160601b03166132a6565b919091606080608083019480511515845260208101511515602085015260408101511515604085015201511515910152565b3461001b57600036600319011261001b57611d0a61326b565b5061049b604051611d1a81610661565b60ff600080516020615ed58339815191525481811615158352818160081c1615156020840152818160101c161515604084015260181c161515606082015260405191829182611cbf565b3461001b576000806003193601126108125760405181600954611d8681610611565b808452906001908181169081156107ea5750600114611daf5761049b84610797818803826106cc565b6009835260209450600080516020615f358339815191525b828410611de3575050508161049b936107979282010193610787565b8054858501870152928501928101611dc7565b3461001b57600036600319011261001b57602064ffffffffff60005460c01c16604051908152f35b3461001b57600036600319011261001b57600e546040516001600160601b039091168152602090f35b3461001b57604036600319011261001b57600435611e64816108d1565b60243590611e7182611189565b33600052600d602052611e88816040600020610d73565b9115159160ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b91909160608184031261001b57604051906001600160401b0390606083018281118482101761067c5760405282948135611f09816110b9565b84526020820135611f19816110b9565b6020850152604082013592831161001b57604092611f37920161127a565b910152565b3461001b57604036600319011261001b576004356001600160401b03811161001b57611f6f61049b913690600401611ed0565b611f77613cff565b7fea77d064c7d953e57748855e7b0751ea190d1df7505615a4e39336d4d548f6886120b9611fa6600254613a60565b92611fb084600255565b6120ab611fbb613403565b612086611fcb6060830151610501565b9161207a611fdb60055460ff1690565b91612070611fee825164ffffffffff1690565b61205f6120126040612008602087015164ffffffffff1690565b95015161ffff1690565b9561205561201e611020565b9961203064ffffffffff42168c613302565b600060208c0152600060408c0152600060608c0152600060808c015260a08b0161330e565b60ff1660c0890152565b600060e08801526101008701613302565b6101208501613302565b61ffff16610140830152565b61208f83613458565b61209887610835565b9060026120a489610835565b0155613af5565b604051918291338684613cb4565b0390a16120c860243582613d99565b506105ec614dec565b3461001b57600036600319011261001b576120ea61326b565b5060806040516120f981610661565b600080516020615e958339815191525464ffffffffff808216928381526020810191808460281c1683526040820190606061ffff93848760501c168452019360018060601b03809660601c168552604051968752511660208601525116604084015251166060820152f35b3461001b57602036600319011261001b576004356001600160401b03811161001b5761219761002091369060040161136f565b611a656154bb565b3461001b57608036600319011261001b576004356121bc816108d1565b6024356121c8816108d1565b604435916064356001600160401b03811161001b576121eb90369060040161147a565b90926121f88582856157e1565b803b1515938461220f575b50505050905061196157005b61223a945060006020949660405196879586948593630a85bd0160e11b9b8c86523360048701615caf565b03926001600160a01b03165af190811561157b5760009161226d575b506001600160e01b03191614158038808080612203565b612285915060203d8111611a0b576119fd81836106cc565b38612256565b634e487b7160e01b600052602160045260246000fd5b600811156122ab57565b61228b565b9060088210156122ab5752565b6101606105299294936122d5836101808101976122b0565b805164ffffffffff166020840152602081015164ffffffffff166040840152604081015164ffffffffff166060840152606081015164ffffffffff16608084015260808101516001600160601b031660a084015260a08101516001600160601b031660c084015260c081015160ff1660e084015260e0810151612360610100918286019060ff169052565b810151612379610120918286019064ffffffffff169052565b81015190612393610140928386019064ffffffffff169052565b015161ffff16910152565b3461001b57602036600319011261001b57612413604061014081516123c281610681565b600091818380935282602082015282858201528260608201528260808201528260a08201528260c08201528260e082015282610100820152826101208201520152600435815260066020522061331d565b61241c81614bf4565b61049b604051928392836122bd565b3461001b5760203660031901121561590c57600080fd5b3461001b57600036600319011261001b57602060405160028152f35b3461001b57606036600319011261001b576020612495600435612480816108d1565b60243561248c816110b9565b604435916132bf565b6040516001600160601b039091168152f35b3461001b57602036600319011261001b576004356001600160401b03811161001b576108c96124dc6020923690600401611ed0565b613458565b3461001b57602036600319011261001b576004356124fe816110b9565b612506613585565b64ffffffffff9064ab2cb2186082821681146125cf57600080516020615ed58339815191525460181c60ff16156125bd57600e5460c01c64ffffffffff1692831690646b5b567bfe82149182156125b3575b5050612598577f33d3074d42e98b5940d3d8364ba0f3421c4fde9db929c3d1c2899a36c5b216f29161258982615093565b6105fc60405192839283613ffe565b60405163066a813560e51b815280610cab8460048301611a6f565b1490503880612558565b60405163064023b360e51b8152600490fd5b604051635f07128f60e01b8152600490fd5b6002111561001b57565b600211156122ab57565b9060028210156122ab5752565b3461001b57608036600319011261001b5761010061263d602435612625816125e1565b604435612631816108d1565b60643591600435613702565b6126c360e0604051926126518482516125f5565b6020810151602085015260018060a01b03806040830151166040860152806060830151166060860152608082015116608085015261269e60a082015160a086019060018060801b03169052565b60c0818101516001600160801b03169085015201516001600160601b031660e0830152565bf35b3461001b57600036600319011261001b576020600154604051908152f35b3461001b57600036600319011261001b57602060ff60005460081c166040519015158152f35b3461001b57604036600319011261001b57600080516020615f758339815191526105fc6004356105ec60243561273e8161050d565b82816127486154bb565b612753600e546133f4565b600080516020615e95833981519152546001600160601b039260609190911c83169081151590816127fc575b506127ed575b506127bc600080516020615e75833981519152926127a961056f876127d7956132a6565b6127b285610825565b549516809561347f565b806127c685610825565b556040519081529081906020820190565b0390a26127e383615c67565b9060170b90614669565b819003821693506127bc612785565b9050838061280a85856147dd565b92169116103861277f565b3461001b5760003660031901121561590c57600080fd5b3461001b57604036600319011261001b57602060ff612878600435612850816108d1565b6024359061285d826108d1565b6001600160a01b03166000908152600d855260409020610d73565b54166040519015158152f35b3461001b57602036600319011261001b576004356128a1816108d1565b60018060a01b03166000526003602052602060ff604060002054166040519015158152f35b60c036600319011261001b576001600160401b0360243581811161001b576128f360049136908301611ed0565b9060443583811161001b5761290b9036908301611051565b60643584811161001b57612922903690840161136f565b9060843585811161001b5761293a903690850161147a565b92909160a43596871161001b57612957610020973690870161147a565b96909535614016565b3461001b57602036600319011261001b57610020600435612980816108d1565b61298933614b38565b612995610ac333610cf1565b6001600160a01b039290838116612a67575033905b808416612a615750805b6129c16020840151610501565b93612a276129f46129ef6129ea6129db6040890151610501565b6001600160601b031660170b90565b614624565b615b65565b91841691612a1e612a0361102d565b97612a1564ffffffffff42168a613302565b6020890161330e565b6040870161330e565b338114156060860152612a3a8533614a20565b612a478361093b33610cf1565b33600080516020615f55833981519152600080a3336147f6565b906129b4565b906129aa565b3461001b5760008060031936011261081257604051635c9fcd8560e11b8152600b60048201526001600160a01b03906020816024817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561157b578391612b04575b501633141580612aef575b610ea257612aec61425e565b80f35b50612aff6109b46109ad33610d0b565b612ae0565b612b1c915060203d81116115745761156681836106cc565b38612ad5565b9181601f8401121561001b578235916001600160401b03831161001b576020808501948460051b01011161001b57565b3461001b57608036600319011261001b5760046001600160401b03813581811161001b57612b839036908401612b22565b9160243581811161001b57612b9b9036908601612b22565b9160443590811161001b57612bb39036908701612b22565b9560643596612bc1886108d1565b8615612fe857612bd36109ad33610d25565b92612be8600e5464ffffffffff9060c01c1690565b93159081612f8a575b600e805464ffffffffff60c01b19166405596590c360c51b1790556000805464ffffffffff60c01b19164260c01b64ffffffffff60c01b16179055612c35876156f0565b91888a6000805b8b8210612e25575050612c7d92612c5b610b8993612c60933691611321565b61560f565b612c78600080516020615e95833981519152546133f4565b6147dd565b60005460101c61ffff1661ffff1660005b888110612cd4577f1d1937c6b6f4541f415f6e3e99b2b7a960dcedc201d01deada3d90b8cf77f9578b8b6105fc8f8d8d612cc78e615093565b604051958695338761573c565b612ce7612ce2828b8b615722565b615732565b612cf182866150ba565b51612d07612cff8583613d86565b612710900490565b80612da9575b50612d19838887615722565b35808210612d84575090818e612d379493612d3c575b505050613a60565b612c8e565b6001600160a01b039280841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee03612d755750612d6d92166159f9565b38808e612d2f565b612d7f9350615a55565b612d6d565b60408051632d9eac9360e01b8152808b01938452602084019290925290918291010390fd5b9081612db4916134e9565b906001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee03612df857600054612df2919060201c6001600160a01b03166159f9565b38612d0d565b600054612e209190612e1a9060201c6001600160a01b0316610855565b610855565b84615a55565b612df2565b91509150612e3a612e15612ce2848d8d615722565b6001600160a01b039091161015612f7957879073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612e80612e1580612ce2858f612e7a8383838c615722565b98615722565b14818b8b600093600014612f105750505050475b60005b8d8d818310612eb65750505050612ead90613a60565b8b908b92612c3c565b612eeb612edd612ed7612ed186612f0b9796612efb96615722565b3561545f565b86613d86565b670de0b6b3a7640000900490565b612ef5868b6150ba565b5161347f565b612f05858a6150ba565b52613a60565b612e97565b612f2192612e1592612ce292615722565b612f448960405180936370a0823160e01b82528180602095869530908301610861565b03915afa92831561157b5792612f5c575b5050612e94565b612f729250803d106118f1576118e281836106cc565b3880612f55565b604051633a67cf6d60e01b81528690fd5b64ffffffffff8516646b5b567bfe8103612fa5575b50612bf1565b64ab2cb218608114908115612fde575b50612fc05738612f9f565b505060405163a16caf5360e01b8152928392610cab92508301611a6f565b9050421138612fb5565b50604051630c48157760e11b8152fd5b600090815460ff81166131cf5760ff1916600190811783557f5daa87a0e9463431830481fd4b6e3403442dfb9a12b9c07597e9f61d50b633c88380a180825192604084015193606081015194613088608083015196613083602085519501519361307e60208801516040890151908764ffffffffff608060608d01519c015116996150ce565b614ee9565b614fbe565b816131b2575b505084915b613168575b505050806130a4575050565b604051635c9fcd8560e11b8152601660048201526001600160a01b03906020816024817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561157b57849161314a575b501690813b156131465760405163fc9968df60e01b8152600481019190915291908290602490829084905af1801561157b576131335750565b806131406105299261069d565b80610606565b8280fd5b613162915060203d81116115745761156681836106cc565b386130fa565b80518210156131ad5782826131a66131996131946131878597876150ba565b516001600160a01b031690565b610d25565b805460ff19166001179055565b0191613093565b613098565b60600151909250156125bd576131c88392615093565b388061308e565b60405162dc149f60e41b8152600490fd5b3660041161001b576000356001600160e01b03191663bc197c8160e01b8114801561325b575b801561324b575b61323a57600080516020615f95833981519152546001600160a01b0316613234368061120e565b90615bad565b602090604051908152818101604052f35b50630a85bd0160e11b811461320d565b5063f23a6e6160e01b8114613206565b6040519061327882610661565b60006060838281528260208201528260408201520152565b634e487b7160e01b600052601160045260246000fd5b6001600160601b03918216908216019190821161060157565b916132cd9161074893614546565b6060810151156132ee576000905b602001516001600160601b0316906132a6565b60408101516001600160601b0316906132db565b9064ffffffffff169052565b6001600160601b039091169052565b9061052961ffff61332c611020565b936133e2600182549261338d64ffffffffff9461334b8682168b613302565b61335d868260281c1660208c01613302565b61336f868260501c1660408c01613302565b613381868260781c1660608c01613302565b60a01c60808a0161330e565b0154916133a66001600160601b03841660a0890161330e565b606083901c60ff1660c0880152606883901c60ff1660e08801526133d3818460701c166101008901613302565b8260981c166101208701613302565b60c01c1661014084019061ffff169052565b60601c6001600160601b031690565b6040519061341082610661565b600080516020615e958339815191525464ffffffffff8082168452602882901c166020840152605081901c61ffff166040840152606090811c6001600160601b031690830152565b9060408201916060835191825160208401208552209252565b906001820180921161060157565b9190820180921161060157565b8115613496570490565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8054821015611a6a5760005260206000200190600090565b60001981019190821161060157565b9190820391821161060157565b6001600160a01b031660009081526007602052604081208054925b8383106135305750505080613527575060001990565b610748906134da565b9091928084018085116106015760011c9061355a61354e83866134c2565b505464ffffffffff1690565b64ffffffffff848116911611156135755750925b9190613511565b935061358090613471565b61356e565b33600052600360205260ff6040600020541615610ea257565b604051906135ab826106b0565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b5190610529826108d1565b9081602091031261001b5751610748816108d1565b6040513d6000823e3d90fd5b60409194939261361c8260608101976125f5565b6001600160a01b031660208201520152565b51906001600160801b038216820361001b57565b51906105298261050d565b908161010091031261001b576136dd60e06040519261366b846106b0565b8051613676816125e1565b84526020810151602085015261368e604082016135dc565b604085015261369f606082016135dc565b60608501526136b0608082016135dc565b60808501526136c160a0820161362e565b60a08501526136d260c0820161362e565b60c085015201613642565b60e082015290565b156136ec57565b634e487b7160e01b600052600160045260246000fd5b909261370c61359e565b506137156139c4565b303303613924575b600080516020615e958339815191525460601c6001600160601b03161561391257604051635c9fcd8560e11b8152600c60048201526001600160a01b03906020816024817f000000000000000000000000000000000000000000000000000000000000000086165afa801561157b57826137cc917fdda962f630bf2f85c8412f305206a4f363688481dd632689f88ad7022e4cc233936000916138f4575b501693604051918291888a84613608565b0390a16137d7614dec565b6000549361ffff828660201c169560101c16956137f3816125eb565b80156138ae576138719392600096979261381b600184613815613824966125eb565b146136e5565b16948386615a55565b60405163eedaf00d60e01b81526001600160a01b03948516600482015230602482015295909316604486015261ffff90921660648501526101009392849284929091839182906084820190565b03925af191821561157b5760009261388857505090565b6107489250803d106138a7575b61389f81836106cc565b81019061364d565b503d613895565b5050604051631d1972a760e11b81523060048201526001600160a01b0390941660248501525061ffff909316604483015261010092839183919082908160648101613871565b61390c915060203d81116115745761156681836106cc565b386137bb565b6040516311bf009f60e21b8152600490fd5b60ff600080516020615ed58339815191525460181c1661399d5761394733614b38565b60408101516001600160601b039061395e90610501565b1615908161397f575b501561371d5760405163ea8e4eb560e01b8152600490fd5b61399691506020613991910151610501565b610501565b1538613967565b604051632e31362d60e01b8152600490fd5b9081602091031261001b575161074881611189565b6040516331a1aa3360e11b8152601560048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561157b57600091613a32575b50613a2057565b604051632fb3e88560e01b8152600490fd5b613a53915060203d8111613a59575b613a4b81836106cc565b8101906139af565b38613a19565b503d613a41565b60001981146106015760010190565b9064ffffffffff1664ffffffffff19825416179055565b805464ffffffffff60281b191660289290921b64ffffffffff60281b16919091179055565b805464ffffffffff60501b191660509290921b64ffffffffff60501b16919091179055565b805464ffffffffff60781b191660789290921b64ffffffffff60781b16919091179055565b90613c98610140600161052994613b1a613b14865164ffffffffff1690565b82613a6f565b613b35613b2f602087015164ffffffffff1690565b82613a86565b613b50613b4a604087015164ffffffffff1690565b82613aab565b613b6b613b65606087015164ffffffffff1690565b82613ad0565b613b9b613b7b6080870151610501565b82546001600160a01b031660a09190911b6001600160a01b031916178255565b0192613bc9613bad60a0830151610501565b85546001600160601b0319166001600160601b03909116178555565b613bf4613bda60c083015160ff1690565b855460ff60601b191660609190911b60ff60601b16178555565b613c1f613c0560e083015160ff1690565b855460ff60681b191660689190911b60ff60681b16178555565b613c57613c3561010083015164ffffffffff1690565b855464ffffffffff60701b191660709190911b64ffffffffff60701b16178555565b613c8f613c6d61012083015164ffffffffff1690565b855464ffffffffff60981b191660989190911b64ffffffffff60981b16178555565b015161ffff1690565b815461ffff60c01b191660c09190911b61ffff60c01b16179055565b916107489360409160c093855260018060a01b0316602085015260608285015264ffffffffff8082511660608601526020820151166080850152015191606060a08201520190610712565b613d0833614b38565b60408101516001600160601b03908116159182613d28575b5050610ea257565b60200151161590503880613d20565b60208101929161052991906122b0565b64ffffffffff908116600019019190821161060157565b60ff1660ff81146106015760010190565b906127109182810292818404149015171561060157565b8181029291811591840414171561060157565b90613da382610835565b91613dad8361331d565b90613db782614bf4565b613dc0816122a1565b600181141580613fea575b80613fd6575b610c8e575060005460c01c64ffffffffff1664ffffffffff9081164214613fc1576003850194613e046109ad3388610d73565b613fa657613e3d61399195613e20613199610748993390610d73565b613e37613e32875164ffffffffff1690565b613d47565b336132bf565b937fea45672a2d92b09ff2dd48aa67615f8b5c79d7808b7282fc026a24e00283f78d613ebf6080830196613e7e613e7882610a878b51610501565b8961330e565b613e8a6109ad33610d0b565b613f80575b613e998486613af5565b604080518881523360208201526001600160601b03909216908201529081906060820190565b0390a182613ed5602083015164ffffffffff1690565b16159081613f2e575b50613eed575b50505051610501565b613ef991421690613a86565b7fe36f8b7448daff4a52e2945db0d1d7a436279cc1d527a45c27835dcbd27f336d600080a2613f26614dec565b388080613ee4565b9050613f78613f71610140613f67613f51613f4c6139918b51610501565b613d6f565b613f6161399160a0880151610501565b9061348c565b93015161ffff1690565b61ffff1690565b111538613ede565b613fa160e08501613f9a613f95825160ff1690565b613d5e565b60ff169052565b613e8f565b604051630b517d8f60e41b815280610cab3360048301610861565b6040516001621af97960e21b03198152600490fd5b50613fe0816122a1565b6004811415613dd1565b50613ff4816122a1565b6003811415613dcb565b64ffffffffff91821681529116602082015260400190565b939491969290966140256139c4565b61402d613cff565b61403685610835565b9761404560028a015482614e0e565b61404e8961331d565b9661405888614bf4565b614061816122a1565b600481149081158061413e575b610c8e5761407b906122a1565b6140fa575b61408d6109b48585614db9565b6140e8576140d0986140c26140ca926140ba6109b49b6140b58f64ffffffffff421690613ad0565b614b83565b973691611243565b963691611243565b95614417565b6140d75750565b805464ffffffffff60781b19169055565b604051633b43666f60e01b8152600490fd5b815164ffffffffff90811642811061411e57506141199042168b613aab565b614080565b604051632f7e600560e21b8152918291610cab9142169060048401613ffe565b50614148816122a1565b600581141561406e565b35610748816110b9565b9081602091031261001b575190565b3d15614196573d9061417c826111f3565b9161418a60405193846106cc565b82523d6000602084013e565b606090565b90939260ff60005460081c1661422b576000806040518588823780868101838152039084865af16141ca61416b565b901561422357506142187f66cf5924183d7d44caa75d9268a169d7c1422fef43848743d5e1ba32d5833acf949560405194859460018060a01b0316855260606020860152606085019161423d565b9060408301520390a1565b602081519101fd5b6040516304e71fd360e31b8152600490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b61010061ff001960005416176000557f447e75484d6bdb571b4a92ae14018db7b6dd41f3f02360690c554e1d48f46f87600080a1565b90815180825260208080930193019160005b8281106142b4575050505090565b8351855293810193928101926001016142a6565b91906020928381528151848201526142ef8483015160e06040840152610100830190610712565b9061432361430f604085015193601f199485858303016060860152610712565b606085015184848303016080850152610712565b92608081015160a083015260a081015193838382030160c084015286808651928381520195019060005b8181106143715750505061074894955060c060e09101519282850301910152614294565b82516001600160a01b03168752958801959188019160010161434d565b81601f8201121561001b5780516143a4816111f3565b926143b260405194856106cc565b8184526020828401011161001b5761074891602080850191016106ef565b9060208282031261001b5781516001600160401b03811161001b57610748920161438e565b6001600160a01b03909116815260406020820181905261074892910190610712565b9593600095939291946040879601519461442f610fe2565b898152602081019690965260408601526060850152608084015260a083015260c0820152600080516020615f9583398151915254614475906001600160a01b0316610855565b9060405161449881611669602082019463a7c8a3f960e01b8652602483016142c8565b51915af46144a461416b565b901561187c57806020806144bd935183010191016143d0565b907fc98fbf8f20b11b050a9541d12aee1c11fcd31e8e42975cc885fb3d33a6accc82604051806144ee8533836143f5565b0390a26144f9614dec565b511590565b9060405161450b81610661565b915464ffffffffff81168352602881901c6001600160601b039081166020850152608882901c16604084015260e81c60ff1615156060830152565b919061455061326b565b9261455a81610d3f565b9283548061456b575b505050505090565b8082109081614602575b816145c2575b506145b157509061458b916134f6565b906001820161459c57808080614563565b6107489250906145ab916134c2565b506144fe565b91505061074892506145ab916134c2565b6145cc91506134da565b811480156145db575b3861457b565b506145f161354e6145eb83613471565b866134c2565b64ffffffffff8085169116116145d5565b905061461161354e83876134c2565b64ffffffffff8086169116111590614575565b60170b906001600160bf1b0382136001600160bf1b031983121761060157565b601791820b910b01906001600160bf1b031982126001600160bf1b0383131761060157565b906105299161467781614b38565b906001600160a01b038061468a83610cf1565b54168061472f57508182915b602085015160408601516001600160601b03918216976146bd926129ef921660170b614644565b906146f7818416918516926146ee6146d361102d565b996146e564ffffffffff42168c613302565b60208b0161330e565b6040890161330e565b81811415606088015261470a8784614a20565b6147178461093b85610cf1565b600080516020615f55833981519152600080a36147f6565b918291614696565b916105299261474581614b38565b91614752610ac383610cf1565b6001600160a01b0392908381166147d7575080915b8084166147d1575081925b61479b6129ef6147856020880151610501565b976147966129db60408a0151610501565b614644565b906147b1818416918616926146ee6146d361102d565b8181141560608801526147c48784614a20565b6147178561093b85610cf1565b92614772565b91614767565b6001600160601b03918216908216039190821161060157565b90936001600160a01b0383811694919285158015614961575b61494f578116908616958187141580614945575b6148fb575b508403614837575b5050505050565b6148cf9461486861484785614b38565b93614862604061485a6020880151610501565b920151610501565b906132a6565b94146148d9575b50806148c1614891606061488960406148ca960151610501565b930151151590565b916148b861489d61102d565b966148af64ffffffffff421689613302565b6020880161330e565b6040860161330e565b15156060840152565b614a20565b3880808080614830565b6148ca91936148ee60406148f4930151610501565b906147dd565b929061486f565b8061490861493f92614b38565b906148ca61492961491c6020850151610501565b6148ee6040890151610501565b926148c161489160606148896040850151610501565b38614828565b5085871415614823565b60405163e5ec2d2560e01b8152600490fd5b508187161561480f565b91906149e15761498364ffffffffff82511683613a6f565b602081015182546040830151606090930151600160281b600160f01b031990911660289290921b600160281b600160881b03169190911760889290921b600160881b600160e81b03169190911790151560e81b60ff60e81b16179055565b634e487b7160e01b600052600060045260246000fd5b80549190600160401b83101561067c5782614a1a916001610529950181556134c2565b9061496b565b90614aca64ffffffffff92838351167f59c8109016c9c9310894a72309b48d2a442208dacb537923fca808618ce5710260018060601b03602086015116614a6a6040870151610501565b90614ac2614a7b6060890151151590565b6040805164ffffffffff90971687526001600160601b039384166020880152929093169185019190915290151560608401526001600160a01b038416929081906080820190565b0390a2610d3f565b9182549081614adf575b5050610529916149f7565b614b02614af76145ab614af1856134da565b876134c2565b5164ffffffffff1690565b90614b1561170f855164ffffffffff1690565b911614614b225780614ad4565b61052992614b32614a1a926134da565b906134c2565b90614b4161326b565b6001600160a01b03909216600090815260076020526040902080549081614b66575050565b91925060001981019190821161060157610748916145ab916134c2565b608081015160a082015160009291614ba7916001600160601b039081169116614d6b565b614bd2575b8060ff60e08160c0614bc5950151169201511690614d9f565b614bcc5790565b60021790565b60019150614bac565b91909164ffffffffff8080941691160191821161060157565b64ffffffffff80614c0a835164ffffffffff1690565b1615614d6457614c2561170f604084015164ffffffffff1690565b614d3257608082019160018060601b0380614c408551610501565b1614614d2a5781421692614c5c602083015164ffffffffff1690565b838116614ca257505080614c8b610100614c7e614c91945164ffffffffff1690565b92015164ffffffffff1690565b90614bdb565b161115614c9d57600190565b600290565b614cbe90614c8b610120859795969496015164ffffffffff1690565b161115614d2357614cd2614ce59151610501565b614cdf60a0840151610501565b90614d6b565b614d1d5780614d0960e0614d0060c0614d0f95015160ff1690565b92015160ff1690565b90614d9f565b614d1857600390565b600490565b50600490565b5050600490565b505050600290565b60609091015164ffffffffff1690811615614d5e57600160271b90811614614d5957600690565b600790565b50600590565b5050600090565b6001600160601b0391906127109083168181029181159183041417156106015761270f92614d9a92169061348c565b101590565b60ff168015159182614db057505090565b60ff1614919050565b60015491614dc691614dca565b1490565b6020815160051b9101206000526020815160051b910120602052604060002090565b600080516020615eb583398151915260408051600081526000196020820152a1565b614e1790613458565b90818103614e23575050565b6044925060405191630267877160e11b835260048301526024820152fd5b601f8111614e4d575050565b6000906008825260208220906020601f850160051c83019410614e8b575b601f0160051c01915b828110614e8057505050565b818155600101614e74565b9092508290614e6b565b601f8111614ea1575050565b6000906009825260208220906020601f850160051c83019410614edf575b601f0160051c01915b828110614ed457505050565b818155600101614ec8565b9092508290614ebf565b80519091906001600160401b03811161067c57614f1081614f0b600854610611565b614e41565b602080601f8311600114614f4c5750819293600092614f41575b50508160011b916000199060031b1c191617600855565b015190503880614f2a565b6008600052601f19831694909190600080516020615ef5833981519152926000905b878210614fa6575050836001959610614f8d575b505050811b01600855565b015160001960f88460031b161c19169055388080614f82565b80600185968294968601518155019501930190614f6e565b80519091906001600160401b03811161067c57614fe581614fe0600954610611565b614e95565b602080601f83116001146150215750819293600092615016575b50508160011b916000199060031b1c191617600955565b015190503880614fff565b6009600052601f19831694909190600080516020615f35833981519152926000905b87821061507b575050836001959610615062575b505050811b01600955565b015160001960f88460031b161c19169055388080615057565b80600185968294968601518155019501930190615043565b600e805464ffffffffff60c01b191660c09290921b64ffffffffff60c01b16919091179055565b8051821015611a6a5760209160051b010190565b9260a08401926150e0845161ffff1690565b9361271061ffff9581878216116153f0575060209182880192615108845164ffffffffff1690565b9764ffffffffff98610e108a821610615418575060608a019361512d855161ffff1690565b91821690811591821561540e575b50506153f05750604097888a0190615158825164ffffffffff1690565b90811680159081156153e3575b506153c757508851635c9fcd8560e11b815260026004820152916001600160a01b039080846024817f000000000000000000000000000000000000000000000000000000000000000086165afa801561157b578c6152526152f0986152388f61534b9f61522761521b61530b9f614af7615230946152c99f9d6080976152659f9d8f61525c9f6000926153a2575b506152076152159293519586928301611cbf565b03601f1981018552846106cc565b16615989565b9a5164ffffffffff1690565b935161ffff1690565b940151610501565b9461524b61524461102d565b9889613302565b8701613302565b61ffff16848d0152565b6060830161330e565b64ffffffffff815116600080516020615e958339815191529182549164ffffffffff60281b602083015160281b169061ffff60501b604084015160501b169260606001811b600160c01b0391015160601b169360018060c01b031916171717179055565b6152e86152d889515160ff1690565b60ff1660ff196005541617600555565b5161ffff1690565b63ffff00006000549160101b169063ffff0000191617600055565b61534661531b60c0870151610855565b60008054600160201b600160c01b03191660209290921b600160201b600160c01b0316919091179055565b615435565b60ff8251511161538f575060005b815190815181101561538a5761538061319961537b61318784615385966150ba565b610d0b565b613a60565b615359565b505050565b5160016211dcdd60e31b03198152600490fd5b61521592506153c061520791833d85116115745761156681836106cc565b92506151f3565b8951636dfaf3cd60e01b8152908190610cab9060048301611a6f565b62278d0091501138615165565b6040516323dd0d6d60e11b815261ffff919091166004820152602490fd5b119050388061513b565b604051636dfaf3cd60e01b8152908190610cab9060048301611a6f565b90815181510361544d5761544891614dca565b600155565b6040516357cc2fc760e01b8152600490fd5b600080516020615e958339815191525460601c6001600160601b03169060008261548b57505050600090565b6040918152600f602052205490670de0b6b3a764000091828102928184041490151715610601576107489161348c565b33600052601060205260ff6040600020541615610ea257565b60170b6001600160bf1b031981146106015760000390565b9060008092815b81518110156155cc5780600080516020615e558339815191526155196155c793856150ba565b519661552488615c67565b976155bf61554461553d61553784610825565b54615b39565b80946132a6565b998861554f84610825565b5561559060409184600080516020615e7583398151915284518061557881906000602083019252565b0390a26105e66001600160601b03871660170b6154d4565b61559983615ce0565b5133815260208101929092526001600160601b0390921660408201529081906060820190565b0390a1613a60565b6154f3565b5050506155e161056f83612c78600e546133f4565b600080516020615eb58339815191526040518061560a8160008152600019602082015260400190565b0390a1565b919060009283845b82518110156156d957908161562e849386956150ba565b5161563881615c67565b95615678575b61566f92816155bf61566461553d615537600080516020615e5583398151915296610825565b988b61554f84610825565b92909192615617565b336001600160a01b0387161415806156c1575b806156a8575b1561563e5760405163ea8e4eb560e01b8152600490fd5b506156bc6109b46109ad336109a88a610cd7565b615691565b50336156d2612e15610ac384610815565b141561568b565b50935050506155e161056f83612c78600e546133f4565b906156fa8261103a565b61570760405191826106cc565b8281528092615718601f199161103a565b0190602036910137565b9190811015611a6a5760051b0190565b35610748816108d1565b6001600160a01b03918216815260806020808301829052908201859052909796959390926001600160fb1b03821161001b5760c0916005959493951b809160a08b013788018360a0820160a08b84030160408c0152520193926000905b8382106157bb5750505050509060606105299294019060018060a01b03169052565b909192939483806001928489356157d1816108d1565b1681520196019493920190615799565b6000838152600f60205260409020546001600160bf1b0381116158f457615826906001600160c01b031660170b61582061581a826154d4565b84614669565b83614669565b615835612e15610ac385610845565b6001600160a01b0380831692918303610983578316928315611c175782331415806158db575b806158c3575b6109835761587161589292610d59565b805460001901905561588281610d59565b8054600101905561093b85610845565b6158ae61589e84610815565b80546001600160a01b0319169055565b600080516020615f15833981519152600080a4565b506158d3612e15610ac387610815565b331415615861565b506158ef6109b46109ad336109a886610cd7565b61585b565b6024906040519063e9a5989b60e01b82526004820152fd5b604051635c9fcd8560e11b81526004808201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561157b5760009161596b575b50613234363661120e565b615983915060203d81116115745761156681836106cc565b38615960565b600080516020615f9583398151915280546001600160a01b039283166001600160a01b03198216811790925560405163347d5e2560e21b60208201908152600095869591936159e492849261166992909116602484016143f5565b51915af46159f061416b565b90156142235750565b8115615a51576001600160a01b031690600090819081908190855af190615a1e61416b565b9115615a28575050565b610cab60405192839263354db69760e01b84526004840152604060248401526044830190610712565b5050565b60405163a9059cbb60e01b602082019081526001600160a01b0384166024830152604482018590529294919392600091829190615a958160648101611669565b5190826001600160a01b0388165af1615aac61416b565b90615ae4575b5050604051631702a98760e11b81526001600160a01b0392831660048201529290911660248301526044820152606490fd5b805115615b0e5780602080615afe935183010191016139af565b615b085780615ab2565b92505050565b50925050803b15615b1c5750565b604051639fe23a3960e01b8152908190610cab9060048301610861565b6001600160601b0390818111615b4d571690565b60249060405190636f55e21560e11b82526004820152fd5b8060170b600081128015615b9d575b615b8557506001600160601b031690565b602490604051906394e08f6160e01b82526004820152fd5b506001600160601b038113615b74565b303b1561001b5760405190633e4011b960e01b82528180615bd56000958694600484016143f5565b0381305afa9081615c50575b50615c3c57615bee61416b565b805181019160408284031261081257602082015192615c0c84611189565b6040830151916001600160401b0383116108125750615c3292602091820192010161438e565b90615c5f57614223565b634e487b7160e01b81526001600452602490fd5b615c599061069d565b38615be1565b602081519101f35b6000908152600a60205260409020546001600160a01b0316908115615c8857565b604051634d5e5fb360e01b8152600490fd5b9081602091031261001b57516107488161042d565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526107489391019161423d565b6000818152600a60205260408120546001600160a01b0316801561098357808252600b602052604082208054600019019055615d1b83610845565b80546001600160a01b0319908116909155615d3584610815565b908154169055600080516020615f158339815191528280a4565b90615d5a8183615dfa565b813b15159182615d6d575b505061196157565b604051630a85bd0160e11b80825233600483015260006024830181905260448301949094526080606483015260848201849052935091602091839160a4918391906001600160a01b03165af190811561157b57600091615ddc575b506001600160e01b03191614153880615d65565b615df4915060203d8111611a0b576119fd81836106cc565b38615dc8565b6001600160a01b0381811691908215611c175783600052600a602052604060002054166109835780615e2e615e3e92610d59565b6001815401905561093b84610845565b6000600080516020615f158339815191528180a456fe49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a84a9a38a0d320e93bcc5ebdabf23f355777c9b2251f0a2eceb54e0bddcf6f728eb054550c406db3b89dc7016369a66aff0ce40188133281942b92e6188c6b1f16bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661ceb054550c406db3b89dc7016369a66aff0ce40188133281942b92e6188c6b1f0f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afad2543a59f1b8c397ab540030b195cbeea5fadc4d5560e9fdf1ca5f750b72506f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7eb054550c406db3b89dc7016369a66aff0ce40188133281942b92e6188c6b1efa264697066735822122097f5f6956229f8906b7e26d827851f89d6c4eb3eeb5ae1e4696922a5eef938d864736f6c63430008140033000000000000000000000000cede25df327bd1619fe25cda2292e14edac30717