More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,415 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 20862021 | 57 days ago | IN | 0 ETH | 0.00045844 | ||||
Withdraw | 9501310 | 1744 days ago | IN | 0 ETH | 0.00031785 | ||||
Deposit | 9488655 | 1746 days ago | IN | 0 ETH | 0.00055459 | ||||
Withdraw | 9441181 | 1753 days ago | IN | 0 ETH | 0.00006357 | ||||
Withdraw | 9339489 | 1769 days ago | IN | 0 ETH | 0.00061785 | ||||
Withdraw | 9205556 | 1789 days ago | IN | 0 ETH | 0.00031773 | ||||
Deposit | 9205549 | 1789 days ago | IN | 0 ETH | 0.00070447 | ||||
Withdraw | 9205516 | 1789 days ago | IN | 0 ETH | 0.00031785 | ||||
Withdraw | 9170537 | 1796 days ago | IN | 0 ETH | 0.00031785 | ||||
Withdraw | 9059970 | 1817 days ago | IN | 0 ETH | 0.00044409 | ||||
Withdraw | 9059964 | 1817 days ago | IN | 0 ETH | 0.00044409 | ||||
Withdraw | 9059960 | 1817 days ago | IN | 0 ETH | 0.00044409 | ||||
Finalize | 9027694 | 1823 days ago | IN | 0 ETH | 0.0010393 | ||||
Finalize | 9023198 | 1823 days ago | IN | 0 ETH | 0.00010393 | ||||
Deposit | 9019274 | 1824 days ago | IN | 0 ETH | 0.00067419 | ||||
Finalize | 9011683 | 1826 days ago | IN | 0 ETH | 0.00027667 | ||||
Vote No | 9010228 | 1826 days ago | IN | 0 ETH | 0.00090399 | ||||
Vote Yes | 9009608 | 1826 days ago | IN | 0 ETH | 0.00034392 | ||||
Vote Yes | 9009602 | 1826 days ago | IN | 0 ETH | 0.00034392 | ||||
Vote No | 9004562 | 1827 days ago | IN | 0 ETH | 0.00090399 | ||||
Vote Yes | 9001427 | 1827 days ago | IN | 0 ETH | 0.0005732 | ||||
Vote Yes | 8999787 | 1828 days ago | IN | 0 ETH | 0.0007232 | ||||
Deposit | 8998020 | 1828 days ago | IN | 0 ETH | 0.00067355 | ||||
Finalize | 8994815 | 1828 days ago | IN | 0 ETH | 0.0010393 | ||||
Propose | 8987626 | 1830 days ago | IN | 0 ETH | 0.0002225 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7723872 | 2028 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
HumanityGovernance
Compiler Version
v0.5.7+commit.6da8b019
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-09 */ pragma solidity 0.5.7; pragma experimental ABIEncoderV2; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath::mul: Integer overflow"); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath::div: Invalid divisor zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath::sub: Integer underflow"); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath::add: Integer overflow"); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath::mod: Invalid divisor zero"); return a % b; } } /** * @title Void * @dev Collects failed proposal fees. */ contract Void {} /** * @title Governance * @dev Plutocratic voting system. */ contract Governance { using SafeMath for uint; event Execute(uint indexed proposalId); event Propose(uint indexed proposalId, address indexed proposer, address indexed target, bytes data); event RemoveVote(uint indexed proposalId, address indexed voter); event Terminate(uint indexed proposalId); event Vote(uint indexed proposalId, address indexed voter, bool approve, uint weight); enum Result { Pending, Yes, No } struct Proposal { Result result; address target; bytes data; address proposer; address feeRecipient; uint fee; uint startTime; uint yesCount; uint noCount; } uint public constant OPEN_VOTE_PERIOD = 2 days; uint public constant VETO_PERIOD = 2 days; uint public constant TOTAL_VOTE_PERIOD = OPEN_VOTE_PERIOD + VETO_PERIOD; uint public proposalFee; IERC20 public token; Void public void; Proposal[] public proposals; // Proposal Id => Voter => Yes Votes mapping(uint => mapping(address => uint)) public yesVotes; // Proposal Id => Voter => No Votes mapping(uint => mapping(address => uint)) public noVotes; // Voter => Deposit mapping (address => uint) public deposits; // Voter => Withdraw timestamp mapping (address => uint) public withdrawTimes; constructor(IERC20 _token, uint _initialProposalFee) public { token = _token; proposalFee = _initialProposalFee; void = new Void(); } function deposit(uint amount) public { require(token.transferFrom(msg.sender, address(this), amount), "Governance::deposit: Transfer failed"); deposits[msg.sender] = deposits[msg.sender].add(amount); } function withdraw(uint amount) public { require(time() > withdrawTimes[msg.sender], "Governance::withdraw: Voters with an active proposal cannot withdraw"); deposits[msg.sender] = deposits[msg.sender].sub(amount); require(token.transfer(msg.sender, amount), "Governance::withdraw: Transfer failed"); } function propose(address target, bytes memory data) public returns (uint) { return proposeWithFeeRecipient(msg.sender, target, data); } function proposeWithFeeRecipient(address feeRecipient, address target, bytes memory data) public returns (uint) { require(msg.sender != address(this) && target != address(token), "Governance::proposeWithFeeRecipient: Invalid proposal"); require(token.transferFrom(msg.sender, address(this), proposalFee), "Governance::proposeWithFeeRecipient: Transfer failed"); uint proposalId = proposals.length; // Create a new proposal and vote yes Proposal memory proposal; proposal.target = target; proposal.data = data; proposal.proposer = msg.sender; proposal.feeRecipient = feeRecipient; proposal.fee = proposalFee; proposal.startTime = time(); proposal.yesCount = proposalFee; proposals.push(proposal); emit Propose(proposalId, msg.sender, target, data); return proposalId; } function voteYes(uint proposalId) public { Proposal storage proposal = proposals[proposalId]; require(time() <= proposal.startTime.add(OPEN_VOTE_PERIOD), "Governance::voteYes: Proposal is no longer accepting yes votes"); uint proposalEndTime = proposal.startTime.add(TOTAL_VOTE_PERIOD); if (proposalEndTime > withdrawTimes[msg.sender]) withdrawTimes[msg.sender] = proposalEndTime; uint weight = deposits[msg.sender].sub(yesVotes[proposalId][msg.sender]); proposal.yesCount = proposal.yesCount.add(weight); yesVotes[proposalId][msg.sender] = deposits[msg.sender]; emit Vote(proposalId, msg.sender, true, weight); } function voteNo(uint proposalId) public { Proposal storage proposal = proposals[proposalId]; require(proposal.result == Result.Pending, "Governance::voteNo: Proposal is already finalized"); uint proposalEndTime = proposal.startTime.add(TOTAL_VOTE_PERIOD); uint _time = time(); require(_time <= proposalEndTime, "Governance::voteNo: Proposal is no longer in voting period"); uint _deposit = deposits[msg.sender]; uint weight = _deposit.sub(noVotes[proposalId][msg.sender]); proposal.noCount = proposal.noCount.add(weight); noVotes[proposalId][msg.sender] = _deposit; emit Vote(proposalId, msg.sender, false, weight); // Finalize the vote and burn the proposal fee if no votes outnumber yes votes and open voting has ended if (_time > proposal.startTime.add(OPEN_VOTE_PERIOD) && proposal.noCount >= proposal.yesCount) { proposal.result = Result.No; require(token.transfer(address(void), proposal.fee), "Governance::voteNo: Transfer to void failed"); emit Terminate(proposalId); } else if (proposalEndTime > withdrawTimes[msg.sender]) { withdrawTimes[msg.sender] = proposalEndTime; } } function removeVote(uint proposalId) public { Proposal storage proposal = proposals[proposalId]; require(proposal.result == Result.Pending, "Governance::removeVote: Proposal is already finalized"); require(time() <= proposal.startTime.add(TOTAL_VOTE_PERIOD), "Governance::removeVote: Proposal is no longer in voting period"); proposal.yesCount = proposal.yesCount.sub(yesVotes[proposalId][msg.sender]); proposal.noCount = proposal.noCount.sub(noVotes[proposalId][msg.sender]); delete yesVotes[proposalId][msg.sender]; delete noVotes[proposalId][msg.sender]; emit RemoveVote(proposalId, msg.sender); } function finalize(uint proposalId) public { Proposal storage proposal = proposals[proposalId]; require(proposal.result == Result.Pending, "Governance::finalize: Proposal is already finalized"); uint _time = time(); if (proposal.yesCount > proposal.noCount) { require(_time > proposal.startTime.add(TOTAL_VOTE_PERIOD), "Governance::finalize: Proposal cannot be executed until end of veto period"); proposal.result = Result.Yes; require(token.transfer(proposal.feeRecipient, proposal.fee), "Governance::finalize: Return proposal fee failed"); proposal.target.call(proposal.data); emit Execute(proposalId); } else { require(_time > proposal.startTime.add(OPEN_VOTE_PERIOD), "Governance::finalize: Proposal cannot be terminated until end of yes vote period"); proposal.result = Result.No; require(token.transfer(address(void), proposal.fee), "Governance::finalize: Transfer to void failed"); emit Terminate(proposalId); } } function setProposalFee(uint fee) public { require(msg.sender == address(this), "Governance::setProposalFee: Proposal fee can only be set via governance"); proposalFee = fee; } function time() public view returns (uint) { return block.timestamp; } function getProposal(uint proposalId) external view returns (Proposal memory) { return proposals[proposalId]; } function getProposalsCount() external view returns (uint) { return proposals.length; } } /** * @title HumanityGovernance * @dev Plutocratic voting system that uses Humanity token for voting and proposal fees. */ contract HumanityGovernance is Governance { constructor(IERC20 humanity, uint proposalFee) public Governance(humanity, proposalFee) {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"result","type":"uint8"},{"name":"target","type":"address"},{"name":"data","type":"bytes"},{"name":"proposer","type":"address"},{"name":"feeRecipient","type":"address"},{"name":"fee","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"yesCount","type":"uint256"},{"name":"noCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proposalId","type":"uint256"}],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"yesVotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"fee","type":"uint256"}],"name":"setProposalFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proposalId","type":"uint256"}],"name":"voteNo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"proposalId","type":"uint256"}],"name":"removeVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"OPEN_VOTE_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proposalId","type":"uint256"}],"name":"voteYes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_VOTE_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getProposalsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"data","type":"bytes"}],"name":"propose","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"void","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawTimes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proposalFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"proposalId","type":"uint256"}],"name":"getProposal","outputs":[{"components":[{"name":"result","type":"uint8"},{"name":"target","type":"address"},{"name":"data","type":"bytes"},{"name":"proposer","type":"address"},{"name":"feeRecipient","type":"address"},{"name":"fee","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"yesCount","type":"uint256"},{"name":"noCount","type":"uint256"}],"name":"","type":"tuple"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"noVotes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"feeRecipient","type":"address"},{"name":"target","type":"address"},{"name":"data","type":"bytes"}],"name":"proposeWithFeeRecipient","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VETO_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"deposits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"humanity","type":"address"},{"name":"proposalFee","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalId","type":"uint256"}],"name":"Execute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalId","type":"uint256"},{"indexed":true,"name":"proposer","type":"address"},{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Propose","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalId","type":"uint256"},{"indexed":true,"name":"voter","type":"address"}],"name":"RemoveVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalId","type":"uint256"}],"name":"Terminate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalId","type":"uint256"},{"indexed":true,"name":"voter","type":"address"},{"indexed":false,"name":"approve","type":"bool"},{"indexed":false,"name":"weight","type":"uint256"}],"name":"Vote","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516040806200382983398101806040526200003391908101906200012c565b818181600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000819055506040516200008b90620000f3565b604051809103906000f080158015620000a8573d6000803e3d6000fd5b50600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001bf565b606080620037c983390190565b60006200010e825162000181565b905092915050565b6000620001248251620001b5565b905092915050565b600080604083850312156200014057600080fd5b6000620001508582860162000100565b9250506020620001638582860162000116565b9150509250929050565b60006200017a8262000195565b9050919050565b60006200018e826200016d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6135fa80620001cf6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806398e527d3116100c3578063c7f758a81161007c578063c7f758a814610392578063da5c5b55146103c2578063e3c3b200146103f2578063e861dc8514610422578063fc0c546a14610440578063fc7e286d1461045e5761014d565b806398e527d3146102bc5780639d481848146102da578063ac4c25b21461030a578063ad22132114610328578063b6b55f2514610358578063c27cabb5146103745761014d565b80631a6f7be5116101155780631a6f7be5146102105780632e1a7d4d1461022c5780633f68fde4146102485780635d9dacb5146102645780636a1cf721146102825780637c64a45c1461029e5761014d565b8063013cf08b1461015257806305261aea1461018a5780630bc43490146101a657806310bf5068146101d657806316ada547146101f2575b600080fd5b61016c60048036036101679190810190612451565b61048e565b60405161018199989796959493929190613049565b60405180910390f35b6101a4600480360361019f9190810190612451565b6105ee565b005b6101c060048036036101bb919081019061247a565b610ab7565b6040516101cd919061335f565b60405180910390f35b6101f060048036036101eb9190810190612451565b610adc565b005b6101fa610b54565b604051610207919061335f565b60405180910390f35b61022a60048036036102259190810190612451565b610b5c565b005b61024660048036036102419190810190612451565b610ffb565b005b610262600480360361025d9190810190612451565b611209565b005b61026c6114c5565b604051610279919061335f565b60405180910390f35b61029c60048036036102979190810190612451565b6114cc565b005b6102a66117ab565b6040516102b3919061335f565b60405180910390f35b6102c46117b4565b6040516102d1919061335f565b60405180910390f35b6102f460048036036102ef91908101906123d4565b6117c1565b604051610301919061335f565b60405180910390f35b6103126117d6565b60405161031f919061302e565b60405180910390f35b610342600480360361033d9190810190612344565b6117fc565b60405161034f919061335f565b60405180910390f35b610372600480360361036d9190810190612451565b611814565b005b61037c61199c565b604051610389919061335f565b60405180910390f35b6103ac60048036036103a79190810190612451565b6119a2565b6040516103b9919061333d565b60405180910390f35b6103dc60048036036103d7919081019061247a565b611bd1565b6040516103e9919061335f565b60405180910390f35b61040c6004803603610407919081019061236d565b611bf6565b604051610419919061335f565b60405180910390f35b61042a612086565b604051610437919061335f565b60405180910390f35b61044861208d565b6040516104559190613013565b60405180910390f35b61047860048036036104739190810190612344565b6120b3565b604051610485919061335f565b60405180910390f35b6003818154811061049b57fe5b90600052602060002090600802016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105805780601f1061055557610100808354040283529160200191610580565b820191906000526020600020905b81548152906001019060200180831161056357829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060154908060070154905089565b6000600382815481106105fd57fe5b906000526020600020906008020190506000600281111561061a57fe5b8160000160009054906101000a900460ff16600281111561063757fe5b14610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061329d565b60405180910390fd5b6000610681610b54565b90508160070154826006015411156108ef576106af6202a300800183600501546120cb90919063ffffffff16565b81116106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e79061323d565b60405180910390fd5b60018260000160006101000a81548160ff0219169083600281111561071157fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401546040518363ffffffff1660e01b815260040161079b929190612f9f565b602060405180830381600087803b1580156107b557600080fd5b505af11580156107c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ed9190810190612428565b61082c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610823906130fd565b60405180910390fd5b8160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826001016040516108789190612f28565b6000604051808303816000865af19150503d80600081146108b5576040519150601f19603f3d011682016040523d82523d6000602084013e6108ba565b606091505b505050827fddb556f1d2c1ec821e910b019d3685b229db152a0ecd517ca7e24b8bd713928960405160405180910390a2610ab2565b6109096202a30083600501546120cb90919063ffffffff16565b811161094a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109419061327d565b60405180910390fd5b60028260000160006101000a81548160ff0219169083600281111561096b57fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401546040518363ffffffff1660e01b81526004016109f3929190612f9f565b602060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a459190810190612428565b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906132dd565b60405180910390fd5b827fd681175168470800567b22d50d831df189686adc5b155827823a5ada6a97a4fe60405160405180910390a25b505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061315d565b60405180910390fd5b8060008190555050565b600042905090565b600060038281548110610b6b57fe5b9060005260206000209060080201905060006002811115610b8857fe5b8160000160009054906101000a900460ff166002811115610ba557fe5b14610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc9061321d565b60405180910390fd5b6000610c036202a300800183600501546120cb90919063ffffffff16565b90506000610c0f610b54565b905081811115610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b906132fd565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000610cfd6005600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361212090919063ffffffff16565b9050610d168186600701546120cb90919063ffffffff16565b8560070181905550816005600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16867f88d35328232823f54954b6627e9f732371656f6daa40cb1b01b27dc7875a7b47600084604051610dbd929190612fc8565b60405180910390a3610ddf6202a30086600501546120cb90919063ffffffff16565b83118015610df557508460060154856007015410155b15610f665760028560000160006101000a81548160ff02191690836002811115610e1b57fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687600401546040518363ffffffff1660e01b8152600401610ea3929190612f9f565b602060405180830381600087803b158015610ebd57600080fd5b505af1158015610ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ef59190810190612428565b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906131dd565b60405180910390fd5b857fd681175168470800567b22d50d831df189686adc5b155827823a5ada6a97a4fe60405160405180910390a2610ff3565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115610ff25783600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b505050505050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611043610b54565b11611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906130dd565b60405180910390fd5b6110d581600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212090919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611175929190612f76565b602060405180830381600087803b15801561118f57600080fd5b505af11580156111a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c79190810190612428565b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd9061319d565b60405180910390fd5b50565b60006003828154811061121857fe5b906000526020600020906008020190506000600281111561123557fe5b8160000160009054906101000a900460ff16600281111561125257fe5b14611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061311d565b60405180910390fd5b6112ae6202a300800182600501546120cb90919063ffffffff16565b6112b6610b54565b11156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee9061317d565b60405180910390fd5b61135e6004600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826006015461212090919063ffffffff16565b81600601819055506113cd6005600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826007015461212090919063ffffffff16565b81600701819055506004600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090556005600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090553373ffffffffffffffffffffffffffffffffffffffff16827f3676c1fca38c63566d0cbf07d561c0db78a4cc1f64d3d929ef452bfef41a3d0660405160405180910390a35050565b6202a30081565b6000600382815481106114db57fe5b906000526020600020906008020190506115056202a30082600501546120cb90919063ffffffff16565b61150d610b54565b111561154e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115459061325d565b60405180910390fd5b600061156c6202a300800183600501546120cb90919063ffffffff16565b9050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156115fa5780600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061169e6004600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212090919063ffffffff16565b90506116b78184600601546120cb90919063ffffffff16565b8360060181905550600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16847f88d35328232823f54954b6627e9f732371656f6daa40cb1b01b27dc7875a7b4760018460405161179d929190612fc8565b60405180910390a350505050565b6202a300800181565b6000600380549050905090565b60006117ce338484611bf6565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161187393929190612f3f565b602060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118c59190810190612428565b611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb906131fd565b60405180910390fd5b61195681600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120cb90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60005481565b6119aa612176565b600382815481106119b757fe5b9060005260206000209060080201604051806101200160405290816000820160009054906101000a900460ff1660028111156119ef57fe5b60028111156119fa57fe5b81526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aed5780601f10611ac257610100808354040283529160200191611aed565b820191906000526020600020905b815481529060010190602001808311611ad057829003601f168201915b505050505081526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815260200160058201548152602001600682015481526020016007820154815250509050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611c825750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb89061331d565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306000546040518463ffffffff1660e01b8152600401611d2293929190612f3f565b602060405180830381600087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d749190810190612428565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906131bd565b60405180910390fd5b60006003805490509050611dc5612176565b84816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816040018190525033816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505085816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000548160a0018181525050611e8a610b54565b8160c00181815250506000548160e00181815250506003819080600181540180825580915050906001820390600052602060002090600802016000909192909190915060008201518160000160006101000a81548160ff02191690836002811115611ef157fe5b021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001019080519060200190611f5992919061220f565b5060608201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701555050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16837f2f162bd58e5254c884a7cbc5409e7e1d4f69b18801f19b8502365fc82b0c1996876040516120729190612ff1565b60405180910390a481925050509392505050565b6202a30081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b600080828401905083811015612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906132bd565b60405180910390fd5b8091505092915050565b600082821115612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215c9061313d565b60405180910390fd5b600082840390508091505092915050565b6040518061012001604052806000600281111561218f57fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061225057805160ff191683800117855561227e565b8280016001018555821561227e579182015b8281111561227d578251825591602001919060010190612262565b5b50905061228b919061228f565b5090565b6122b191905b808211156122ad576000816000905550600101612295565b5090565b90565b60006122c08235613495565b905092915050565b60006122d482516134a7565b905092915050565b600082601f8301126122ed57600080fd5b81356123006122fb826133a7565b61337a565b9150808252602083016020830185838301111561231c57600080fd5b61232783828461356d565b50505092915050565b600061233c82356134d3565b905092915050565b60006020828403121561235657600080fd5b6000612364848285016122b4565b91505092915050565b60008060006060848603121561238257600080fd5b6000612390868287016122b4565b93505060206123a1868287016122b4565b925050604084013567ffffffffffffffff8111156123be57600080fd5b6123ca868287016122dc565b9150509250925092565b600080604083850312156123e757600080fd5b60006123f5858286016122b4565b925050602083013567ffffffffffffffff81111561241257600080fd5b61241e858286016122dc565b9150509250929050565b60006020828403121561243a57600080fd5b6000612448848285016122c8565b91505092915050565b60006020828403121561246357600080fd5b600061247184828501612330565b91505092915050565b6000806040838503121561248d57600080fd5b600061249b85828601612330565b92505060206124ac858286016122b4565b9150509250929050565b6124bf816134dd565b82525050565b6124ce81613439565b82525050565b6124dd81613439565b82525050565b6124ec8161344b565b82525050565b60006124fd826133f0565b612507818561340c565b935061251781856020860161357c565b612520816135af565b840191505092915050565b6000612536826133e5565b61254081856133fb565b935061255081856020860161357c565b612559816135af565b840191505092915050565b600061256f826133e5565b612579818561340c565b935061258981856020860161357c565b612592816135af565b840191505092915050565b6000815460018116600081146125ba57600181146125df57612623565b607f60028304166125cb818761341d565b955060ff1983168652808601935050612623565b600282046125ed818761341d565b95506125f8856133d3565b60005b8281101561261a578154818901526001820191506020810190506125fb565b82880195505050505b505092915050565b612634816134ef565b82525050565b61264381613513565b82525050565b61265281613537565b82525050565b61266181613537565b82525050565b6000612674604483613428565b91507f476f7665726e616e63653a3a77697468647261773a20566f746572732077697460008301527f6820616e206163746976652070726f706f73616c2063616e6e6f74207769746860208301527f64726177000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612700603083613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2052657475726e2070726f60008301527f706f73616c20666565206661696c6564000000000000000000000000000000006020830152604082019050919050565b6000612766603583613428565b91507f476f7665726e616e63653a3a72656d6f7665566f74653a2050726f706f73616c60008301527f20697320616c72656164792066696e616c697a656400000000000000000000006020830152604082019050919050565b60006127cc602083613428565b91507f536166654d6174683a3a7375623a20496e746567657220756e646572666c6f776000830152602082019050919050565b600061280c604783613428565b91507f476f7665726e616e63653a3a73657450726f706f73616c4665653a2050726f7060008301527f6f73616c206665652063616e206f6e6c79206265207365742076696120676f7660208301527f65726e616e6365000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612898603e83613428565b91507f476f7665726e616e63653a3a72656d6f7665566f74653a2050726f706f73616c60008301527f206973206e6f206c6f6e67657220696e20766f74696e6720706572696f6400006020830152604082019050919050565b60006128fe602583613428565b91507f476f7665726e616e63653a3a77697468647261773a205472616e73666572206660008301527f61696c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612964603483613428565b91507f476f7665726e616e63653a3a70726f706f73655769746846656552656369706960008301527f656e743a205472616e73666572206661696c65640000000000000000000000006020830152604082019050919050565b60006129ca602b83613428565b91507f476f7665726e616e63653a3a766f74654e6f3a205472616e7366657220746f2060008301527f766f6964206661696c65640000000000000000000000000000000000000000006020830152604082019050919050565b6000612a30602483613428565b91507f476f7665726e616e63653a3a6465706f7369743a205472616e7366657220666160008301527f696c6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a96603183613428565b91507f476f7665726e616e63653a3a766f74654e6f3a2050726f706f73616c2069732060008301527f616c72656164792066696e616c697a65640000000000000000000000000000006020830152604082019050919050565b6000612afc604a83613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206360008301527f616e6e6f7420626520657865637574656420756e74696c20656e64206f66207660208301527f65746f20706572696f64000000000000000000000000000000000000000000006040830152606082019050919050565b6000612b88603e83613428565b91507f476f7665726e616e63653a3a766f74655965733a2050726f706f73616c20697360008301527f206e6f206c6f6e67657220616363657074696e672079657320766f74657300006020830152604082019050919050565b6000612bee605083613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206360008301527f616e6e6f74206265207465726d696e6174656420756e74696c20656e64206f6660208301527f2079657320766f746520706572696f64000000000000000000000000000000006040830152606082019050919050565b6000612c7a603383613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206960008301527f7320616c72656164792066696e616c697a6564000000000000000000000000006020830152604082019050919050565b6000612ce0601f83613428565b91507f536166654d6174683a3a6164643a20496e7465676572206f766572666c6f77006000830152602082019050919050565b6000612d20602d83613428565b91507f476f7665726e616e63653a3a66696e616c697a653a205472616e73666572207460008301527f6f20766f6964206661696c6564000000000000000000000000000000000000006020830152604082019050919050565b6000612d86603a83613428565b91507f476f7665726e616e63653a3a766f74654e6f3a2050726f706f73616c2069732060008301527f6e6f206c6f6e67657220696e20766f74696e6720706572696f640000000000006020830152604082019050919050565b6000612dec603583613428565b91507f476f7665726e616e63653a3a70726f706f73655769746846656552656369706960008301527f656e743a20496e76616c69642070726f706f73616c00000000000000000000006020830152604082019050919050565b600061012083016000830151612e5e6000860182612649565b506020830151612e7160208601826124c5565b5060408301518482036040860152612e89828261252b565b9150506060830151612e9e60608601826124c5565b506080830151612eb160808601826124c5565b5060a0830151612ec460a0860182612f0a565b5060c0830151612ed760c0860182612f0a565b5060e0830151612eea60e0860182612f0a565b50610100830151612eff610100860182612f0a565b508091505092915050565b612f138161348b565b82525050565b612f228161348b565b82525050565b6000612f34828461259d565b915081905092915050565b6000606082019050612f5460008301866124b6565b612f6160208301856124d4565b612f6e6040830184612f19565b949350505050565b6000604082019050612f8b60008301856124b6565b612f986020830184612f19565b9392505050565b6000604082019050612fb460008301856124d4565b612fc16020830184612f19565b9392505050565b6000604082019050612fdd60008301856124e3565b612fea6020830184612f19565b9392505050565b6000602082019050818103600083015261300b81846124f2565b905092915050565b6000602082019050613028600083018461262b565b92915050565b6000602082019050613043600083018461263a565b92915050565b60006101208201905061305f600083018c612658565b61306c602083018b6124d4565b818103604083015261307e818a612564565b905061308d60608301896124d4565b61309a60808301886124d4565b6130a760a0830187612f19565b6130b460c0830186612f19565b6130c160e0830185612f19565b6130cf610100830184612f19565b9a9950505050505050505050565b600060208201905081810360008301526130f681612667565b9050919050565b60006020820190508181036000830152613116816126f3565b9050919050565b6000602082019050818103600083015261313681612759565b9050919050565b60006020820190508181036000830152613156816127bf565b9050919050565b60006020820190508181036000830152613176816127ff565b9050919050565b600060208201905081810360008301526131968161288b565b9050919050565b600060208201905081810360008301526131b6816128f1565b9050919050565b600060208201905081810360008301526131d681612957565b9050919050565b600060208201905081810360008301526131f6816129bd565b9050919050565b6000602082019050818103600083015261321681612a23565b9050919050565b6000602082019050818103600083015261323681612a89565b9050919050565b6000602082019050818103600083015261325681612aef565b9050919050565b6000602082019050818103600083015261327681612b7b565b9050919050565b6000602082019050818103600083015261329681612be1565b9050919050565b600060208201905081810360008301526132b681612c6d565b9050919050565b600060208201905081810360008301526132d681612cd3565b9050919050565b600060208201905081810360008301526132f681612d13565b9050919050565b6000602082019050818103600083015261331681612d79565b9050919050565b6000602082019050818103600083015261333681612ddf565b9050919050565b600060208201905081810360008301526133578184612e45565b905092915050565b60006020820190506133746000830184612f19565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561339d57600080fd5b8060405250919050565b600067ffffffffffffffff8211156133be57600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134448261346b565b9050919050565b60008115159050919050565b60006003821061346357fe5b819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006134a0826134b3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006134e882613549565b9050919050565b60006134fa82613501565b9050919050565b600061350c8261346b565b9050919050565b600061351e82613525565b9050919050565b60006135308261346b565b9050919050565b600061354282613457565b9050919050565b60006135548261355b565b9050919050565b60006135668261346b565b9050919050565b82818337600083830152505050565b60005b8381101561359a57808201518184015260208101905061357f565b838111156135a9576000848401525b50505050565b6000601f19601f830116905091905056fea265627a7a723058203a6d21d0fddcca192410bc72b3c28449138b066e55b9e7a646682f8eeefd6bb46c6578706572696d656e74616cf500376080604052348015600f57600080fd5b50604380601d6000396000f3fe6080604052600080fdfea265627a7a723058202921fb96e82eefe43b4c3bf172590e0934a04362637b290f9d25b859287942616c6578706572696d656e74616cf50037000000000000000000000000bbd1706d16418bb136e1497a73d3af4164586da00000000000000000000000000000000000000000000000000de0b6b3a7640000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806398e527d3116100c3578063c7f758a81161007c578063c7f758a814610392578063da5c5b55146103c2578063e3c3b200146103f2578063e861dc8514610422578063fc0c546a14610440578063fc7e286d1461045e5761014d565b806398e527d3146102bc5780639d481848146102da578063ac4c25b21461030a578063ad22132114610328578063b6b55f2514610358578063c27cabb5146103745761014d565b80631a6f7be5116101155780631a6f7be5146102105780632e1a7d4d1461022c5780633f68fde4146102485780635d9dacb5146102645780636a1cf721146102825780637c64a45c1461029e5761014d565b8063013cf08b1461015257806305261aea1461018a5780630bc43490146101a657806310bf5068146101d657806316ada547146101f2575b600080fd5b61016c60048036036101679190810190612451565b61048e565b60405161018199989796959493929190613049565b60405180910390f35b6101a4600480360361019f9190810190612451565b6105ee565b005b6101c060048036036101bb919081019061247a565b610ab7565b6040516101cd919061335f565b60405180910390f35b6101f060048036036101eb9190810190612451565b610adc565b005b6101fa610b54565b604051610207919061335f565b60405180910390f35b61022a60048036036102259190810190612451565b610b5c565b005b61024660048036036102419190810190612451565b610ffb565b005b610262600480360361025d9190810190612451565b611209565b005b61026c6114c5565b604051610279919061335f565b60405180910390f35b61029c60048036036102979190810190612451565b6114cc565b005b6102a66117ab565b6040516102b3919061335f565b60405180910390f35b6102c46117b4565b6040516102d1919061335f565b60405180910390f35b6102f460048036036102ef91908101906123d4565b6117c1565b604051610301919061335f565b60405180910390f35b6103126117d6565b60405161031f919061302e565b60405180910390f35b610342600480360361033d9190810190612344565b6117fc565b60405161034f919061335f565b60405180910390f35b610372600480360361036d9190810190612451565b611814565b005b61037c61199c565b604051610389919061335f565b60405180910390f35b6103ac60048036036103a79190810190612451565b6119a2565b6040516103b9919061333d565b60405180910390f35b6103dc60048036036103d7919081019061247a565b611bd1565b6040516103e9919061335f565b60405180910390f35b61040c6004803603610407919081019061236d565b611bf6565b604051610419919061335f565b60405180910390f35b61042a612086565b604051610437919061335f565b60405180910390f35b61044861208d565b6040516104559190613013565b60405180910390f35b61047860048036036104739190810190612344565b6120b3565b604051610485919061335f565b60405180910390f35b6003818154811061049b57fe5b90600052602060002090600802016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105805780601f1061055557610100808354040283529160200191610580565b820191906000526020600020905b81548152906001019060200180831161056357829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060154908060070154905089565b6000600382815481106105fd57fe5b906000526020600020906008020190506000600281111561061a57fe5b8160000160009054906101000a900460ff16600281111561063757fe5b14610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061329d565b60405180910390fd5b6000610681610b54565b90508160070154826006015411156108ef576106af6202a300800183600501546120cb90919063ffffffff16565b81116106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e79061323d565b60405180910390fd5b60018260000160006101000a81548160ff0219169083600281111561071157fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401546040518363ffffffff1660e01b815260040161079b929190612f9f565b602060405180830381600087803b1580156107b557600080fd5b505af11580156107c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ed9190810190612428565b61082c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610823906130fd565b60405180910390fd5b8160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826001016040516108789190612f28565b6000604051808303816000865af19150503d80600081146108b5576040519150601f19603f3d011682016040523d82523d6000602084013e6108ba565b606091505b505050827fddb556f1d2c1ec821e910b019d3685b229db152a0ecd517ca7e24b8bd713928960405160405180910390a2610ab2565b6109096202a30083600501546120cb90919063ffffffff16565b811161094a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109419061327d565b60405180910390fd5b60028260000160006101000a81548160ff0219169083600281111561096b57fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401546040518363ffffffff1660e01b81526004016109f3929190612f9f565b602060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a459190810190612428565b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906132dd565b60405180910390fd5b827fd681175168470800567b22d50d831df189686adc5b155827823a5ada6a97a4fe60405160405180910390a25b505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061315d565b60405180910390fd5b8060008190555050565b600042905090565b600060038281548110610b6b57fe5b9060005260206000209060080201905060006002811115610b8857fe5b8160000160009054906101000a900460ff166002811115610ba557fe5b14610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc9061321d565b60405180910390fd5b6000610c036202a300800183600501546120cb90919063ffffffff16565b90506000610c0f610b54565b905081811115610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b906132fd565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000610cfd6005600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361212090919063ffffffff16565b9050610d168186600701546120cb90919063ffffffff16565b8560070181905550816005600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16867f88d35328232823f54954b6627e9f732371656f6daa40cb1b01b27dc7875a7b47600084604051610dbd929190612fc8565b60405180910390a3610ddf6202a30086600501546120cb90919063ffffffff16565b83118015610df557508460060154856007015410155b15610f665760028560000160006101000a81548160ff02191690836002811115610e1b57fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687600401546040518363ffffffff1660e01b8152600401610ea3929190612f9f565b602060405180830381600087803b158015610ebd57600080fd5b505af1158015610ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ef59190810190612428565b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906131dd565b60405180910390fd5b857fd681175168470800567b22d50d831df189686adc5b155827823a5ada6a97a4fe60405160405180910390a2610ff3565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115610ff25783600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b505050505050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611043610b54565b11611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906130dd565b60405180910390fd5b6110d581600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212090919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611175929190612f76565b602060405180830381600087803b15801561118f57600080fd5b505af11580156111a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c79190810190612428565b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd9061319d565b60405180910390fd5b50565b60006003828154811061121857fe5b906000526020600020906008020190506000600281111561123557fe5b8160000160009054906101000a900460ff16600281111561125257fe5b14611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061311d565b60405180910390fd5b6112ae6202a300800182600501546120cb90919063ffffffff16565b6112b6610b54565b11156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee9061317d565b60405180910390fd5b61135e6004600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826006015461212090919063ffffffff16565b81600601819055506113cd6005600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826007015461212090919063ffffffff16565b81600701819055506004600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090556005600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090553373ffffffffffffffffffffffffffffffffffffffff16827f3676c1fca38c63566d0cbf07d561c0db78a4cc1f64d3d929ef452bfef41a3d0660405160405180910390a35050565b6202a30081565b6000600382815481106114db57fe5b906000526020600020906008020190506115056202a30082600501546120cb90919063ffffffff16565b61150d610b54565b111561154e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115459061325d565b60405180910390fd5b600061156c6202a300800183600501546120cb90919063ffffffff16565b9050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156115fa5780600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061169e6004600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212090919063ffffffff16565b90506116b78184600601546120cb90919063ffffffff16565b8360060181905550600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16847f88d35328232823f54954b6627e9f732371656f6daa40cb1b01b27dc7875a7b4760018460405161179d929190612fc8565b60405180910390a350505050565b6202a300800181565b6000600380549050905090565b60006117ce338484611bf6565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161187393929190612f3f565b602060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118c59190810190612428565b611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb906131fd565b60405180910390fd5b61195681600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120cb90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60005481565b6119aa612176565b600382815481106119b757fe5b9060005260206000209060080201604051806101200160405290816000820160009054906101000a900460ff1660028111156119ef57fe5b60028111156119fa57fe5b81526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aed5780601f10611ac257610100808354040283529160200191611aed565b820191906000526020600020905b815481529060010190602001808311611ad057829003601f168201915b505050505081526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815260200160058201548152602001600682015481526020016007820154815250509050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611c825750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb89061331d565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306000546040518463ffffffff1660e01b8152600401611d2293929190612f3f565b602060405180830381600087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d749190810190612428565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906131bd565b60405180910390fd5b60006003805490509050611dc5612176565b84816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816040018190525033816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505085816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000548160a0018181525050611e8a610b54565b8160c00181815250506000548160e00181815250506003819080600181540180825580915050906001820390600052602060002090600802016000909192909190915060008201518160000160006101000a81548160ff02191690836002811115611ef157fe5b021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001019080519060200190611f5992919061220f565b5060608201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701555050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16837f2f162bd58e5254c884a7cbc5409e7e1d4f69b18801f19b8502365fc82b0c1996876040516120729190612ff1565b60405180910390a481925050509392505050565b6202a30081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b600080828401905083811015612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906132bd565b60405180910390fd5b8091505092915050565b600082821115612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215c9061313d565b60405180910390fd5b600082840390508091505092915050565b6040518061012001604052806000600281111561218f57fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061225057805160ff191683800117855561227e565b8280016001018555821561227e579182015b8281111561227d578251825591602001919060010190612262565b5b50905061228b919061228f565b5090565b6122b191905b808211156122ad576000816000905550600101612295565b5090565b90565b60006122c08235613495565b905092915050565b60006122d482516134a7565b905092915050565b600082601f8301126122ed57600080fd5b81356123006122fb826133a7565b61337a565b9150808252602083016020830185838301111561231c57600080fd5b61232783828461356d565b50505092915050565b600061233c82356134d3565b905092915050565b60006020828403121561235657600080fd5b6000612364848285016122b4565b91505092915050565b60008060006060848603121561238257600080fd5b6000612390868287016122b4565b93505060206123a1868287016122b4565b925050604084013567ffffffffffffffff8111156123be57600080fd5b6123ca868287016122dc565b9150509250925092565b600080604083850312156123e757600080fd5b60006123f5858286016122b4565b925050602083013567ffffffffffffffff81111561241257600080fd5b61241e858286016122dc565b9150509250929050565b60006020828403121561243a57600080fd5b6000612448848285016122c8565b91505092915050565b60006020828403121561246357600080fd5b600061247184828501612330565b91505092915050565b6000806040838503121561248d57600080fd5b600061249b85828601612330565b92505060206124ac858286016122b4565b9150509250929050565b6124bf816134dd565b82525050565b6124ce81613439565b82525050565b6124dd81613439565b82525050565b6124ec8161344b565b82525050565b60006124fd826133f0565b612507818561340c565b935061251781856020860161357c565b612520816135af565b840191505092915050565b6000612536826133e5565b61254081856133fb565b935061255081856020860161357c565b612559816135af565b840191505092915050565b600061256f826133e5565b612579818561340c565b935061258981856020860161357c565b612592816135af565b840191505092915050565b6000815460018116600081146125ba57600181146125df57612623565b607f60028304166125cb818761341d565b955060ff1983168652808601935050612623565b600282046125ed818761341d565b95506125f8856133d3565b60005b8281101561261a578154818901526001820191506020810190506125fb565b82880195505050505b505092915050565b612634816134ef565b82525050565b61264381613513565b82525050565b61265281613537565b82525050565b61266181613537565b82525050565b6000612674604483613428565b91507f476f7665726e616e63653a3a77697468647261773a20566f746572732077697460008301527f6820616e206163746976652070726f706f73616c2063616e6e6f74207769746860208301527f64726177000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612700603083613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2052657475726e2070726f60008301527f706f73616c20666565206661696c6564000000000000000000000000000000006020830152604082019050919050565b6000612766603583613428565b91507f476f7665726e616e63653a3a72656d6f7665566f74653a2050726f706f73616c60008301527f20697320616c72656164792066696e616c697a656400000000000000000000006020830152604082019050919050565b60006127cc602083613428565b91507f536166654d6174683a3a7375623a20496e746567657220756e646572666c6f776000830152602082019050919050565b600061280c604783613428565b91507f476f7665726e616e63653a3a73657450726f706f73616c4665653a2050726f7060008301527f6f73616c206665652063616e206f6e6c79206265207365742076696120676f7660208301527f65726e616e6365000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612898603e83613428565b91507f476f7665726e616e63653a3a72656d6f7665566f74653a2050726f706f73616c60008301527f206973206e6f206c6f6e67657220696e20766f74696e6720706572696f6400006020830152604082019050919050565b60006128fe602583613428565b91507f476f7665726e616e63653a3a77697468647261773a205472616e73666572206660008301527f61696c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612964603483613428565b91507f476f7665726e616e63653a3a70726f706f73655769746846656552656369706960008301527f656e743a205472616e73666572206661696c65640000000000000000000000006020830152604082019050919050565b60006129ca602b83613428565b91507f476f7665726e616e63653a3a766f74654e6f3a205472616e7366657220746f2060008301527f766f6964206661696c65640000000000000000000000000000000000000000006020830152604082019050919050565b6000612a30602483613428565b91507f476f7665726e616e63653a3a6465706f7369743a205472616e7366657220666160008301527f696c6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a96603183613428565b91507f476f7665726e616e63653a3a766f74654e6f3a2050726f706f73616c2069732060008301527f616c72656164792066696e616c697a65640000000000000000000000000000006020830152604082019050919050565b6000612afc604a83613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206360008301527f616e6e6f7420626520657865637574656420756e74696c20656e64206f66207660208301527f65746f20706572696f64000000000000000000000000000000000000000000006040830152606082019050919050565b6000612b88603e83613428565b91507f476f7665726e616e63653a3a766f74655965733a2050726f706f73616c20697360008301527f206e6f206c6f6e67657220616363657074696e672079657320766f74657300006020830152604082019050919050565b6000612bee605083613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206360008301527f616e6e6f74206265207465726d696e6174656420756e74696c20656e64206f6660208301527f2079657320766f746520706572696f64000000000000000000000000000000006040830152606082019050919050565b6000612c7a603383613428565b91507f476f7665726e616e63653a3a66696e616c697a653a2050726f706f73616c206960008301527f7320616c72656164792066696e616c697a6564000000000000000000000000006020830152604082019050919050565b6000612ce0601f83613428565b91507f536166654d6174683a3a6164643a20496e7465676572206f766572666c6f77006000830152602082019050919050565b6000612d20602d83613428565b91507f476f7665726e616e63653a3a66696e616c697a653a205472616e73666572207460008301527f6f20766f6964206661696c6564000000000000000000000000000000000000006020830152604082019050919050565b6000612d86603a83613428565b91507f476f7665726e616e63653a3a766f74654e6f3a2050726f706f73616c2069732060008301527f6e6f206c6f6e67657220696e20766f74696e6720706572696f640000000000006020830152604082019050919050565b6000612dec603583613428565b91507f476f7665726e616e63653a3a70726f706f73655769746846656552656369706960008301527f656e743a20496e76616c69642070726f706f73616c00000000000000000000006020830152604082019050919050565b600061012083016000830151612e5e6000860182612649565b506020830151612e7160208601826124c5565b5060408301518482036040860152612e89828261252b565b9150506060830151612e9e60608601826124c5565b506080830151612eb160808601826124c5565b5060a0830151612ec460a0860182612f0a565b5060c0830151612ed760c0860182612f0a565b5060e0830151612eea60e0860182612f0a565b50610100830151612eff610100860182612f0a565b508091505092915050565b612f138161348b565b82525050565b612f228161348b565b82525050565b6000612f34828461259d565b915081905092915050565b6000606082019050612f5460008301866124b6565b612f6160208301856124d4565b612f6e6040830184612f19565b949350505050565b6000604082019050612f8b60008301856124b6565b612f986020830184612f19565b9392505050565b6000604082019050612fb460008301856124d4565b612fc16020830184612f19565b9392505050565b6000604082019050612fdd60008301856124e3565b612fea6020830184612f19565b9392505050565b6000602082019050818103600083015261300b81846124f2565b905092915050565b6000602082019050613028600083018461262b565b92915050565b6000602082019050613043600083018461263a565b92915050565b60006101208201905061305f600083018c612658565b61306c602083018b6124d4565b818103604083015261307e818a612564565b905061308d60608301896124d4565b61309a60808301886124d4565b6130a760a0830187612f19565b6130b460c0830186612f19565b6130c160e0830185612f19565b6130cf610100830184612f19565b9a9950505050505050505050565b600060208201905081810360008301526130f681612667565b9050919050565b60006020820190508181036000830152613116816126f3565b9050919050565b6000602082019050818103600083015261313681612759565b9050919050565b60006020820190508181036000830152613156816127bf565b9050919050565b60006020820190508181036000830152613176816127ff565b9050919050565b600060208201905081810360008301526131968161288b565b9050919050565b600060208201905081810360008301526131b6816128f1565b9050919050565b600060208201905081810360008301526131d681612957565b9050919050565b600060208201905081810360008301526131f6816129bd565b9050919050565b6000602082019050818103600083015261321681612a23565b9050919050565b6000602082019050818103600083015261323681612a89565b9050919050565b6000602082019050818103600083015261325681612aef565b9050919050565b6000602082019050818103600083015261327681612b7b565b9050919050565b6000602082019050818103600083015261329681612be1565b9050919050565b600060208201905081810360008301526132b681612c6d565b9050919050565b600060208201905081810360008301526132d681612cd3565b9050919050565b600060208201905081810360008301526132f681612d13565b9050919050565b6000602082019050818103600083015261331681612d79565b9050919050565b6000602082019050818103600083015261333681612ddf565b9050919050565b600060208201905081810360008301526133578184612e45565b905092915050565b60006020820190506133746000830184612f19565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561339d57600080fd5b8060405250919050565b600067ffffffffffffffff8211156133be57600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134448261346b565b9050919050565b60008115159050919050565b60006003821061346357fe5b819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006134a0826134b3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006134e882613549565b9050919050565b60006134fa82613501565b9050919050565b600061350c8261346b565b9050919050565b600061351e82613525565b9050919050565b60006135308261346b565b9050919050565b600061354282613457565b9050919050565b60006135548261355b565b9050919050565b60006135668261346b565b9050919050565b82818337600083830152505050565b60005b8381101561359a57808201518184015260208101905061357f565b838111156135a9576000848401525b50505050565b6000601f19601f830116905091905056fea265627a7a723058203a6d21d0fddcca192410bc72b3c28449138b066e55b9e7a646682f8eeefd6bb46c6578706572696d656e74616cf50037
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bbd1706d16418bb136e1497a73d3af4164586da00000000000000000000000000000000000000000000000000de0b6b3a7640000
-----Decoded View---------------
Arg [0] : humanity (address): 0xbBd1706d16418bb136e1497A73d3af4164586DA0
Arg [1] : proposalFee (uint256): 1000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bbd1706d16418bb136e1497a73d3af4164586da0
Arg [1] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Deployed Bytecode Sourcemap
10741:155:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10741:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4034:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8955:1105;;;;;;;;;;;;;;;;:::i;:::-;;4112:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10068:199;;;;;;;;;;;;;;;;:::i;:::-;;10275:84;;;:::i;:::-;;;;;;;;;;;;;;;;6983:1275;;;;;;;;;;;;;;;;:::i;:::-;;4855:333;;;;;;;;;;;;;;;;:::i;:::-;;8266:681;;;;;;;;;;;;;;;;:::i;:::-;;3772:46;;;:::i;:::-;;;;;;;;;;;;;;;;6279:696;;;;;;;;;;;;;;;;:::i;:::-;;3873:71;;;:::i;:::-;;;;;;;;;;;;;;;;10500:100;;;:::i;:::-;;;;;;;;;;;;;;;;5196:149;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4009:16;;;:::i;:::-;;;;;;;;;;;;;;;;4395:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4623:224;;;;;;;;;;;;;;;;:::i;:::-;;3953:23;;;:::i;:::-;;;;;;;;;;;;;;;;10367:125;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4219:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5353:918;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3825:41;;;:::i;:::-;;;;;;;;;;;;;;;;3983:19;;;:::i;:::-;;;;;;;;;;;;;;;;4309:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4034:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8955:1105::-;9008:25;9036:9;9046:10;9036:21;;;;;;;;;;;;;;;;;;9008:49;;9095:14;9076:33;;;;;;;;:8;:15;;;;;;;;;;;;:33;;;;;;;;;9068:97;;;;;;;;;;;;;;;;;;;;;;9176:10;9189:6;:4;:6::i;:::-;9176:19;;9232:8;:16;;;9212:8;:17;;;:36;9208:845;;;9281:41;3860:6;3812;3914:30;9281:8;:18;;;:22;;:41;;;;:::i;:::-;9273:5;:49;9265:136;;;;;;;;;;;;;;;;;;;;;;9436:10;9418:8;:15;;;:28;;;;;;;;;;;;;;;;;;;;;;;;9469:5;;;;;;;;;;;:14;;;9484:8;:21;;;;;;;;;;;;9507:8;:12;;;9469:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9469:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9469:51:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9469:51:0;;;;;;;;;9461:112;;;;;;;;;;;;;;;;;;;;;;9588:8;:15;;;;;;;;;;;;:20;;9609:8;:13;;9588:35;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;9588:35:0;;9653:10;9645:19;;;;;;;;;;9208:845;;;9713:40;3812:6;9713:8;:18;;;:22;;:40;;;;:::i;:::-;9705:5;:48;9697:141;;;;;;;;;;;;;;;;;;;;;;9873:9;9855:8;:15;;;:27;;;;;;;;;;;;;;;;;;;;;;;;9905:5;;;;;;;;;;;:14;;;9928:4;;;;;;;;;;;9935:8;:12;;;9905:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9905:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9905:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9905:43:0;;;;;;;;;9897:101;;;;;;;;;;;;;;;;;;;;;;10030:10;10020:21;;;;;;;;;;9208:845;8955:1105;;;:::o;4112:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10068:199::-;10150:4;10128:27;;:10;:27;;;10120:111;;;;;;;;;;;;;;;;;;;;;;10256:3;10242:11;:17;;;;10068:199;:::o;10275:84::-;10312:4;10336:15;10329:22;;10275:84;:::o;6983:1275::-;7034:25;7062:9;7072:10;7062:21;;;;;;;;;;;;;;;;;;7034:49;;7121:14;7102:33;;;;;;;;:8;:15;;;;;;;;;;;;:33;;;;;;;;;7094:95;;;;;;;;;;;;;;;;;;;;;;7202:20;7225:41;3860:6;3812;3914:30;7225:8;:18;;;:22;;:41;;;;:::i;:::-;7202:64;;7277:10;7290:6;:4;:6::i;:::-;7277:19;;7324:15;7315:5;:24;;7307:95;;;;;;;;;;;;;;;;;;;;;;7415:13;7431:8;:20;7440:10;7431:20;;;;;;;;;;;;;;;;7415:36;;7462:11;7476:45;7489:7;:19;7497:10;7489:19;;;;;;;;;;;:31;7509:10;7489:31;;;;;;;;;;;;;;;;7476:8;:12;;:45;;;;:::i;:::-;7462:59;;7551:28;7572:6;7551:8;:16;;;:20;;:28;;;;:::i;:::-;7532:8;:16;;:47;;;;7624:8;7590:7;:19;7598:10;7590:19;;;;;;;;;;;:31;7610:10;7590:31;;;;;;;;;;;;;;;:42;;;;7667:10;7650:43;;7655:10;7650:43;7679:5;7686:6;7650:43;;;;;;;;;;;;;;;;7832:40;3812:6;7832:8;:18;;;:22;;:40;;;;:::i;:::-;7824:5;:48;:89;;;;;7896:8;:17;;;7876:8;:16;;;:37;;7824:89;7820:429;;;7948:9;7930:8;:15;;;:27;;;;;;;;;;;;;;;;;;;;;;;;7980:5;;;;;;;;;;;:14;;;8003:4;;;;;;;;;;;8010:8;:12;;;7980:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7980:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7980:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7980:43:0;;;;;;;;;7972:99;;;;;;;;;;;;;;;;;;;;;;8101:10;8091:21;;;;;;;;;;7820:429;;;8152:13;:25;8166:10;8152:25;;;;;;;;;;;;;;;;8134:15;:43;8130:119;;;8222:15;8194:13;:25;8208:10;8194:25;;;;;;;;;;;;;;;:43;;;;8130:119;7820:429;6983:1275;;;;;;:::o;4855:333::-;4921:13;:25;4935:10;4921:25;;;;;;;;;;;;;;;;4912:6;:4;:6::i;:::-;:34;4904:115;;;;;;;;;;;;;;;;;;;;;;5053:32;5078:6;5053:8;:20;5062:10;5053:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5030:8;:20;5039:10;5030:20;;;;;;;;;;;;;;;:55;;;;5104:5;;;;;;;;;;;:14;;;5119:10;5131:6;5104:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5104:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5104:34:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5104:34:0;;;;;;;;;5096:84;;;;;;;;;;;;;;;;;;;;;;4855:333;:::o;8266:681::-;8321:25;8349:9;8359:10;8349:21;;;;;;;;;;;;;;;;;;8321:49;;8408:14;8389:33;;;;;;;;:8;:15;;;;;;;;;;;;:33;;;;;;;;;8381:99;;;;;;;;;;;;;;;;;;;;;;8509:41;3860:6;3812;3914:30;8509:8;:18;;;:22;;:41;;;;:::i;:::-;8499:6;:4;:6::i;:::-;:51;;8491:126;;;;;;;;;;;;;;;;;;;;;;8650:55;8672:8;:20;8681:10;8672:20;;;;;;;;;;;:32;8693:10;8672:32;;;;;;;;;;;;;;;;8650:8;:17;;;:21;;:55;;;;:::i;:::-;8630:8;:17;;:75;;;;8735:53;8756:7;:19;8764:10;8756:19;;;;;;;;;;;:31;8776:10;8756:31;;;;;;;;;;;;;;;;8735:8;:16;;;:20;;:53;;;;:::i;:::-;8716:8;:16;;:72;;;;8806:8;:20;8815:10;8806:20;;;;;;;;;;;:32;8827:10;8806:32;;;;;;;;;;;;;;;8799:39;;;8856:7;:19;8864:10;8856:19;;;;;;;;;;;:31;8876:10;8856:31;;;;;;;;;;;;;;;8849:38;;;8928:10;8905:34;;8916:10;8905:34;;;;;;;;;;8266:681;;:::o;3772:46::-;3812:6;3772:46;:::o;6279:696::-;6331:25;6359:9;6369:10;6359:21;;;;;;;;;;;;;;;;;;6331:49;;6409:40;3812:6;6409:8;:18;;;:22;;:40;;;;:::i;:::-;6399:6;:4;:6::i;:::-;:50;;6391:125;;;;;;;;;;;;;;;;;;;;;;6529:20;6552:41;3860:6;3812;3914:30;6552:8;:18;;;:22;;:41;;;;:::i;:::-;6529:64;;6626:13;:25;6640:10;6626:25;;;;;;;;;;;;;;;;6608:15;:43;6604:92;;;6681:15;6653:13;:25;6667:10;6653:25;;;;;;;;;;;;;;;:43;;;;6604:92;6709:11;6723:58;6748:8;:20;6757:10;6748:20;;;;;;;;;;;:32;6769:10;6748:32;;;;;;;;;;;;;;;;6723:8;:20;6732:10;6723:20;;;;;;;;;;;;;;;;:24;;:58;;;;:::i;:::-;6709:72;;6812:29;6834:6;6812:8;:17;;;:21;;:29;;;;:::i;:::-;6792:8;:17;;:49;;;;6887:8;:20;6896:10;6887:20;;;;;;;;;;;;;;;;6852:8;:20;6861:10;6852:20;;;;;;;;;;;:32;6873:10;6852:32;;;;;;;;;;;;;;;:55;;;;6942:10;6925:42;;6930:10;6925:42;6954:4;6960:6;6925:42;;;;;;;;;;;;;;;;6279:696;;;;:::o;3873:71::-;3860:6;3812;3914:30;3873:71;:::o;10500:100::-;10552:4;10576:9;:16;;;;10569:23;;10500:100;:::o;5196:149::-;5264:4;5288:49;5312:10;5324:6;5332:4;5288:23;:49::i;:::-;5281:56;;5196:149;;;;:::o;4009:16::-;;;;;;;;;;;;;:::o;4395:46::-;;;;;;;;;;;;;;;;;:::o;4623:224::-;4679:5;;;;;;;;;;;:18;;;4698:10;4718:4;4725:6;4679:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4679:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4679:53:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4679:53:0;;;;;;;;;4671:102;;;;;;;;;;;;;;;;;;;;;;4807:32;4832:6;4807:8;:20;4816:10;4807:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4784:8;:20;4793:10;4784:20;;;;;;;;;;;;;;;:55;;;;4623:224;:::o;3953:23::-;;;;:::o;10367:125::-;10428:15;;:::i;:::-;10463:9;10473:10;10463:21;;;;;;;;;;;;;;;;;;10456:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10367:125;;;:::o;4219:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5353:918::-;5459:4;5506;5484:27;;:10;:27;;;;:55;;;;;5533:5;;;;;;;;;;;5515:24;;:6;:24;;;;5484:55;5476:121;;;;;;;;;;;;;;;;;;;;;;5616:5;;;;;;;;;;;:18;;;5635:10;5655:4;5662:11;;5616:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5616:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5616:58:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5616:58:0;;;;;;;;;5608:123;;;;;;;;;;;;;;;;;;;;;;5744:15;5762:9;:16;;;;5744:34;;5838:24;;:::i;:::-;5891:6;5873:8;:15;;:24;;;;;;;;;;;5924:4;5908:8;:13;;:20;;;;5959:10;5939:8;:17;;:30;;;;;;;;;;;6004:12;5980:8;:21;;:36;;;;;;;;;;;6042:11;;6027:8;:12;;:26;;;;;6085:6;:4;:6::i;:::-;6064:8;:18;;:27;;;;;6122:11;;6102:8;:17;;:31;;;;;6146:9;6161:8;6146:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6146:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6220:6;6188:45;;6208:10;6188:45;;6196:10;6188:45;6228:4;6188:45;;;;;;;;;;;;;;;6253:10;6246:17;;;;5353:918;;;;;:::o;3825:41::-;3860:6;3825:41;:::o;3983:19::-;;;;;;;;;;;;;:::o;4309:41::-;;;;;;;;;;;;;;;;;:::o;2389:185::-;2447:7;2467:9;2483:1;2479;:5;2467:17;;2508:1;2503;:6;;2495:50;;;;;;;;;;;;;;;;;;;;;;2565:1;2558:8;;;2389:185;;;;:::o;2117:186::-;2175:7;2208:1;2203;:6;;2195:51;;;;;;;;;;;;;;;;;;;;;;2257:9;2273:1;2269;:5;2257:17;;2294:1;2287:8;;;2117:186;;;;:::o;10741:155::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:116;;205:36;233:6;227:13;205:36;;;196:45;;190:56;;;;;254:440;;355:3;348:4;340:6;336:17;332:27;322:2;;373:1;370;363:12;322:2;410:6;397:20;432:64;447:48;488:6;447:48;;;432:64;;;423:73;;516:6;509:5;502:21;552:4;544:6;540:17;585:4;578:5;574:16;620:3;611:6;606:3;602:16;599:25;596:2;;;637:1;634;627:12;596:2;647:41;681:6;676:3;671;647:41;;;315:379;;;;;;;;702:118;;769:46;807:6;794:20;769:46;;;760:55;;754:66;;;;;827:241;;931:2;919:9;910:7;906:23;902:32;899:2;;;947:1;944;937:12;899:2;982:1;999:53;1044:7;1035:6;1024:9;1020:22;999:53;;;989:63;;961:97;893:175;;;;;1075:595;;;;1222:2;1210:9;1201:7;1197:23;1193:32;1190:2;;;1238:1;1235;1228:12;1190:2;1273:1;1290:53;1335:7;1326:6;1315:9;1311:22;1290:53;;;1280:63;;1252:97;1380:2;1398:53;1443:7;1434:6;1423:9;1419:22;1398:53;;;1388:63;;1359:98;1516:2;1505:9;1501:18;1488:32;1540:18;1532:6;1529:30;1526:2;;;1572:1;1569;1562:12;1526:2;1592:62;1646:7;1637:6;1626:9;1622:22;1592:62;;;1582:72;;1467:193;1184:486;;;;;;1677:470;;;1807:2;1795:9;1786:7;1782:23;1778:32;1775:2;;;1823:1;1820;1813:12;1775:2;1858:1;1875:53;1920:7;1911:6;1900:9;1896:22;1875:53;;;1865:63;;1837:97;1993:2;1982:9;1978:18;1965:32;2017:18;2009:6;2006:30;2003:2;;;2049:1;2046;2039:12;2003:2;2069:62;2123:7;2114:6;2103:9;2099:22;2069:62;;;2059:72;;1944:193;1769:378;;;;;;2154:257;;2266:2;2254:9;2245:7;2241:23;2237:32;2234:2;;;2282:1;2279;2272:12;2234:2;2317:1;2334:61;2387:7;2378:6;2367:9;2363:22;2334:61;;;2324:71;;2296:105;2228:183;;;;;2418:241;;2522:2;2510:9;2501:7;2497:23;2493:32;2490:2;;;2538:1;2535;2528:12;2490:2;2573:1;2590:53;2635:7;2626:6;2615:9;2611:22;2590:53;;;2580:63;;2552:97;2484:175;;;;;2666:366;;;2787:2;2775:9;2766:7;2762:23;2758:32;2755:2;;;2803:1;2800;2793:12;2755:2;2838:1;2855:53;2900:7;2891:6;2880:9;2876:22;2855:53;;;2845:63;;2817:97;2945:2;2963:53;3008:7;2999:6;2988:9;2984:22;2963:53;;;2953:63;;2924:98;2749:283;;;;;;3039:142;3130:45;3169:5;3130:45;;;3125:3;3118:58;3112:69;;;3188:110;3261:31;3286:5;3261:31;;;3256:3;3249:44;3243:55;;;3305:120;3388:31;3413:5;3388:31;;;3383:3;3376:44;3370:55;;;3432:111;3509:28;3531:5;3509:28;;;3504:3;3497:41;3491:52;;;3550:343;;3660:38;3692:5;3660:38;;;3710:70;3773:6;3768:3;3710:70;;;3703:77;;3785:52;3830:6;3825:3;3818:4;3811:5;3807:16;3785:52;;;3858:29;3880:6;3858:29;;;3853:3;3849:39;3842:46;;3640:253;;;;;;3900:315;;3996:34;4024:5;3996:34;;;4042:60;4095:6;4090:3;4042:60;;;4035:67;;4107:52;4152:6;4147:3;4140:4;4133:5;4129:16;4107:52;;;4180:29;4202:6;4180:29;;;4175:3;4171:39;4164:46;;3976:239;;;;;;4222:335;;4328:34;4356:5;4328:34;;;4374:70;4437:6;4432:3;4374:70;;;4367:77;;4449:52;4494:6;4489:3;4482:4;4475:5;4471:16;4449:52;;;4522:29;4544:6;4522:29;;;4517:3;4513:39;4506:46;;4308:249;;;;;;4587:879;;4722:5;4716:12;4756:1;4745:9;4741:17;4769:1;4764:267;;;;5042:1;5037:423;;;;4734:726;;4764:267;4842:4;4838:1;4827:9;4823:17;4819:28;4861:88;4942:6;4937:3;4861:88;;;4854:95;;4987:4;4983:9;4972;4968:25;4963:3;4956:38;5017:6;5012:3;5008:16;5001:23;;4771:260;4764:267;;5037:423;5106:1;5095:9;5091:17;5122:88;5203:6;5198:3;5122:88;;;5115:95;;5232:37;5263:5;5232:37;;;5285:1;5293:130;5307:6;5304:1;5301:13;5293:130;;;5372:7;5366:14;5362:1;5357:3;5353:11;5346:35;5413:1;5404:7;5400:15;5389:26;;5329:4;5326:1;5322:12;5317:17;;5293:130;;;5446:6;5441:3;5437:16;5430:23;;5044:416;;;4734:726;;4692:774;;;;;;5474:152;5570:50;5614:5;5570:50;;;5565:3;5558:63;5552:74;;;5633:150;5728:49;5771:5;5728:49;;;5723:3;5716:62;5710:73;;;5790:132;5871:45;5910:5;5871:45;;;5866:3;5859:58;5853:69;;;5929:142;6020:45;6059:5;6020:45;;;6015:3;6008:58;6002:69;;;6079:566;;6239:67;6303:2;6298:3;6239:67;;;6232:74;;6339:66;6335:1;6330:3;6326:11;6319:87;6440:66;6435:2;6430:3;6426:12;6419:88;6541:66;6536:2;6531:3;6527:12;6520:88;6636:2;6631:3;6627:12;6620:19;;6225:420;;;;6654:465;;6814:67;6878:2;6873:3;6814:67;;;6807:74;;6914:66;6910:1;6905:3;6901:11;6894:87;7015:66;7010:2;7005:3;7001:12;6994:88;7110:2;7105:3;7101:12;7094:19;;6800:319;;;;7128:465;;7288:67;7352:2;7347:3;7288:67;;;7281:74;;7388:66;7384:1;7379:3;7375:11;7368:87;7489:66;7484:2;7479:3;7475:12;7468:88;7584:2;7579:3;7575:12;7568:19;;7274:319;;;;7602:364;;7762:67;7826:2;7821:3;7762:67;;;7755:74;;7862:66;7858:1;7853:3;7849:11;7842:87;7957:2;7952:3;7948:12;7941:19;;7748:218;;;;7975:566;;8135:67;8199:2;8194:3;8135:67;;;8128:74;;8235:66;8231:1;8226:3;8222:11;8215:87;8336:66;8331:2;8326:3;8322:12;8315:88;8437:66;8432:2;8427:3;8423:12;8416:88;8532:2;8527:3;8523:12;8516:19;;8121:420;;;;8550:465;;8710:67;8774:2;8769:3;8710:67;;;8703:74;;8810:66;8806:1;8801:3;8797:11;8790:87;8911:66;8906:2;8901:3;8897:12;8890:88;9006:2;9001:3;8997:12;8990:19;;8696:319;;;;9024:465;;9184:67;9248:2;9243:3;9184:67;;;9177:74;;9284:66;9280:1;9275:3;9271:11;9264:87;9385:66;9380:2;9375:3;9371:12;9364:88;9480:2;9475:3;9471:12;9464:19;;9170:319;;;;9498:465;;9658:67;9722:2;9717:3;9658:67;;;9651:74;;9758:66;9754:1;9749:3;9745:11;9738:87;9859:66;9854:2;9849:3;9845:12;9838:88;9954:2;9949:3;9945:12;9938:19;;9644:319;;;;9972:465;;10132:67;10196:2;10191:3;10132:67;;;10125:74;;10232:66;10228:1;10223:3;10219:11;10212:87;10333:66;10328:2;10323:3;10319:12;10312:88;10428:2;10423:3;10419:12;10412:19;;10118:319;;;;10446:465;;10606:67;10670:2;10665:3;10606:67;;;10599:74;;10706:66;10702:1;10697:3;10693:11;10686:87;10807:66;10802:2;10797:3;10793:12;10786:88;10902:2;10897:3;10893:12;10886:19;;10592:319;;;;10920:465;;11080:67;11144:2;11139:3;11080:67;;;11073:74;;11180:66;11176:1;11171:3;11167:11;11160:87;11281:66;11276:2;11271:3;11267:12;11260:88;11376:2;11371:3;11367:12;11360:19;;11066:319;;;;11394:566;;11554:67;11618:2;11613:3;11554:67;;;11547:74;;11654:66;11650:1;11645:3;11641:11;11634:87;11755:66;11750:2;11745:3;11741:12;11734:88;11856:66;11851:2;11846:3;11842:12;11835:88;11951:2;11946:3;11942:12;11935:19;;11540:420;;;;11969:465;;12129:67;12193:2;12188:3;12129:67;;;12122:74;;12229:66;12225:1;12220:3;12216:11;12209:87;12330:66;12325:2;12320:3;12316:12;12309:88;12425:2;12420:3;12416:12;12409:19;;12115:319;;;;12443:566;;12603:67;12667:2;12662:3;12603:67;;;12596:74;;12703:66;12699:1;12694:3;12690:11;12683:87;12804:66;12799:2;12794:3;12790:12;12783:88;12905:66;12900:2;12895:3;12891:12;12884:88;13000:2;12995:3;12991:12;12984:19;;12589:420;;;;13018:465;;13178:67;13242:2;13237:3;13178:67;;;13171:74;;13278:66;13274:1;13269:3;13265:11;13258:87;13379:66;13374:2;13369:3;13365:12;13358:88;13474:2;13469:3;13465:12;13458:19;;13164:319;;;;13492:364;;13652:67;13716:2;13711:3;13652:67;;;13645:74;;13752:66;13748:1;13743:3;13739:11;13732:87;13847:2;13842:3;13838:12;13831:19;;13638:218;;;;13865:465;;14025:67;14089:2;14084:3;14025:67;;;14018:74;;14125:66;14121:1;14116:3;14112:11;14105:87;14226:66;14221:2;14216:3;14212:12;14205:88;14321:2;14316:3;14312:12;14305:19;;14011:319;;;;14339:465;;14499:67;14563:2;14558:3;14499:67;;;14492:74;;14599:66;14595:1;14590:3;14586:11;14579:87;14700:66;14695:2;14690:3;14686:12;14679:88;14795:2;14790:3;14786:12;14779:19;;14485:319;;;;14813:465;;14973:67;15037:2;15032:3;14973:67;;;14966:74;;15073:66;15069:1;15064:3;15060:11;15053:87;15174:66;15169:2;15164:3;15160:12;15153:88;15269:2;15264:3;15260:12;15253:19;;14959:319;;;;15349:1661;;15500:5;15495:3;15491:15;15585:3;15578:5;15574:15;15568:22;15596:69;15660:3;15655;15651:13;15638:11;15596:69;;;15521:150;15745:4;15738:5;15734:16;15728:23;15757:62;15813:4;15808:3;15804:14;15791:11;15757:62;;;15681:144;15897:4;15890:5;15886:16;15880:23;15949:3;15943:4;15939:14;15932:4;15927:3;15923:14;15916:38;15969:66;16030:4;16017:11;15969:66;;;15961:74;;15835:212;16123:4;16116:5;16112:16;16106:23;16135:62;16191:4;16186:3;16182:14;16169:11;16135:62;;;16057:146;16283:4;16276:5;16272:16;16266:23;16295:62;16351:4;16346:3;16342:14;16329:11;16295:62;;;16213:150;16434:4;16427:5;16423:16;16417:23;16446:62;16502:4;16497:3;16493:14;16480:11;16446:62;;;16373:141;16591:4;16584:5;16580:16;16574:23;16603:62;16659:4;16654:3;16650:14;16637:11;16603:62;;;16524:147;16747:4;16740:5;16736:16;16730:23;16759:62;16815:4;16810:3;16806:14;16793:11;16759:62;;;16681:146;16902:5;16895;16891:17;16885:24;16915:63;16971:5;16966:3;16962:15;16949:11;16915:63;;;16837:147;17001:4;16994:11;;15473:1537;;;;;;17017:110;17090:31;17115:5;17090:31;;;17085:3;17078:44;17072:55;;;17134:120;17217:31;17242:5;17217:31;;;17212:3;17205:44;17199:55;;;17261:256;;17402:90;17488:3;17479:6;17402:90;;;17395:97;;17509:3;17502:10;;17383:134;;;;;17524:451;;17706:2;17695:9;17691:18;17683:26;;17720:79;17796:1;17785:9;17781:17;17772:6;17720:79;;;17810:72;17878:2;17867:9;17863:18;17854:6;17810:72;;;17893;17961:2;17950:9;17946:18;17937:6;17893:72;;;17677:298;;;;;;;17982:340;;18136:2;18125:9;18121:18;18113:26;;18150:79;18226:1;18215:9;18211:17;18202:6;18150:79;;;18240:72;18308:2;18297:9;18293:18;18284:6;18240:72;;;18107:215;;;;;;18329:324;;18475:2;18464:9;18460:18;18452:26;;18489:71;18557:1;18546:9;18542:17;18533:6;18489:71;;;18571:72;18639:2;18628:9;18624:18;18615:6;18571:72;;;18446:207;;;;;;18660:312;;18800:2;18789:9;18785:18;18777:26;;18814:65;18876:1;18865:9;18861:17;18852:6;18814:65;;;18890:72;18958:2;18947:9;18943:18;18934:6;18890:72;;;18771:201;;;;;;18979:297;;19115:2;19104:9;19100:18;19092:26;;19165:9;19159:4;19155:20;19151:1;19140:9;19136:17;19129:47;19190:76;19261:4;19252:6;19190:76;;;19182:84;;19086:190;;;;;19283:239;;19414:2;19403:9;19399:18;19391:26;;19428:84;19509:1;19498:9;19494:17;19485:6;19428:84;;;19385:137;;;;;19529:237;;19659:2;19648:9;19644:18;19636:26;;19673:83;19753:1;19742:9;19738:17;19729:6;19673:83;;;19630:136;;;;;19773:1199;;20137:3;20126:9;20122:19;20114:27;;20152:79;20228:1;20217:9;20213:17;20204:6;20152:79;;;20242:72;20310:2;20299:9;20295:18;20286:6;20242:72;;;20362:9;20356:4;20352:20;20347:2;20336:9;20332:18;20325:48;20387:72;20454:4;20445:6;20387:72;;;20379:80;;20470:72;20538:2;20527:9;20523:18;20514:6;20470:72;;;20553:73;20621:3;20610:9;20606:19;20597:6;20553:73;;;20637;20705:3;20694:9;20690:19;20681:6;20637:73;;;20721;20789:3;20778:9;20774:19;20765:6;20721:73;;;20805;20873:3;20862:9;20858:19;20849:6;20805:73;;;20889;20957:3;20946:9;20942:19;20933:6;20889:73;;;20108:864;;;;;;;;;;;;;20979:407;;21170:2;21159:9;21155:18;21147:26;;21220:9;21214:4;21210:20;21206:1;21195:9;21191:17;21184:47;21245:131;21371:4;21245:131;;;21237:139;;21141:245;;;;21393:407;;21584:2;21573:9;21569:18;21561:26;;21634:9;21628:4;21624:20;21620:1;21609:9;21605:17;21598:47;21659:131;21785:4;21659:131;;;21651:139;;21555:245;;;;21807:407;;21998:2;21987:9;21983:18;21975:26;;22048:9;22042:4;22038:20;22034:1;22023:9;22019:17;22012:47;22073:131;22199:4;22073:131;;;22065:139;;21969:245;;;;22221:407;;22412:2;22401:9;22397:18;22389:26;;22462:9;22456:4;22452:20;22448:1;22437:9;22433:17;22426:47;22487:131;22613:4;22487:131;;;22479:139;;22383:245;;;;22635:407;;22826:2;22815:9;22811:18;22803:26;;22876:9;22870:4;22866:20;22862:1;22851:9;22847:17;22840:47;22901:131;23027:4;22901:131;;;22893:139;;22797:245;;;;23049:407;;23240:2;23229:9;23225:18;23217:26;;23290:9;23284:4;23280:20;23276:1;23265:9;23261:17;23254:47;23315:131;23441:4;23315:131;;;23307:139;;23211:245;;;;23463:407;;23654:2;23643:9;23639:18;23631:26;;23704:9;23698:4;23694:20;23690:1;23679:9;23675:17;23668:47;23729:131;23855:4;23729:131;;;23721:139;;23625:245;;;;23877:407;;24068:2;24057:9;24053:18;24045:26;;24118:9;24112:4;24108:20;24104:1;24093:9;24089:17;24082:47;24143:131;24269:4;24143:131;;;24135:139;;24039:245;;;;24291:407;;24482:2;24471:9;24467:18;24459:26;;24532:9;24526:4;24522:20;24518:1;24507:9;24503:17;24496:47;24557:131;24683:4;24557:131;;;24549:139;;24453:245;;;;24705:407;;24896:2;24885:9;24881:18;24873:26;;24946:9;24940:4;24936:20;24932:1;24921:9;24917:17;24910:47;24971:131;25097:4;24971:131;;;24963:139;;24867:245;;;;25119:407;;25310:2;25299:9;25295:18;25287:26;;25360:9;25354:4;25350:20;25346:1;25335:9;25331:17;25324:47;25385:131;25511:4;25385:131;;;25377:139;;25281:245;;;;25533:407;;25724:2;25713:9;25709:18;25701:26;;25774:9;25768:4;25764:20;25760:1;25749:9;25745:17;25738:47;25799:131;25925:4;25799:131;;;25791:139;;25695:245;;;;25947:407;;26138:2;26127:9;26123:18;26115:26;;26188:9;26182:4;26178:20;26174:1;26163:9;26159:17;26152:47;26213:131;26339:4;26213:131;;;26205:139;;26109:245;;;;26361:407;;26552:2;26541:9;26537:18;26529:26;;26602:9;26596:4;26592:20;26588:1;26577:9;26573:17;26566:47;26627:131;26753:4;26627:131;;;26619:139;;26523:245;;;;26775:407;;26966:2;26955:9;26951:18;26943:26;;27016:9;27010:4;27006:20;27002:1;26991:9;26987:17;26980:47;27041:131;27167:4;27041:131;;;27033:139;;26937:245;;;;27189:407;;27380:2;27369:9;27365:18;27357:26;;27430:9;27424:4;27420:20;27416:1;27405:9;27401:17;27394:47;27455:131;27581:4;27455:131;;;27447:139;;27351:245;;;;27603:407;;27794:2;27783:9;27779:18;27771:26;;27844:9;27838:4;27834:20;27830:1;27819:9;27815:17;27808:47;27869:131;27995:4;27869:131;;;27861:139;;27765:245;;;;28017:407;;28208:2;28197:9;28193:18;28185:26;;28258:9;28252:4;28248:20;28244:1;28233:9;28229:17;28222:47;28283:131;28409:4;28283:131;;;28275:139;;28179:245;;;;28431:407;;28622:2;28611:9;28607:18;28599:26;;28672:9;28666:4;28662:20;28658:1;28647:9;28643:17;28636:47;28697:131;28823:4;28697:131;;;28689:139;;28593:245;;;;28845:361;;29013:2;29002:9;28998:18;28990:26;;29063:9;29057:4;29053:20;29049:1;29038:9;29034:17;29027:47;29088:108;29191:4;29182:6;29088:108;;;29080:116;;28984:222;;;;;29213:213;;29331:2;29320:9;29316:18;29308:26;;29345:71;29413:1;29402:9;29398:17;29389:6;29345:71;;;29302:124;;;;;29433:256;;29495:2;29489:9;29479:19;;29533:4;29525:6;29521:17;29632:6;29620:10;29617:22;29596:18;29584:10;29581:34;29578:62;29575:2;;;29653:1;29650;29643:12;29575:2;29673:10;29669:2;29662:22;29473:216;;;;;29696:258;;29839:18;29831:6;29828:30;29825:2;;;29871:1;29868;29861:12;29825:2;29915:4;29911:9;29904:4;29896:6;29892:17;29888:33;29880:41;;29944:4;29938;29934:15;29926:23;;29762:192;;;;29963:125;;30039:4;30036:1;30029:15;30076:4;30073:1;30063:18;30051:30;;30021:67;;;;30097:87;;30173:5;30167:12;30157:22;;30151:33;;;;30191:91;;30271:5;30265:12;30255:22;;30249:33;;;;30290:152;;30394:6;30389:3;30382:19;30431:4;30426:3;30422:14;30407:29;;30375:67;;;;;30451:162;;30565:6;30560:3;30553:19;30602:4;30597:3;30593:14;30578:29;;30546:67;;;;;30622:144;;30757:3;30742:18;;30735:31;;;;;30775:163;;30890:6;30885:3;30878:19;30927:4;30922:3;30918:14;30903:29;;30871:67;;;;;30946:105;;31015:31;31040:5;31015:31;;;31004:42;;30998:53;;;;31058:92;;31138:5;31131:13;31124:21;31113:32;;31107:43;;;;31157:127;;31245:1;31238:5;31235:12;31225:2;;31251:9;31225:2;31274:5;31263:16;;31219:65;;;;31291:128;;31371:42;31364:5;31360:54;31349:65;;31343:76;;;;31426:79;;31495:5;31484:16;;31478:27;;;;31512:105;;31581:31;31606:5;31581:31;;;31570:42;;31564:53;;;;31624:92;;31704:5;31697:13;31690:21;31679:32;;31673:43;;;;31723:128;;31803:42;31796:5;31792:54;31781:65;;31775:76;;;;31858:79;;31927:5;31916:16;;31910:27;;;;31944:129;;32031:37;32062:5;32031:37;;;32018:50;;32012:61;;;;32080:147;;32172:50;32216:5;32172:50;;;32159:63;;32153:74;;;;32234:128;;32326:31;32351:5;32326:31;;;32313:44;;32307:55;;;;32369:145;;32460:49;32503:5;32460:49;;;32447:62;;32441:73;;;;32521:127;;32612:31;32637:5;32612:31;;;32599:44;;32593:55;;;;32655:133;;32742:41;32777:5;32742:41;;;32729:54;;32723:65;;;;32795:121;;32874:37;32905:5;32874:37;;;32861:50;;32855:61;;;;32923:115;;33002:31;33027:5;33002:31;;;32989:44;;32983:55;;;;33046:145;33127:6;33122:3;33117;33104:30;33183:1;33174:6;33169:3;33165:16;33158:27;33097:94;;;;33200:268;33265:1;33272:101;33286:6;33283:1;33280:13;33272:101;;;33362:1;33357:3;33353:11;33347:18;33343:1;33338:3;33334:11;33327:39;33308:2;33305:1;33301:10;33296:15;;33272:101;;;33388:6;33385:1;33382:13;33379:2;;;33453:1;33444:6;33439:3;33435:16;33428:27;33379:2;33249:219;;;;;33476:97;;33564:2;33560:7;33555:2;33548:5;33544:14;33540:28;33530:38;;33524:49;;;
Swarm Source
bzzr://2921fb96e82eefe43b4c3bf172590e0934a04362637b290f9d25b85928794261
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.