0 txs
10 calls
constructor
No constructor.
functions
BALLOT_TYPEHASH
viewfunction BALLOT_TYPEHASH() view returns (bytes32)
DOMAIN_TYPEHASH
viewfunction DOMAIN_TYPEHASH() view returns (bytes32)
emergencyQuorumVotes
viewfunction emergencyQuorumVotes() view returns (uint256)
emergencyTimelockDelay
viewfunction emergencyTimelockDelay() view returns (uint256)
emergencyVotingPeriod
viewfunction emergencyVotingPeriod() view returns (uint256)
getActions
viewfunction getActions(uint256 proposalId) view returns (address[] targets, uint256[] values, string[] signatures, bytes[] calldatas)
getReceipt
viewfunction getReceipt(uint256 proposalId, address voter) view returns (tuple)
GRACE_PERIOD
viewfunction GRACE_PERIOD() view returns (uint256)
implementation
viewfunction implementation() view returns (address)
initialized
viewfunction initialized() view returns (bool)
initialProposalId
viewfunction initialProposalId() view returns (uint256)
ipt
viewfunction ipt() view returns (address)
isWhitelisted
viewfunction isWhitelisted(address account) view returns (bool)
latestProposalIds
viewfunction latestProposalIds(address) view returns (uint256)
maxWhitelistPeriod
viewfunction maxWhitelistPeriod() view returns (uint256)
name
viewfunction name() view returns (string)
optimisticQuorumVotes
viewfunction optimisticQuorumVotes() view returns (uint256)
optimisticVotingDelay
viewfunction optimisticVotingDelay() view returns (uint256)
proposalCount
viewfunction proposalCount() view returns (uint256)
proposalMaxOperations
viewfunction proposalMaxOperations() view returns (uint256)
proposalReceipts
viewfunction proposalReceipts(uint256, address) view returns (bool hasVoted, uint8 support, uint96 votes)
proposals
viewfunction proposals(uint256) view returns (uint256 id, address proposer, uint256 eta, uint256 startBlock, uint256 endBlock, uint256 forVotes, uint256 againstVotes, uint256 abstainVotes, bool canceled, bool executed, bool emergency, uint256 quorumVotes, uint256 delay)
proposalThreshold
viewfunction proposalThreshold() view returns (uint256)
proposalTimelockDelay
viewfunction proposalTimelockDelay() view returns (uint256)
queuedTransactions
viewfunction queuedTransactions(bytes32) view returns (bool)
quorumVotes
viewfunction quorumVotes() view returns (uint256)
state
viewfunction state(uint256 proposalId) view returns (uint8)
votingDelay
viewfunction votingDelay() view returns (uint256)
votingPeriod
viewfunction votingPeriod() view returns (uint256)
whitelistAccountExpirations
viewfunction whitelistAccountExpirations(address) view returns (uint256)
whitelistGuardian
viewfunction whitelistGuardian() view returns (address)
_setDelay
nonpayablefunction _setDelay(uint256 proposalTimelockDelay_)
_setEmergencyDelay
nonpayablefunction _setEmergencyDelay(uint256 emergencyTimelockDelay_)
_setEmergencyQuorumVotes
nonpayablefunction _setEmergencyQuorumVotes(uint256 newEmergencyQuorumVotes)
_setEmergencyVotingPeriod
nonpayablefunction _setEmergencyVotingPeriod(uint256 newEmergencyVotingPeriod)
_setNewToken
nonpayablefunction _setNewToken(address token_)
_setOptimisticDelay
nonpayablefunction _setOptimisticDelay(uint256 newOptimisticVotingDelay)
_setOptimisticQuorumVotes
nonpayablefunction _setOptimisticQuorumVotes(uint256 newOptimisticQuorumVotes)
_setProposalThreshold
nonpayablefunction _setProposalThreshold(uint256 newProposalThreshold)
_setQuorumVotes
nonpayablefunction _setQuorumVotes(uint256 newQuorumVotes)
_setVotingDelay
nonpayablefunction _setVotingDelay(uint256 newVotingDelay)
_setVotingPeriod
nonpayablefunction _setVotingPeriod(uint256 newVotingPeriod)
_setWhitelistAccountExpiration
nonpayablefunction _setWhitelistAccountExpiration(address account, uint256 expiration)
_setWhitelistGuardian
nonpayablefunction _setWhitelistGuardian(address account)
cancel
nonpayablefunction cancel(uint256 proposalId)
castVote
nonpayablefunction castVote(uint256 proposalId, uint8 support)
castVoteBySig
nonpayablefunction castVoteBySig(uint256 proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s)
castVoteWithReason
nonpayablefunction castVoteWithReason(uint256 proposalId, uint8 support, string reason)
execute
payablefunction execute(uint256 proposalId) payable
executeTransaction
payablefunction executeTransaction(address target, uint256 value, string signature, bytes data, uint256 eta) payable
initialize
nonpayablefunction initialize(address ipt_)
propose
nonpayablefunction propose(address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, string description, bool emergency) returns (uint256)
queue
nonpayablefunction queue(uint256 proposalId)
setMaxWhitelistPeriod
nonpayablefunction setMaxWhitelistPeriod(uint256 second)
events
CancelTransaction
event CancelTransaction(bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta)
EmergencyVotingPeriodSet
event EmergencyVotingPeriodSet(uint256 oldEmergencyVotingPeriod, uint256 emergencyVotingPeriod)
ExecuteTransaction
event ExecuteTransaction(bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta)
NewAdmin
event NewAdmin(address oldAdmin, address newAdmin)
NewDelay
event NewDelay(uint256 oldTimelockDelay, uint256 proposalTimelockDelay)
NewEmergencyDelay
event NewEmergencyDelay(uint256 oldEmergencyTimelockDelay, uint256 emergencyTimelockDelay)
NewEmergencyQuorum
event NewEmergencyQuorum(uint256 oldEmergencyQuorumVotes, uint256 emergencyQuorumVotes)
NewImplementation
event NewImplementation(address oldImplementation, address newImplementation)
NewPendingAdmin
event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin)
NewQuorum
event NewQuorum(uint256 oldQuorumVotes, uint256 quorumVotes)
OptimisticQuorumVotesSet
event OptimisticQuorumVotesSet(uint256 oldOptimisticQuorumVotes, uint256 optimisticQuorumVotes)
OptimisticVotingDelaySet
event OptimisticVotingDelaySet(uint256 oldOptimisticVotingDelay, uint256 optimisticVotingDelay)
ProposalCanceled
event ProposalCanceled(uint256 indexed id)
ProposalCreated
event ProposalCreated(uint256 indexed id, address indexed proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 indexed startBlock, uint256 endBlock, string description)
ProposalExecuted
event ProposalExecuted(uint256 indexed id)
ProposalQueued
event ProposalQueued(uint256 indexed id, uint256 eta)
ProposalThresholdSet
event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold)
QueueTransaction
event QueueTransaction(bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta)
VoteCast
event VoteCast(address indexed voter, uint256 indexed proposalId, uint8 support, uint256 votes, string reason)
VotingDelaySet
event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay)
VotingPeriodSet
event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod)
WhitelistAccountExpirationSet
event WhitelistAccountExpirationSet(address account, uint256 expiration)
WhitelistGuardianSet
event WhitelistGuardianSet(address oldGuardian, address newGuardian)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613ea4806100206000396000f3fe6080604052600436106103355760003560e01c80637b3c71d3116101ab578063d50572ee116100f7578063f0843ba811610095578063fc176c041161006f578063fc176c0414610bbd578063fc4eee4214610bdd578063fc66ff1414610bf3578063fe0d94c114610c1357600080fd5b8063f0843ba814610b4d578063f2b0653714610b6d578063f682e04c14610b9d57600080fd5b8063de7bc127116100d1578063de7bc12714610a27578063deaaa7cc14610a3d578063e23a9a5214610a71578063e837159c14610b3757600080fd5b8063d50572ee146109db578063da35c664146109f1578063ddf0b00914610a0757600080fd5b8063a6d8784a11610164578063c1a287e21161013e578063c1a287e21461096e578063c4d66de814610985578063c5a8425d146109a5578063c9fb9e87146109c557600080fd5b8063a6d8784a14610922578063abaac6a814610938578063b58131b01461095857600080fd5b80637b3c71d3146108775780637bdbe4d0146108975780637cae57bb146108ac578063806bd581146108c257806386d37e8b146108e2578063995333651461090257600080fd5b80632fedff591161028557806340e58ee51161022357806356781388116101fd57806356781388146107815780635c60da1b146107a157806362775f19146107d957806366176743146107f957600080fd5b806340e58ee5146107215780634d6733d214610741578063504420981461076157600080fd5b80633932abb11161025f5780633932abb1146106865780633af32abf1461069c5780633bccf4fd146106d45780633e4f49e6146106f457600080fd5b80632fedff5914610609578063328dd9821461062957806338bd0dda1461065957600080fd5b8063158ef93e116102f257806318b62629116102cc57806318b62629146105895780631dfb1b5a1461059f57806320606b70146105bf57806324bc1a64146105f357600080fd5b8063158ef93e1461051257806317977c611461053c57806317ba1b8b1461056957600080fd5b8063013cf08b1461033a57806302a251a31461044357806306fdde03146104675780630825f38f146104bd5780630ea2d98c146104d2578063140499ea146104f2575b600080fd5b34801561034657600080fd5b506103ce61035536600461334d565b60096020819052600091825260409091208054600182015460028301546007840154600885015495850154600a860154600b870154600c880154600d890154600e9099015497996001600160a01b0390971698959794969593949293919260ff808316936101008404821693620100009004909116918d565b604080519d8e526001600160a01b03909c1660208e01529a8c019990995260608b019790975260808a019590955260a089019390935260c088019190915260e08701521515610100860152151561012085015215156101408401526101608301526101808201526101a0015b60405180910390f35b34801561044f57600080fd5b5061045960045481565b60405190815260200161043a565b34801561047357600080fd5b506104b06040518060400160405280601a81526020017f496e7465726573742050726f746f636f6c20476f7665726e6f7200000000000081525081565b60405161043a91906133c2565b6104d06104cb3660046134af565b610c26565b005b3480156104de57600080fd5b506104d06104ed36600461334d565b610e9c565b3480156104fe57600080fd5b506104d061050d366004613535565b610f01565b34801561051e57600080fd5b5060125461052c9060ff1681565b604051901515815260200161043a565b34801561054857600080fd5b50610459610557366004613535565b600a6020526000908152604090205481565b34801561057557600080fd5b506104d061058436600461334d565b610f42565b34801561059557600080fd5b50610459600f5481565b3480156105ab57600080fd5b506104d06105ba36600461334d565b610f9f565b3480156105cb57600080fd5b506104597f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b3480156105ff57600080fd5b5061045960015481565b34801561061557600080fd5b506104d061062436600461334d565b610ffc565b34801561063557600080fd5b5061064961064436600461334d565b611059565b60405161043a9493929190613619565b34801561066557600080fd5b50610459610674366004613535565b600d6020526000908152604090205481565b34801561069257600080fd5b5061045960035481565b3480156106a857600080fd5b5061052c6106b7366004613535565b6001600160a01b03166000908152600d6020526040902054421090565b3480156106e057600080fd5b506104d06106ef366004613682565b6112ea565b34801561070057600080fd5b5061071461070f36600461334d565b611551565b60405161043a91906136e6565b34801561072d57600080fd5b506104d061073c36600461334d565b6116d9565b34801561074d57600080fd5b506104d061075c36600461370e565b611bbb565b34801561076d57600080fd5b506104d061077c36600461334d565b611c80565b34801561078d57600080fd5b506104d061079c366004613738565b611cdd565b3480156107ad57600080fd5b506000546107c1906001600160a01b031681565b6040516001600160a01b03909116815260200161043a565b3480156107e557600080fd5b506104d06107f436600461334d565b611d44565b34801561080557600080fd5b5061084f610814366004613764565b601160209081526000928352604080842090915290825290205460ff808216916101008104909116906201000090046001600160601b031683565b60408051931515845260ff90921660208401526001600160601b03169082015260600161043a565b34801561088357600080fd5b506104d0610892366004613787565b611d68565b3480156108a357600080fd5b50610459600a81565b3480156108b857600080fd5b50610459600c5481565b3480156108ce57600080fd5b506104d06108dd36600461334d565b611db7565b3480156108ee57600080fd5b506104d06108fd36600461334d565b611e14565b34801561090e57600080fd5b506104d061091d366004613535565b611e71565b34801561092e57600080fd5b5061045960155481565b34801561094457600080fd5b506104d061095336600461334d565b611eea565b34801561096457600080fd5b5061045960055481565b34801561097a57600080fd5b506104596212750081565b34801561099157600080fd5b506104d06109a0366004613535565b611f47565b3480156109b157600080fd5b50600e546107c1906001600160a01b031681565b3480156109d157600080fd5b5061045960135481565b3480156109e757600080fd5b5061045960025481565b3480156109fd57600080fd5b5061045960075481565b348015610a1357600080fd5b506104d0610a2236600461334d565b612038565b348015610a3357600080fd5b5061045960105481565b348015610a4957600080fd5b506104597f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610a7d57600080fd5b50610b07610a8c366004613764565b60408051606081018252600080825260208201819052918101919091525060009182526011602090815260408084206001600160a01b03939093168452918152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b03169082015260600161043a565b348015610b4357600080fd5b5061045960145481565b348015610b5957600080fd5b506104d0610b6836600461334d565b6123ee565b348015610b7957600080fd5b5061052c610b8836600461334d565b600b6020526000908152604090205460ff1681565b348015610ba957600080fd5b50610459610bb8366004613a0f565b61244b565b348015610bc957600080fd5b506104d0610bd836600461334d565b612aa7565b348015610be957600080fd5b5061045960065481565b348015610bff57600080fd5b506008546107c1906001600160a01b031681565b6104d0610c2136600461334d565b612b04565b60008585858585604051602001610c41959493929190613af0565b60408051601f1981840301815291815281516020928301206000818152600b90935291205490915060ff16610cb65760405162461bcd60e51b81526020600482015260166024820152753a3c103430b9b713ba103132b2b71038bab2bab2b21760511b60448201526064015b60405180910390fd5b81421015610d065760405162461bcd60e51b815260206004820152601d60248201527f7478206861736e2774207375727061737365642074696d656c6f636b2e0000006044820152606401610cad565b610d136212750083613b52565b421115610d515760405162461bcd60e51b815260206004820152600c60248201526b3a3c1034b99039ba30b6329760a11b6044820152606401610cad565b6000818152600b60205260409020805460ff191690558351606090610d77575082610da3565b848051906020012084604051602001610d91929190613b6a565b60405160208183030381529060405290505b6000876001600160a01b03168783604051610dbe9190613b9b565b60006040518083038185875af1925050503d8060008114610dfb576040519150601f19603f3d011682016040523d82523d6000602084013e610e00565b606091505b5050905080610e4a5760405162461bcd60e51b81526020600482015260166024820152753a3c1032bc32b1baba34b7b7103932bb32b93a32b21760511b6044820152606401610cad565b876001600160a01b0316837fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e789898989604051610e8a9493929190613bb7565b60405180910390a35050505050505050565b333014610ebb5760405162461bcd60e51b8152600401610cad90613bf4565b600480549082905560408051828152602081018490527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e882891015b60405180910390a15050565b333014610f205760405162461bcd60e51b8152600401610cad90613bf4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b333014610f615760405162461bcd60e51b8152600401610cad90613bf4565b600580549082905560408051828152602081018490527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054619101610ef5565b333014610fbe5760405162461bcd60e51b8152600401610cad90613bf4565b600380549082905560408051828152602081018490527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a939101610ef5565b33301461101b5760405162461bcd60e51b8152600401610cad90613bf4565b601480549082905560408051828152602081018490527f519a192fe8db9e38785eb494c69f530ddb21b9e34322f8d08fe29bd3849749889101610ef5565b606080606080600060096000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156110db57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110bd575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561112d57602002820191906000526020600020905b815481526020019060010190808311611119575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561120157838290600052602060002001805461117490613c2b565b80601f01602080910402602001604051908101604052809291908181526020018280546111a090613c2b565b80156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081526020019060010190611155565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156112d457838290600052602060002001805461124790613c2b565b80601f016020809104026020016040519081016040528092919081815260200182805461127390613c2b565b80156112c05780601f10611295576101008083540402835291602001916112c0565b820191906000526020600020905b8154815290600101906020018083116112a357829003601f168201915b505050505081526020019060010190611228565b5050505090509450945094509450509193509193565b604080518082018252601a81527f496e7465726573742050726f746f636f6c20476f7665726e6f7200000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f75a838dcd8ee5903cc7f4a5799344d0080864f57a6e9911f8bdfb4c8ddce9b5481840152466060820152306080808301919091528351808303909101815260a0820184528051908301207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f60c083015260e0820189905260ff8816610100808401919091528451808403909101815261012083019094528351939092019290922061190160f01b6101408401526101428301829052610162830181905290916000906101820160408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015611477573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166114da5760405162461bcd60e51b815260206004820181905260248201527f63617374566f746542795369673a20696e76616c6964207369676e61747572656044820152606401610cad565b88816001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a611512858e8e612cef565b6040805160ff90931683526001600160601b039091166020830152606090820181905260009082015260800160405180910390a3505050505050505050565b60008160075410158015611566575060065482115b6115b25760405162461bcd60e51b815260206004820152601a60248201527f73746174653a20696e76616c69642070726f706f73616c2069640000000000006044820152606401610cad565b600082815260096020908152604080832060018101546001600160a01b03168452600d90925290912054600c82015442919091109060ff16156115f9575060029392505050565b8160070154431161160e575060009392505050565b81600801544311611623575060019392505050565b808015611637575081600d015482600a0154115b80611653575080158015611653575081600a0154826009015411155b8061166e57508015801561166e575081600d01548260090154105b1561167d575060039392505050565b6002820154611690575060049392505050565b600c820154610100900460ff16156116ac575060079392505050565b6212750082600201546116bf9190613b52565b42106116cf575060069392505050565b5060059392505050565b60076116e482611551565b60078111156116f5576116f56136d0565b14156117435760405162461bcd60e51b815260206004820152601d60248201527f63616e742063616e63656c2065786563757465642070726f706f73616c0000006044820152606401610cad565b600081815260096020526040902060018101546001600160a01b0316336001600160a01b0316146119b05760018101546001600160a01b03166000908152600d60205260409020544210156118b3576005546008546001838101546001600160a01b039283169263782d6fe1929116906117bd9043613c66565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b15801561180157600080fd5b505afa158015611815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118399190613c7d565b6001600160601b03161080156118625750600e546001600160a01b0316336001600160a01b0316145b6118ae5760405162461bcd60e51b815260206004820152601c60248201527f63616e63656c3a2077686974656c69737465642070726f706f736572000000006044820152606401610cad565b6119b0565b6005546008546001838101546001600160a01b039283169263782d6fe1929116906118de9043613c66565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b15801561192257600080fd5b505afa158015611936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195a9190613c7d565b6001600160601b0316106119b05760405162461bcd60e51b815260206004820181905260248201527f63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c646044820152606401610cad565b600c8101805460ff1916600117905560005b6003820154811015611b8b57611b798260030182815481106119e6576119e6613ca6565b6000918252602090912001546004840180546001600160a01b039092169184908110611a1457611a14613ca6565b9060005260206000200154846005018481548110611a3457611a34613ca6565b906000526020600020018054611a4990613c2b565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7590613c2b565b8015611ac25780601f10611a9757610100808354040283529160200191611ac2565b820191906000526020600020905b815481529060010190602001808311611aa557829003601f168201915b5050505050856006018581548110611adc57611adc613ca6565b906000526020600020018054611af190613c2b565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1d90613c2b565b8015611b6a5780601f10611b3f57610100808354040283529160200191611b6a565b820191906000526020600020905b815481529060010190602001808311611b4d57829003601f168201915b50505050508660020154612f71565b80611b8381613cbc565b9150506119c2565b5060405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b333014611bda5760405162461bcd60e51b8152600401610cad90613bf4565b42601554611be89190613b52565b8110611c2f5760405162461bcd60e51b81526020600482015260166024820152750caf0e0d2e4c2e8d2dedc40caf0c6cacac8e640dac2f60531b6044820152606401610cad565b6001600160a01b0382166000818152600d6020908152604091829020849055815192835282018390527f4e7b7545bc5744d0e30425959f4687475774b6c7edad77d24cb51c7d967d45159101610ef5565b333014611c9f5760405162461bcd60e51b8152600401610cad90613bf4565b601080549082905560408051828152602081018490527f2a61b867418a359864adca8bb250ea65ee8bd41dbfd0279198d8e7552d4a27c29101610ef5565b81337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda483611d0c838583612cef565b6040805160ff90931683526001600160601b039091166020830152606090820181905260009082015260800160405180910390a35050565b333014611d635760405162461bcd60e51b8152600401610cad90613bf4565b601555565b83337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda485611d97838583612cef565b8686604051611da99493929190613cd7565b60405180910390a350505050565b333014611dd65760405162461bcd60e51b8152600401610cad90613bf4565b601380549082905560408051828152602081018490527f8cb5451eee8feb516cec9cd600201bbc31a30886d70c841a085a3fa69a4294d19101610ef5565b333014611e335760405162461bcd60e51b8152600401610cad90613bf4565b600180549082905560408051828152602081018490527fa74554b0f53da47d07ec571d712428b3720460f54f81375fbcf78f6b5f72e7ed9101610ef5565b333014611e905760405162461bcd60e51b8152600401610cad90613bf4565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f80a07e73e552148844a9c216d9724212d609cfa54e9c1a2e97203bdd2c4ad3419101610ef5565b333014611f095760405162461bcd60e51b8152600401610cad90613bf4565b600f80549082905560408051828152602081018490527f80a384652af83fc00bfd40ef94edda7ede83e7db39931b2c889821573f314e239101610ef5565b60125460ff1615611f9a5760405162461bcd60e51b815260206004820152601860248201527f616c7265616479206265656e20696e697469616c697a656400000000000000006044820152606401610cad565b600880546001600160a01b0319166001600160a01b0392909216919091179055619d8060045561335460035569d3c21bcecceda10000006005556202a300600c5560006007556a084595161401484a00000060019081556a21165458500521280000006002556119aa600f5561a8c06010556a01a784379d99db420000006013556146506014556301e133806015556012805460ff19169091179055565b600461204382611551565b6007811115612054576120546136d0565b146120a15760405162461bcd60e51b815260206004820152601f60248201527f63616e206f6e6c792062652071756575656420696620737563636565646564006044820152606401610cad565b6000818152600960205260408120600e8101549091906120c19042613b52565b905060005b60038301548110156123ac57600b60008460030183815481106120eb576120eb613ca6565b6000918252602090912001546004860180546001600160a01b03909216918590811061211957612119613ca6565b906000526020600020015486600501858154811061213957612139613ca6565b9060005260206000200187600601868154811061215857612158613ca6565b9060005260206000200187604051602001612177959493929190613dc1565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff16156121ed5760405162461bcd60e51b815260206004820152601760248201527f70726f706f73616c20616c7265616479207175657565640000000000000000006044820152606401610cad565b61239983600301828154811061220557612205613ca6565b6000918252602090912001546004850180546001600160a01b03909216918490811061223357612233613ca6565b906000526020600020015485600501848154811061225357612253613ca6565b90600052602060002001805461226890613c2b565b80601f016020809104026020016040519081016040528092919081815260200182805461229490613c2b565b80156122e15780601f106122b6576101008083540402835291602001916122e1565b820191906000526020600020905b8154815290600101906020018083116122c457829003601f168201915b50505050508660060185815481106122fb576122fb613ca6565b90600052602060002001805461231090613c2b565b80601f016020809104026020016040519081016040528092919081815260200182805461233c90613c2b565b80156123895780601f1061235e57610100808354040283529160200191612389565b820191906000526020600020905b81548152906001019060200180831161236c57829003601f168201915b50505050508688600e015461300b565b50806123a481613cbc565b9150506120c6565b506002820181905560405181815283907f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28929060200160405180910390a2505050565b33301461240d5760405162461bcd60e51b8152600401610cad90613bf4565b600280549082905560408051828152602081018490527fc2adf06da6765dba7faaccde4c0ce3f91c35dd3390e7f0b6bc2844202c9fa9529101610ef5565b6000600154600014156124955760405162461bcd60e51b8152602060048201526012602482015271436861726c6965206e6f742061637469766560701b6044820152606401610cad565b6005546008546001600160a01b031663782d6fe1336124b5600143613c66565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b1580156124f957600080fd5b505afa15801561250d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125319190613c7d565b6001600160601b031610158061254b575061254b336106b7565b6125975760405162461bcd60e51b815260206004820152601e60248201527f766f7465732062656c6f772070726f706f73616c207468726573686f6c6400006044820152606401610cad565b855187511480156125a9575084518751145b80156125b6575083518751145b6126025760405162461bcd60e51b815260206004820152601a60248201527f696e666f726d6174696f6e206172697479206d69736d617463680000000000006044820152606401610cad565b86516126475760405162461bcd60e51b81526020600482015260146024820152736d7573742070726f7669646520616374696f6e7360601b6044820152606401610cad565b600a8751111561268c5760405162461bcd60e51b815260206004820152601060248201526f746f6f206d616e7920616374696f6e7360801b6044820152606401610cad565b336000908152600a602052604090205480156127755760006126ad82611551565b905060018160078111156126c3576126c36136d0565b14156127115760405162461bcd60e51b815260206004820152601e60248201527f6f6e65206c6976652070726f706f73616c207065722070726f706f73657200006044820152606401610cad565b6000816007811115612725576127256136d0565b14156127735760405162461bcd60e51b815260206004820152601e60248201527f6f6e65206c6976652070726f706f73616c207065722070726f706f73657200006044820152606401610cad565b505b6007805490600061278583613cbc565b9190505550600060405180610220016040528060075481526020016127a73390565b6001600160a01b03168152602001600081526020018a8152602001898152602001888152602001878152602001600354436127e29190613b52565b8152602001600454600354436127f89190613b52565b6128029190613b52565b815260200160008152602001600081526020016000815260200160001515815260200160001515815260200185151581526020016001548152602001600c5481525090508380156128595750612857336106b7565b155b1561288b574360e08201819052600f5461287291613b52565b6101008201526002546101e08201526010546102008201525b612894336106b7565b156128d5576013546101e08201526014546128af9043613b52565b60e08201526004546014546128c49043613b52565b6128ce9190613b52565b6101008201525b805160009081526009602090815260409182902083518155818401516001820180546001600160a01b0319166001600160a01b03909216919091179055918301516002830155606083015180518493926129369260038501929101906130fc565b5060808201518051612952916004840191602090910190613161565b5060a0820151805161296e91600584019160209091019061319c565b5060c0820151805161298a9160068401916020909101906131f5565b5060e08281015160078301556101008084015160088401556101208401516009840155610140840151600a80850191909155610160850151600b850155610180850151600c850180546101a08801516101c089015161ffff1990921693151561ff0019169390931792151585029290921762ff0000191662010000921515929092029190911790556101e0850151600d85015561020090940151600e9093019290925583516020808601516001600160a01b0316600090815294905260409384902055830151835191840151925190923392917f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091612a92918f918f918f918f918f90613dfa565b60405180910390a45198975050505050505050565b333014612ac65760405162461bcd60e51b8152600401610cad90613bf4565b600c80549082905560408051828152602081018490527fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be9101610ef5565b6005612b0f82611551565b6007811115612b2057612b206136d0565b14612b6d5760405162461bcd60e51b815260206004820152601c60248201527f63616e206f6e6c792062652065786563276420696620717565756564000000006044820152606401610cad565b6000818152600960205260408120600c8101805461ff001916610100179055905b6003820154811015612cbf57306001600160a01b0316630825f38f836004018381548110612bbe57612bbe613ca6565b9060005260206000200154846003018481548110612bde57612bde613ca6565b6000918252602090912001546004860180546001600160a01b039092169186908110612c0c57612c0c613ca6565b9060005260206000200154866005018681548110612c2c57612c2c613ca6565b90600052602060002001876006018781548110612c4b57612c4b613ca6565b9060005260206000200188600201546040518763ffffffff1660e01b8152600401612c7a959493929190613dc1565b6000604051808303818588803b158015612c9357600080fd5b505af1158015612ca7573d6000803e3d6000fd5b50505050508080612cb790613cbc565b915050612b8e565b5060405182907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050565b60006001612cfc84611551565b6007811115612d0d57612d0d6136d0565b14612d4d5760405162461bcd60e51b815260206004820152601060248201526f1d9bdd1a5b99c81a5cc818db1bdcd95960821b6044820152606401610cad565b60028260ff161115612d955760405162461bcd60e51b8152602060048201526011602482015270696e76616c696420766f7465207479706560781b6044820152606401610cad565b6000838152600960209081526040808320601183528184206001600160a01b0389168552909252909120805460ff1615612e075760405162461bcd60e51b81526020600482015260136024820152721d9bdd195c88185b1c9958591e481d9bdd1959606a1b6044820152606401610cad565b600854600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191612e51918b916004016001600160a01b03929092168252602082015260400190565b60206040518083038186803b158015612e6957600080fd5b505afa158015612e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea19190613c7d565b905060ff8516612ece57806001600160601b031683600a0154612ec49190613b52565b600a840155612f28565b8460ff1660011415612efd57806001600160601b03168360090154612ef39190613b52565b6009840155612f28565b8460ff1660021415612f2857806001600160601b031683600b0154612f229190613b52565b600b8401555b81546001600160601b03821662010000026dffffffffffffffffffffffff00001960ff88166101000261ffff199093169290921760011791909116179091559150509392505050565b60008585858585604051602001612f8c959493929190613af0565b60408051601f1981840301815282825280516020918201206000818152600b909252919020805460ff1916905591506001600160a01b0387169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790612ffb908990899089908990613bb7565b60405180910390a3505050505050565b60006130178242613b52565b83101561305c5760405162461bcd60e51b815260206004820152601360248201527236bab9ba1039b0ba34b9b33c903232b630bc9760691b6044820152606401610cad565b60008787878787604051602001613077959493929190613af0565b60408051601f1981840301815282825280516020918201206000818152600b909252919020805460ff1916600117905591506001600160a01b0389169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f906130e9908b908b908b908b90613bb7565b60405180910390a3979650505050505050565b828054828255906000526020600020908101928215613151579160200282015b8281111561315157825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061311c565b5061315d92915061324e565b5090565b828054828255906000526020600020908101928215613151579160200282015b82811115613151578251825591602001919060010190613181565b8280548282559060005260206000209081019282156131e9579160200282015b828111156131e957825180516131d9918491602090910190613263565b50916020019190600101906131bc565b5061315d9291506132d6565b828054828255906000526020600020908101928215613242579160200282015b828111156132425782518051613232918491602090910190613263565b5091602001919060010190613215565b5061315d9291506132f3565b5b8082111561315d576000815560010161324f565b82805461326f90613c2b565b90600052602060002090601f0160209004810192826132915760008555613151565b82601f106132aa57805160ff1916838001178555613151565b828001600101855582156131515791820182811115613151578251825591602001919060010190613181565b8082111561315d5760006132ea8282613310565b506001016132d6565b8082111561315d5760006133078282613310565b506001016132f3565b50805461331c90613c2b565b6000825580601f1061332c575050565b601f01602090049060005260206000209081019061334a919061324e565b50565b60006020828403121561335f57600080fd5b5035919050565b60005b83811015613381578181015183820152602001613369565b83811115613390576000848401525b50505050565b600081518084526133ae816020860160208601613366565b601f01601f19169290920160200192915050565b6020815260006133d56020830184613396565b9392505050565b80356001600160a01b03811681146133f357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613437576134376133f8565b604052919050565b600082601f83011261345057600080fd5b813567ffffffffffffffff81111561346a5761346a6133f8565b61347d601f8201601f191660200161340e565b81815284602083860101111561349257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156134c757600080fd5b6134d0866133dc565b945060208601359350604086013567ffffffffffffffff808211156134f457600080fd5b61350089838a0161343f565b9450606088013591508082111561351657600080fd5b506135238882890161343f565b95989497509295608001359392505050565b60006020828403121561354757600080fd5b6133d5826133dc565b600081518084526020808501945080840160005b838110156135895781516001600160a01b031687529582019590820190600101613564565b509495945050505050565b600081518084526020808501945080840160005b83811015613589578151875295820195908201906001016135a8565b600081518084526020808501808196508360051b8101915082860160005b8581101561360c5782840389526135fa848351613396565b988501989350908401906001016135e2565b5091979650505050505050565b60808152600061362c6080830187613550565b828103602084015261363e8187613594565b9050828103604084015261365281866135c4565b9050828103606084015261366681856135c4565b979650505050505050565b803560ff811681146133f357600080fd5b600080600080600060a0868803121561369a57600080fd5b853594506136aa60208701613671565b93506136b860408701613671565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061370857634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561372157600080fd5b61372a836133dc565b946020939093013593505050565b6000806040838503121561374b57600080fd5b8235915061375b60208401613671565b90509250929050565b6000806040838503121561377757600080fd5b8235915061375b602084016133dc565b6000806000806060858703121561379d57600080fd5b843593506137ad60208601613671565b9250604085013567ffffffffffffffff808211156137ca57600080fd5b818701915087601f8301126137de57600080fd5b8135818111156137ed57600080fd5b8860208285010111156137ff57600080fd5b95989497505060200194505050565b600067ffffffffffffffff821115613828576138286133f8565b5060051b60200190565b600082601f83011261384357600080fd5b813560206138586138538361380e565b61340e565b82815260059290921b8401810191818101908684111561387757600080fd5b8286015b848110156138995761388c816133dc565b835291830191830161387b565b509695505050505050565b600082601f8301126138b557600080fd5b813560206138c56138538361380e565b82815260059290921b840181019181810190868411156138e457600080fd5b8286015b8481101561389957803583529183019183016138e8565b600082601f83011261391057600080fd5b813560206139206138538361380e565b82815260059290921b8401810191818101908684111561393f57600080fd5b8286015b8481101561389957803567ffffffffffffffff8111156139635760008081fd5b6139718986838b010161343f565b845250918301918301613943565b600082601f83011261399057600080fd5b813560206139a06138538361380e565b82815260059290921b840181019181810190868411156139bf57600080fd5b8286015b8481101561389957803567ffffffffffffffff8111156139e35760008081fd5b6139f18986838b010161343f565b8452509183019183016139c3565b803580151581146133f357600080fd5b60008060008060008060c08789031215613a2857600080fd5b863567ffffffffffffffff80821115613a4057600080fd5b613a4c8a838b01613832565b97506020890135915080821115613a6257600080fd5b613a6e8a838b016138a4565b96506040890135915080821115613a8457600080fd5b613a908a838b016138ff565b95506060890135915080821115613aa657600080fd5b613ab28a838b0161397f565b94506080890135915080821115613ac857600080fd5b50613ad589828a0161343f565b925050613ae460a088016139ff565b90509295509295509295565b60018060a01b038616815284602082015260a060408201526000613b1760a0830186613396565b8281036060840152613b298186613396565b9150508260808301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115613b6557613b65613b3c565b500190565b6001600160e01b0319831681528151600090613b8d816004850160208701613366565b919091016004019392505050565b60008251613bad818460208701613366565b9190910192915050565b848152608060208201526000613bd06080830186613396565b8281036040840152613be28186613396565b91505082606083015295945050505050565b60208082526017908201527f6d75737420636f6d652066726f6d2074686520676f762e000000000000000000604082015260600190565b600181811c90821680613c3f57607f821691505b60208210811415613c6057634e487b7160e01b600052602260045260246000fd5b50919050565b600082821015613c7857613c78613b3c565b500390565b600060208284031215613c8f57600080fd5b81516001600160601b03811681146133d557600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415613cd057613cd0613b3c565b5060010190565b60ff851681526001600160601b038416602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b8054600090600181811c9080831680613d3a57607f831692505b6020808410821415613d5c57634e487b7160e01b600052602260045260246000fd5b838852818015613d735760018114613d8757613db5565b60ff19861689830152604089019650613db5565b876000528160002060005b86811015613dad5781548b8201850152908501908301613d92565b8a0183019750505b50505050505092915050565b60018060a01b038616815284602082015260a060408201526000613de860a0830186613d20565b8281036060840152613b298186613d20565b60c081526000613e0d60c0830189613550565b8281036020840152613e1f8189613594565b90508281036040840152613e3381886135c4565b90508281036060840152613e4781876135c4565b905084608084015282810360a0840152613e618185613396565b999850505050505050505056fea264697066735822122000e40c115adf11f2a3314eb026f440db57ec3b94f64ced5eb66af4989730a76c64736f6c63430008090033