Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 363 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Get Current Vote... | 21030986 | 75 days ago | IN | 0 ETH | 0.00065149 | ||||
Execute | 19377072 | 306 days ago | IN | 0 ETH | 0.02717108 | ||||
Queue | 19340905 | 312 days ago | IN | 0 ETH | 0.01575389 | ||||
Cast Vote | 19323855 | 314 days ago | IN | 0 ETH | 0.00451283 | ||||
Cast Vote | 19322887 | 314 days ago | IN | 0 ETH | 0.00495405 | ||||
Cast Vote | 19322885 | 314 days ago | IN | 0 ETH | 0.00362952 | ||||
Propose | 19322835 | 314 days ago | IN | 0 ETH | 0.03085128 | ||||
Cast Vote | 18448219 | 437 days ago | IN | 0 ETH | 0.00126356 | ||||
Cast Vote | 18445282 | 437 days ago | IN | 0 ETH | 0.00116409 | ||||
Cast Vote | 18444925 | 437 days ago | IN | 0 ETH | 0.00146861 | ||||
Cast Vote | 18441555 | 438 days ago | IN | 0 ETH | 0.00202776 | ||||
Cast Vote | 18439282 | 438 days ago | IN | 0 ETH | 0.00194289 | ||||
Propose | 18437989 | 438 days ago | IN | 0 ETH | 0.01610545 | ||||
Execute | 17385423 | 586 days ago | IN | 0 ETH | 0.00991982 | ||||
Queue | 17345915 | 591 days ago | IN | 0 ETH | 0.00608667 | ||||
Cast Vote | 17332686 | 593 days ago | IN | 0 ETH | 0.00330589 | ||||
Cast Vote | 17332533 | 593 days ago | IN | 0 ETH | 0.00429464 | ||||
Propose | 17332500 | 593 days ago | IN | 0 ETH | 0.03675455 | ||||
Cast Vote | 17276699 | 601 days ago | IN | 0 ETH | 0.00757491 | ||||
Cast Vote | 17268475 | 602 days ago | IN | 0 ETH | 0.00621279 | ||||
Propose | 17268461 | 602 days ago | IN | 0 ETH | 0.02189907 | ||||
Cast Vote | 17251859 | 605 days ago | IN | 0 ETH | 0.00537208 | ||||
Cast Vote | 17251711 | 605 days ago | IN | 0 ETH | 0.00636112 | ||||
Propose | 17247210 | 605 days ago | IN | 0 ETH | 0.01772113 | ||||
Execute | 16849180 | 661 days ago | IN | 0 ETH | 0.0227341 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
YamGovernorAlpha
Compiler Version
v0.5.15+commit.6a57276f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-02 */ pragma solidity ^0.5.15; pragma experimental ABIEncoderV2; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot 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-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /* Copyright 2020 Compound Labs, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ // Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/GovernorAlpha.sol // Modified to work in the YAM system contract YamGovernorAlpha { /// @notice The name of this contract string public constant name = "YAM Governor Alpha"; /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed function quorumVotes() public view returns (uint256) { return 200000 * 10**24; } // 4% of YAM /// @notice The number of votes required in order for a voter to become a proposer function proposalThreshold() public view returns (uint256) { return 50000 * 10**24; } // 1% of YAM /// @notice The maximum number of actions that can be included in a proposal function proposalMaxOperations() public pure returns (uint256) { return 10; } // 10 actions /// @notice The delay before voting on a proposal may take place, once proposed function votingDelay() public pure returns (uint256) { return 1; } // 1 block /// @notice The duration of voting on a proposal, in blocks function votingPeriod() public pure returns (uint256) { return 12345; } // ~2 days in blocks (assuming 14s blocks) /// @notice The address of the Compound Protocol Timelock TimelockInterface public timelock; /// @notice The address of the Compound governance token YAMInterface public yam; /// @notice The address of the Governor Guardian address public guardian; /// @notice The total number of proposals uint256 public proposalCount; /// @notice Addresses of LP Staking Contracts address[] public incentivizers; struct Proposal { // Unique id for looking up a proposal uint256 id; // Creator of the proposal address proposer; // The timestamp that the proposal will be available for execution, set once the vote succeeds uint256 eta; // the ordered list of target addresses for calls to be made address[] targets; // The ordered list of values (i.e. msg.value) to be passed to the calls to be made uint[] values; // The ordered list of function signatures to be called string[] signatures; // The ordered list of calldata to be passed to each call bytes[] calldatas; // The block at which voting begins: holders must delegate their votes prior to this block uint256 startBlock; // The block at which voting ends: votes must be cast prior to this block uint256 endBlock; // Current number of votes in favor of this proposal uint256 forVotes; // Current number of votes in opposition to this proposal uint256 againstVotes; // Flag marking whether the proposal has been canceled bool canceled; // Flag marking whether the proposal has been executed bool executed; // Receipts of ballots for the entire set of voters mapping (address => Receipt) receipts; } // Ballot receipt record for a voter struct Receipt { // Whether or not a vote has been cast bool hasVoted; // Whether or not the voter supports the proposal bool support; // The number of votes the voter had, which were cast uint256 votes; } // Possible states that a proposal may be in enum ProposalState { Pending, Active, Canceled, Defeated, Succeeded, Queued, Expired, Executed } /// @notice The official record of all proposals ever proposed mapping (uint256 => Proposal) public proposals; /// @notice The latest proposal for each proposer mapping (address => uint256) public latestProposalIds; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the ballot struct used by the contract bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,bool support)"); /// @notice An event emitted when a new proposal is created event ProposalCreated(uint256 id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description); /// @notice An event emitted when a vote has been cast on a proposal event VoteCast(address voter, uint256 proposalId, bool support, uint256 votes); /// @notice An event emitted when a proposal has been canceled event ProposalCanceled(uint256 id); /// @notice An event emitted when a proposal has been queued in the Timelock event ProposalQueued(uint256 id, uint256 eta); /// @notice An event emitted when a proposal has been executed in the Timelock event ProposalExecuted(uint256 id); constructor(address timelock_, address yam_, address[] memory incentivizers_) public { timelock = TimelockInterface(timelock_); yam = YAMInterface(yam_); incentivizers = incentivizers_; guardian = 0xFF3B0A88054f08B91E0c89eEc9a38817501F599A; } function getIncentivizers() public view returns (address[] memory) { address[] memory incs = incentivizers; return incs; } function addIncentivizer(address incentivizer) public { // as a sanity check, make sure it has the function and there is no error // otherwise could brick governance Incentivizer(incentivizer).getPriorVotes(guardian, block.number - 1); for (uint256 i = 0; i < incentivizers.length; i++) { require(incentivizers[i] != incentivizer, "already added"); } require(msg.sender == address(timelock), "GovernorAlpha::!timelock"); incentivizers.push(incentivizer); } function removeIncentivizer(uint256 index) public { require(msg.sender == address(timelock), "GovernorAlpha::!timelock"); if (index >= incentivizers.length) return; if (index != incentivizers.length-1) { incentivizers[index] = incentivizers[incentivizers.length - 1]; } incentivizers.length--; } function getPriorVotes(address account, uint256 blockNumber) public returns (uint256) { // -- get prior votes for yam require(blockNumber < block.number, "Gov::getPriorVotes: not yet determined"); uint256 votes = yam.getPriorVotes(account, blockNumber); for (uint256 i = 0; i < incentivizers.length; i++) { // get prior votes for staking (stakers get full pool power) votes = SafeMath.add(votes, Incentivizer(incentivizers[i]).getPriorVotes(account, blockNumber)); } return votes; } function getCurrentVotes(address account) public returns (uint256) { uint256 votes = yam.getCurrentVotes(account); for (uint256 i = 0; i < incentivizers.length; i++) { // get prior votes for staking (stakers get full pool power) votes = SafeMath.add(votes, Incentivizer(incentivizers[i]).getCurrentVotes(account)); } return votes; } function propose( address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description ) public returns (uint256) { require(getPriorVotes(msg.sender, sub256(block.number, 1)) >= proposalThreshold(), "GovernorAlpha::propose: proposer votes below proposal threshold"); require(targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, "GovernorAlpha::propose: proposal function information arity mismatch"); require(targets.length != 0, "GovernorAlpha::propose: must provide actions"); require(targets.length <= proposalMaxOperations(), "GovernorAlpha::propose: too many actions"); uint256 latestProposalId = latestProposalIds[msg.sender]; if (latestProposalId != 0) { ProposalState proposersLatestProposalState = state(latestProposalId); require(proposersLatestProposalState != ProposalState.Active, "GovernorAlpha::propose: one live proposal per proposer, found an already active proposal"); require(proposersLatestProposalState != ProposalState.Pending, "GovernorAlpha::propose: one live proposal per proposer, found an already pending proposal"); } uint256 startBlock = add256(block.number, votingDelay()); uint256 endBlock = add256(startBlock, votingPeriod()); proposalCount++; Proposal memory newProposal = Proposal({ id: proposalCount, proposer: msg.sender, eta: 0, targets: targets, values: values, signatures: signatures, calldatas: calldatas, startBlock: startBlock, endBlock: endBlock, forVotes: 0, againstVotes: 0, canceled: false, executed: false }); proposals[newProposal.id] = newProposal; latestProposalIds[newProposal.proposer] = newProposal.id; emit ProposalCreated( newProposal.id, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description ); return newProposal.id; } function queue(uint256 proposalId) public { require(state(proposalId) == ProposalState.Succeeded, "GovernorAlpha::queue: proposal can only be queued if it is succeeded"); Proposal storage proposal = proposals[proposalId]; uint256 eta = add256(block.timestamp, timelock.delay()); for (uint256 i = 0; i < proposal.targets.length; i++) { _queueOrRevert( proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta ); } proposal.eta = eta; emit ProposalQueued(proposalId, eta); } function _queueOrRevert( address target, uint256 value, string memory signature, bytes memory data, uint256 eta ) internal { require(!timelock.queuedTransactions( keccak256( abi.encode( target, value, signature, data, eta ) ) ), "GovernorAlpha::_queueOrRevert: proposal action already queued at eta" ); timelock.queueTransaction(target, value, signature, data, eta); } function execute(uint256 proposalId) public payable { require(state(proposalId) == ProposalState.Queued, "GovernorAlpha::execute: proposal can only be executed if it is queued"); Proposal storage proposal = proposals[proposalId]; proposal.executed = true; for (uint256 i = 0; i < proposal.targets.length; i++) { timelock.executeTransaction.value(proposal.values[i])(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta); } emit ProposalExecuted(proposalId); } function cancel(uint256 proposalId) public { ProposalState state = state(proposalId); require(state != ProposalState.Executed, "GovernorAlpha::cancel: cannot cancel executed proposal"); Proposal storage proposal = proposals[proposalId]; require(msg.sender == guardian || getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(), "GovernorAlpha::cancel: proposer above threshold"); proposal.canceled = true; for (uint256 i = 0; i < proposal.targets.length; i++) { timelock.cancelTransaction(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta); } emit ProposalCanceled(proposalId); } function getActions(uint256 proposalId) public view returns ( address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas ) { Proposal storage p = proposals[proposalId]; return (p.targets, p.values, p.signatures, p.calldatas); } function getReceipt(uint256 proposalId, address voter) public view returns (Receipt memory) { return proposals[proposalId].receipts[voter]; } function state(uint256 proposalId) public view returns (ProposalState) { require(proposalCount >= proposalId && proposalId > 0, "GovernorAlpha::state: invalid proposal id"); Proposal storage proposal = proposals[proposalId]; if (proposal.canceled) { return ProposalState.Canceled; } else if (block.number <= proposal.startBlock) { return ProposalState.Pending; } else if (block.number <= proposal.endBlock) { return ProposalState.Active; } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) { return ProposalState.Defeated; } else if (proposal.eta == 0) { return ProposalState.Succeeded; } else if (proposal.executed) { return ProposalState.Executed; } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) { return ProposalState.Expired; } else { return ProposalState.Queued; } } function castVote(uint256 proposalId, bool support) public { return _castVote(msg.sender, proposalId, support); } function castVoteBySig( uint256 proposalId, bool support, uint8 v, bytes32 r, bytes32 s ) public { bytes32 domainSeparator = keccak256( abi.encode( DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this) ) ); bytes32 structHash = keccak256( abi.encode( BALLOT_TYPEHASH, proposalId, support ) ); bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", domainSeparator, structHash ) ); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "GovernorAlpha::castVoteBySig: invalid signature"); return _castVote(signatory, proposalId, support); } function _castVote( address voter, uint256 proposalId, bool support ) internal { require(state(proposalId) == ProposalState.Active, "GovernorAlpha::_castVote: voting is closed"); Proposal storage proposal = proposals[proposalId]; Receipt storage receipt = proposal.receipts[voter]; require(receipt.hasVoted == false, "GovernorAlpha::_castVote: voter already voted"); uint256 votes = getPriorVotes(voter, proposal.startBlock); if (support) { proposal.forVotes = add256(proposal.forVotes, votes); } else { proposal.againstVotes = add256(proposal.againstVotes, votes); } receipt.hasVoted = true; receipt.support = support; receipt.votes = votes; emit VoteCast(voter, proposalId, support, votes); } function __acceptAdmin() public { require(msg.sender == guardian, "GovernorAlpha::__acceptAdmin: sender must be gov guardian"); timelock.acceptAdmin(); } function __abdicate() public { require(msg.sender == guardian, "GovernorAlpha::__abdicate: sender must be gov guardian"); guardian = address(0); } function add256(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "addition overflow"); return c; } function sub256(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "subtraction underflow"); return a - b; } function getChainId() internal pure returns (uint256) { uint256 chainId; assembly { chainId := chainid() } return chainId; } } interface TimelockInterface { function delay() external view returns (uint256); function GRACE_PERIOD() external view returns (uint256); function acceptAdmin() external; function queuedTransactions(bytes32 hash) external view returns (bool); function queueTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external returns (bytes32); function cancelTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external; function executeTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external payable returns (bytes memory); } interface YAMInterface { function getPriorVotes(address account, uint256 blockNumber) external view returns (uint256); function getCurrentVotes(address account) external view returns (uint256); function _acceptGov() external; } interface Incentivizer { function getPriorVotes(address account, uint256 blockNumber) external view returns (uint256); function getCurrentVotes(address account) external view returns (uint256); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"yam_","type":"address"},{"internalType":"address[]","name":"incentivizers_","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"support","type":"bool"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"}],"name":"VoteCast","type":"event"},{"constant":true,"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"__abdicate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"__acceptAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"incentivizer","type":"address"}],"name":"addIncentivizer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"cancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"}],"name":"castVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"getActions","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getIncentivizers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"name":"getReceipt","outputs":[{"components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint256","name":"votes","type":"uint256"}],"internalType":"struct YamGovernorAlpha.Receipt","name":"","type":"tuple"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"incentivizers","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"latestProposalIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalMaxOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"queue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeIncentivizer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum YamGovernorAlpha.ProposalState","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timelock","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"yam","outputs":[{"internalType":"contract YAMInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003c9238038062003c928339810160408190526200003491620001da565b600080546001600160a01b038086166001600160a01b0319928316179092556001805492851692909116919091179055805162000079906004906020840190620000aa565b5050600280546001600160a01b03191673ff3b0a88054f08b91e0c89eec9a38817501f599a17905550620002ba9050565b82805482825590600052602060002090810192821562000102579160200282015b828111156200010257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620000cb565b506200011092915062000114565b5090565b6200013b91905b80821115620001105780546001600160a01b03191681556001016200011b565b90565b80516200014b81620002a0565b92915050565b600082601f8301126200016357600080fd5b81516200017a62000174826200026d565b62000246565b91508181835260208401935060208101905083856020840282011115620001a057600080fd5b60005b83811015620001d05781620001b988826200013e565b8452506020928301929190910190600101620001a3565b5050505092915050565b600080600060608486031215620001f057600080fd5b6000620001fe86866200013e565b935050602062000211868287016200013e565b92505060408401516001600160401b038111156200022e57600080fd5b6200023c8682870162000151565b9150509250925092565b6040518181016001600160401b03811182821017156200026557600080fd5b604052919050565b60006001600160401b038211156200028457600080fd5b5060209081020190565b60006001600160a01b0382166200014b565b620002ab816200028e565b8114620002b757600080fd5b50565b6139c880620002ca6000396000f3fe6080604052600436106101d85760003560e01c80634634c61f11610102578063d33219b411610095578063deaaa7cc11610064578063deaaa7cc14610521578063e23a9a5214610536578063fcc92b0914610563578063fe0d94c114610583576101d8565b8063d33219b4146104b7578063da35c664146104cc578063da95691a146104e1578063ddf0b00914610501576101d8565b80639d628fb8116100d15780639d628fb81461044d578063b4b5ea571461046d578063b58131b01461048d578063b9a61961146104a2576101d8565b80634634c61f146103e3578063760fbc1314610403578063782d6fe1146104185780637bdbe4d014610438576101d8565b806320606b701161017a5780633932abb1116101495780633932abb11461036c5780633e4f49e61461038157806340e58ee5146103ae578063452a9320146103ce576101d8565b806320606b70146102f057806324bc1a64146103055780632c2b24501461031a578063328dd9821461033c576101d8565b806306fdde03116101b657806306fdde031461026a578063071c03321461028c57806315373e3d146102ae57806317977c61146102d0576101d8565b8063013cf08b146101dd57806302a251a31461021b5780630387d7e61461023d575b600080fd5b3480156101e957600080fd5b506101fd6101f83660046126e7565b610596565b6040516102129998979695949392919061379e565b60405180910390f35b34801561022757600080fd5b506102306105ef565b60405161021291906134b8565b34801561024957600080fd5b5061025d6102583660046126e7565b6105f6565b6040516102129190613361565b34801561027657600080fd5b5061027f61061d565b6040516102129190613567565b34801561029857600080fd5b506102a161064b565b604051610212919061354b565b3480156102ba57600080fd5b506102ce6102c9366004612735565b61065a565b005b3480156102dc57600080fd5b506102306102eb36600461252a565b610669565b3480156102fc57600080fd5b5061023061067b565b34801561031157600080fd5b50610230610692565b34801561032657600080fd5b5061032f6106a3565b604051610212919061345a565b34801561034857600080fd5b5061035c6103573660046126e7565b610708565b604051610212949392919061346b565b34801561037857600080fd5b50610230610997565b34801561038d57600080fd5b506103a161039c3660046126e7565b61099c565b6040516102129190613559565b3480156103ba57600080fd5b506102ce6103c93660046126e7565b610b27565b3480156103da57600080fd5b5061025d610d12565b3480156103ef57600080fd5b506102ce6103fe366004612765565b610d21565b34801561040f57600080fd5b506102ce610eb3565b34801561042457600080fd5b50610230610433366004612550565b610eef565b34801561044457600080fd5b50610230611057565b34801561045957600080fd5b506102ce61046836600461252a565b61105c565b34801561047957600080fd5b5061023061048836600461252a565b6111c1565b34801561049957600080fd5b506102306112b0565b3480156104ae57600080fd5b506102ce6112c0565b3480156104c357600080fd5b506102a1611345565b3480156104d857600080fd5b50610230611354565b3480156104ed57600080fd5b506102306104fc36600461258a565b61135a565b34801561050d57600080fd5b506102ce61051c3660046126e7565b6116f5565b34801561052d57600080fd5b50610230611963565b34801561054257600080fd5b50610556610551366004612705565b61196f565b60405161021291906136e8565b34801561056f57600080fd5b506102ce61057e3660046126e7565b6119d0565b6102ce6105913660046126e7565b611a92565b6005602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b9097015495966001600160a01b0390951695939492939192909160ff8082169161010090041689565b6130395b90565b6004818154811061060357fe5b6000918252602090912001546001600160a01b0316905081565b6040518060400160405280601281526020017159414d20476f7665726e6f7220416c70686160701b81525081565b6001546001600160a01b031681565b610665338383611c57565b5050565b60066020526000908152604090205481565b6040516106879061334b565b604051809103902081565b6c02863c1f5cdae42f954000000090565b60608060048054806020026020016040519081016040528092919081815260200182805480156106fc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106de575b50939550505050505090565b6060806060806000600560008781526020019081526020016000209050806003018160040182600501836006018380548060200260200160405190810160405280929190818152602001828054801561078a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161076c575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156107dc57602002820191906000526020600020905b8154815260200190600101908083116107c8575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156108af5760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505081526020019060010190610804565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156109815760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561096d5780601f106109425761010080835404028352916020019161096d565b820191906000526020600020905b81548152906001019060200180831161095057829003601f168201915b5050505050815260200190600101906108d6565b5050505090509450945094509450509193509193565b600190565b600081600354101580156109b05750600082115b6109d55760405162461bcd60e51b81526004016109cc906135c8565b60405180910390fd5b6000828152600560205260409020600b81015460ff16156109fa576002915050610b22565b80600701544311610a0f576000915050610b22565b80600801544311610a24576001915050610b22565b80600a01548160090154111580610a455750610a3e610692565b8160090154105b15610a54576003915050610b22565b6002810154610a67576004915050610b22565b600b810154610100900460ff1615610a83576007915050610b22565b6002810154600054604080516360d143f160e11b81529051610b0c93926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610acf57600080fd5b505afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b079190810190612694565b611d7d565b4210610b1c576006915050610b22565b60059150505b919050565b6000610b328261099c565b90506007816007811115610b4257fe5b1415610b605760405162461bcd60e51b81526004016109cc906136a8565b60008281526005602052604090206002546001600160a01b0316331480610bad5750610b8a6112b0565b600180830154610bab916001600160a01b0390911690610433904390611da9565b105b610bc95760405162461bcd60e51b81526004016109cc90613648565b600b8101805460ff1916600117905560005b6003820154811015610cd5576000546003830180546001600160a01b039092169163591fcdfe919084908110610c0d57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610c3557fe5b9060005260206000200154856005018581548110610c4f57fe5b90600052602060002001866006018681548110610c6857fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c97959493929190613419565b600060405180830381600087803b158015610cb157600080fd5b505af1158015610cc5573d6000803e3d6000fd5b505060019092019150610bdb9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d0591906134b8565b60405180910390a1505050565b6002546001600160a01b031681565b6000604051610d2f9061334b565b60408051918290038220828201909152601282527159414d20476f7665726e6f7220416c70686160701b6020909201919091527f63e44b07eb663d132f3b867c12624d91b2a07d728ab5358df3bb5d0d12341eb9610d8b611dd1565b30604051602001610d9f94939291906134c6565b6040516020818303038152906040528051906020012090506000604051610dc590613356565b604051908190038120610dde91899089906020016134fb565b60405160208183030381529060405280519060200120905060008282604051602001610e0b92919061331a565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610e489493929190613523565b6020604051602081039080840390855afa158015610e6a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e9d5760405162461bcd60e51b81526004016109cc90613688565b610ea8818a8a611c57565b505050505050505050565b6002546001600160a01b03163314610edd5760405162461bcd60e51b81526004016109cc906136d8565b600280546001600160a01b0319169055565b6000438210610f105760405162461bcd60e51b81526004016109cc90613588565b60015460405163782d6fe160e01b81526000916001600160a01b03169063782d6fe190610f43908790879060040161336f565b60206040518083038186803b158015610f5b57600080fd5b505afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f939190810190612694565b905060005b60045481101561104d576110438260048381548110610fb357fe5b60009182526020909120015460405163782d6fe160e01b81526001600160a01b039091169063782d6fe190610fee908a908a9060040161336f565b60206040518083038186803b15801561100657600080fd5b505afa15801561101a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061103e9190810190612694565b611dd5565b9150600101610f98565b5090505b92915050565b600a90565b60025460405163782d6fe160e01b81526001600160a01b038381169263782d6fe192611094929091169043600019019060040161336f565b60206040518083038186803b1580156110ac57600080fd5b505afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110e49190810190612694565b5060005b60045481101561114457816001600160a01b03166004828154811061110957fe5b6000918252602090912001546001600160a01b0316141561113c5760405162461bcd60e51b81526004016109cc906135e8565b6001016110e8565b506000546001600160a01b0316331461116f5760405162461bcd60e51b81526004016109cc906135f8565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0392909216919091179055565b60015460405163b4b5ea5760e01b815260009182916001600160a01b039091169063b4b5ea57906111f6908690600401613361565b60206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112469190810190612694565b905060005b6004548110156112a95761129f826004838154811061126657fe5b60009182526020909120015460405163b4b5ea5760e01b81526001600160a01b039091169063b4b5ea5790610fee908990600401613361565b915060010161124b565b5092915050565b6ba18f07d736b90be55000000090565b6002546001600160a01b031633146112ea5760405162461bcd60e51b81526004016109cc90613578565b6000805460408051630e18b68160e01b815290516001600160a01b0390921692630e18b6819260048084019382900301818387803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b50505050565b6000546001600160a01b031681565b60035481565b60006113646112b0565b61137333610433436001611da9565b10156113915760405162461bcd60e51b81526004016109cc90613678565b845186511480156113a3575083518651145b80156113b0575082518651145b6113cc5760405162461bcd60e51b81526004016109cc90613638565b85516113ea5760405162461bcd60e51b81526004016109cc90613668565b6113f2611057565b865111156114125760405162461bcd60e51b81526004016109cc90613618565b33600090815260066020526040902054801561148f5760006114338261099c565b9050600181600781111561144357fe5b14156114615760405162461bcd60e51b81526004016109cc90613698565b600081600781111561146f57fe5b141561148d5760405162461bcd60e51b81526004016109cc90613608565b505b600061149d43610b07610997565b905060006114ad82610b076105ef565b60038054600101905590506114c0611f59565b604051806101a001604052806003548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060056000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030190805190602001906115a3929190611fce565b50608082015180516115bf916004840191602090910190612033565b5060a082015180516115db91600584019160209091019061207a565b5060c082015180516115f79160068401916020909101906120d3565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff02191690831515021790555090505080600001516006600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516116dd999897969594939291906136f6565b60405180910390a15193505050505b95945050505050565b60046117008261099c565b600781111561170b57fe5b146117285760405162461bcd60e51b81526004016109cc90613598565b600081815260056020908152604080832083548251630d48571f60e31b815292519194936117819342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b158015610acf57600080fd5b905060005b6003830154811015611929576119218360030182815481106117a457fe5b6000918252602090912001546004850180546001600160a01b0390921691849081106117cc57fe5b90600052602060002001548560050184815481106117e657fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156118745780601f1061184957610100808354040283529160200191611874565b820191906000526020600020905b81548152906001019060200180831161185757829003601f168201915b505050505086600601858154811061188857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505086611dfa565b600101611786565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d059085908490613824565b60405161068790613356565b61197761212c565b5060009182526005602090815260408084206001600160a01b03939093168452600c9092018152918190208151606081018352815460ff8082161515835261010090910416151593810193909352600101549082015290565b6000546001600160a01b031633146119fa5760405162461bcd60e51b81526004016109cc906135f8565b6004548110611a0857611a8f565b600454600019018114611a7c57600480546000198101908110611a2757fe5b600091825260209091200154600480546001600160a01b039092169183908110611a4d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600480549061066590600019830161214c565b50565b6005611a9d8261099c565b6007811115611aa857fe5b14611ac55760405162461bcd60e51b81526004016109cc906135a8565b6000818152600560205260408120600b8101805461ff001916610100179055905b6003820154811015611c1b576000546004830180546001600160a01b0390921691630825f38f919084908110611b1857fe5b9060005260206000200154846003018481548110611b3257fe5b6000918252602090912001546004860180546001600160a01b039092169186908110611b5a57fe5b9060005260206000200154866005018681548110611b7457fe5b90600052602060002001876006018781548110611b8d57fe5b9060005260206000200188600201546040518763ffffffff1660e01b8152600401611bbc959493929190613419565b6000604051808303818588803b158015611bd557600080fd5b505af1158015611be9573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611c1291908101906126b2565b50600101611ae6565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051611c4b91906134b8565b60405180910390a15050565b6001611c628361099c565b6007811115611c6d57fe5b14611c8a5760405162461bcd60e51b81526004016109cc906136b8565b60008281526005602090815260408083206001600160a01b0387168452600c8101909252909120805460ff1615611cd35760405162461bcd60e51b81526004016109cc906135d8565b6000611ce3868460070154610eef565b90508315611d0357611cf9836009015482611d7d565b6009840155611d17565b611d1183600a015482611d7d565b600a8401555b8154600160ff19909116811761ff0019166101008615150217835582018190556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611d6d90889088908890869061338a565b60405180910390a1505050505050565b600082820183811015611da25760405162461bcd60e51b81526004016109cc90613628565b9392505050565b600082821115611dcb5760405162461bcd60e51b81526004016109cc906136c8565b50900390565b4690565b600082820183811015611da25760405162461bcd60e51b81526004016109cc906135b8565b6000546040516001600160a01b039091169063f2b0653790611e2890889088908890889088906020016133bf565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611e5a91906134b8565b60206040518083038186803b158015611e7257600080fd5b505afa158015611e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eaa9190810190612676565b15611ec75760405162461bcd60e51b81526004016109cc90613658565b600054604051633a66f90160e01b81526001600160a01b0390911690633a66f90190611eff90889088908890889088906004016133bf565b602060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f519190810190612694565b505050505050565b604051806101a001604052806000815260200160006001600160a01b031681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215612023579160200282015b8281111561202357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611fee565b5061202f929150612175565b5090565b82805482825590600052602060002090810192821561206e579160200282015b8281111561206e578251825591602001919060010190612053565b5061202f929150612199565b8280548282559060005260206000209081019282156120c7579160200282015b828111156120c757825180516120b79184916020909101906121b3565b509160200191906001019061209a565b5061202f929150612220565b828054828255906000526020600020908101928215612120579160200282015b8281111561212057825180516121109184916020909101906121b3565b50916020019190600101906120f3565b5061202f929150612243565b604080516060810182526000808252602082018190529181019190915290565b81548183558181111561217057600083815260209020612170918101908301612199565b505050565b6105f391905b8082111561202f5780546001600160a01b031916815560010161217b565b6105f391905b8082111561202f576000815560010161219f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121f457805160ff191683800117855561206e565b8280016001018555821561206e579182018281111561206e578251825591602001919060010190612053565b6105f391905b8082111561202f57600061223a8282612266565b50600101612226565b6105f391905b8082111561202f57600061225d8282612266565b50600101612249565b50805460018160011615610100020316600290046000825580601f1061228c5750611a8f565b601f016020900490600052602060002090810190611a8f9190612199565b803561105181613956565b600082601f8301126122c657600080fd5b81356122d96122d482613859565b613832565b915081818352602084019350602081019050838560208402820111156122fe57600080fd5b60005b8381101561232a578161231488826122aa565b8452506020928301929190910190600101612301565b5050505092915050565b600082601f83011261234557600080fd5b81356123536122d482613859565b81815260209384019390925082018360005b8381101561232a578135860161237b888261248a565b8452506020928301929190910190600101612365565b600082601f8301126123a257600080fd5b81356123b06122d482613859565b81815260209384019390925082018360005b8381101561232a57813586016123d8888261248a565b84525060209283019291909101906001016123c2565b600082601f8301126123ff57600080fd5b813561240d6122d482613859565b9150818183526020840193506020810190508385602084028201111561243257600080fd5b60005b8381101561232a57816124488882612474565b8452506020928301929190910190600101612435565b80356110518161396a565b80516110518161396a565b803561105181613973565b805161105181613973565b600082601f83011261249b57600080fd5b81356124a96122d48261387a565b915080825260208301602083018583830111156124c557600080fd5b6124d083828461390a565b50505092915050565b600082601f8301126124ea57600080fd5b81516124f86122d48261387a565b9150808252602083016020830185838301111561251457600080fd5b6124d0838284613916565b80356110518161397c565b60006020828403121561253c57600080fd5b600061254884846122aa565b949350505050565b6000806040838503121561256357600080fd5b600061256f85856122aa565b925050602061258085828601612474565b9150509250929050565b600080600080600060a086880312156125a257600080fd5b853567ffffffffffffffff8111156125b957600080fd5b6125c5888289016122b5565b955050602086013567ffffffffffffffff8111156125e257600080fd5b6125ee888289016123ee565b945050604086013567ffffffffffffffff81111561260b57600080fd5b61261788828901612391565b935050606086013567ffffffffffffffff81111561263457600080fd5b61264088828901612334565b925050608086013567ffffffffffffffff81111561265d57600080fd5b6126698882890161248a565b9150509295509295909350565b60006020828403121561268857600080fd5b60006125488484612469565b6000602082840312156126a657600080fd5b6000612548848461247f565b6000602082840312156126c457600080fd5b815167ffffffffffffffff8111156126db57600080fd5b612548848285016124d9565b6000602082840312156126f957600080fd5b60006125488484612474565b6000806040838503121561271857600080fd5b60006127248585612474565b9250506020612580858286016122aa565b6000806040838503121561274857600080fd5b60006127548585612474565b92505060206125808582860161245e565b600080600080600060a0868803121561277d57600080fd5b60006127898888612474565b955050602061279a8882890161245e565b94505060406127ab8882890161251f565b93505060606127bc88828901612474565b925050608061266988828901612474565b60006127d98383612808565b505060200190565b6000611da283836129aa565b60006127d98383612990565b612802816138ed565b82525050565b612802816138c1565b600061281c826138b4565b61282681856138b8565b9350612831836138a2565b8060005b8381101561285f57815161284988826127cd565b9750612854836138a2565b925050600101612835565b509495945050505050565b6000612875826138b4565b61287f81856138b8565b935083602082028501612891856138a2565b8060005b858110156128cb57848403895281516128ae85826127e1565b94506128b9836138a2565b60209a909a0199925050600101612895565b5091979650505050505050565b60006128e3826138b4565b6128ed81856138b8565b9350836020820285016128ff856138a2565b8060005b858110156128cb578484038952815161291c85826127e1565b9450612927836138a2565b60209a909a0199925050600101612903565b6000612944826138b4565b61294e81856138b8565b9350612959836138a2565b8060005b8381101561285f57815161297188826127ed565b975061297c836138a2565b92505060010161295d565b612802816138cc565b612802816105f3565b6128026129a5826105f3565b6105f3565b60006129b5826138b4565b6129bf81856138b8565b93506129cf818560208601613916565b6129d881613942565b9093019392505050565b6000815460018116600081146129ff5760018114612a2557612a64565b607f6002830416612a1081876138b8565b60ff1984168152955050602085019250612a64565b60028204612a3381876138b8565b9550612a3e856138a8565b60005b82811015612a5d57815488820152600190910190602001612a41565b8701945050505b505092915050565b612802816138f4565b612802816138ff565b6000612a8b6039836138b8565b7f476f7665726e6f72416c7068613a3a5f5f61636365707441646d696e3a20736581527f6e646572206d75737420626520676f7620677561726469616e00000000000000602082015260400192915050565b6000612aea6026836138b8565b7f476f763a3a6765745072696f72566f7465733a206e6f742079657420646574658152651c9b5a5b995960d21b602082015260400192915050565b6000612b326044836138b8565b7f476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000612b9e6045836138b8565b7f476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000612c0b600283610b22565b61190160f01b815260020192915050565b6000612c29601b836138b8565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612c626029836138b8565b7f476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000612cad602d836138b8565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f7465722081526c185b1c9958591e481d9bdd1959609a1b602082015260400192915050565b6000612cfc600d836138b8565b6c185b1c9958591e481859191959609a1b815260200192915050565b6000612d256018836138b8565b7f476f7665726e6f72416c7068613a3a2174696d656c6f636b0000000000000000815260200192915050565b6000612d5e6059836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b6000612de36028836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000612e2d6011836138b8565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000612e5a604383610b22565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000612ec5602783610b22565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20738152667570706f72742960c81b602082015260270192915050565b6000612f0e6044836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000612f7a602f836138b8565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000612fcb6044836138b8565b7f476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a207081527f726f706f73616c20616374696f6e20616c7265616479207175657565642061746020820152632065746160e01b604082015260600192915050565b6000613037602c836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613085603f836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b60006130e4602f836138b8565b7f476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b60006131356058836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b60006131ba6036836138b8565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613212602a836138b8565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e67815269081a5cc818db1bdcd95960b21b602082015260400192915050565b600061325e6015836138b8565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b600061328f6036836138b8565b7f476f7665726e6f72416c7068613a3a5f5f61626469636174653a2073656e6465815275391036bab9ba1031329033b7bb1033bab0b93234b0b760511b602082015260400192915050565b805160608301906132eb8482612987565b5060208201516132fe6020850182612987565b50604082015161133f6040850182612990565b612802816138e7565b600061332582612bfe565b91506133318285612999565b6020820191506133418284612999565b5060200192915050565b600061105182612e4d565b600061105182612eb8565b602081016110518284612808565b6040810161337d8285612808565b611da26020830184612990565b608081016133988287612808565b6133a56020830186612990565b6133b26040830185612987565b6116ec6060830184612990565b60a081016133cd8288612808565b6133da6020830187612990565b81810360408301526133ec81866129aa565b9050818103606083015261340081856129aa565b905061340f6080830184612990565b9695505050505050565b60a081016134278288612808565b6134346020830187612990565b818103604083015261344681866129e2565b9050818103606083015261340081856129e2565b60208082528101611da28184612811565b6080808252810161347c8187612811565b905081810360208301526134908186612939565b905081810360408301526134a481856128d8565b9050818103606083015261340f818461286a565b602081016110518284612990565b608081016134d48287612990565b6134e16020830186612990565b6134ee6040830185612990565b6116ec6060830184612808565b606081016135098286612990565b6135166020830185612990565b6125486040830184612987565b608081016135318287612990565b61353e6020830186613311565b6133b26040830185612990565b602081016110518284612a6c565b602081016110518284612a75565b60208082528101611da281846129aa565b6020808252810161105181612a7e565b6020808252810161105181612add565b6020808252810161105181612b25565b6020808252810161105181612b91565b6020808252810161105181612c1c565b6020808252810161105181612c55565b6020808252810161105181612ca0565b6020808252810161105181612cef565b6020808252810161105181612d18565b6020808252810161105181612d51565b6020808252810161105181612dd6565b6020808252810161105181612e20565b6020808252810161105181612f01565b6020808252810161105181612f6d565b6020808252810161105181612fbe565b602080825281016110518161302a565b6020808252810161105181613078565b60208082528101611051816130d7565b6020808252810161105181613128565b60208082528101611051816131ad565b6020808252810161105181613205565b6020808252810161105181613251565b6020808252810161105181613282565b6060810161105182846132da565b6101208101613705828c612990565b613712602083018b6127f9565b8181036040830152613724818a612811565b905081810360608301526137388189612939565b9050818103608083015261374c81886128d8565b905081810360a0830152613760818761286a565b905061376f60c0830186612990565b61377c60e0830185612990565b81810361010083015261378f81846129aa565b9b9a5050505050505050505050565b61012081016137ad828c612990565b6137ba602083018b612808565b6137c7604083018a612990565b6137d46060830189612990565b6137e16080830188612990565b6137ee60a0830187612990565b6137fb60c0830186612990565b61380860e0830185612987565b613816610100830184612987565b9a9950505050505050505050565b6040810161337d8285612990565b60405181810167ffffffffffffffff8111828210171561385157600080fd5b604052919050565b600067ffffffffffffffff82111561387057600080fd5b5060209081020190565b600067ffffffffffffffff82111561389157600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611051826138db565b151590565b80610b228161394c565b6001600160a01b031690565b60ff1690565b6000611051825b6000611051826138c1565b6000611051826138d1565b82818337506000910152565b60005b83811015613931578181015183820152602001613919565b8381111561133f5750506000910152565b601f01601f191690565b60088110611a8f57fe5b61395f816138c1565b8114611a8f57600080fd5b61395f816138cc565b61395f816105f3565b61395f816138e756fea365627a7a7231582089c5d8fff2ed81d2d8ef6c4a7f52b83068fbcffbaa43d9ec235f1ab15aebd0986c6578706572696d656e74616cf564736f6c634300050f00400000000000000000000000008b4f1616751117c38a0f84f9a146cca191ea3ec50000000000000000000000000aacfbec6a24756c20d41914f2caba817c0d852100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d67c05523d8ec1c60760fd017ef006b9f6e496d0
Deployed Bytecode
0x6080604052600436106101d85760003560e01c80634634c61f11610102578063d33219b411610095578063deaaa7cc11610064578063deaaa7cc14610521578063e23a9a5214610536578063fcc92b0914610563578063fe0d94c114610583576101d8565b8063d33219b4146104b7578063da35c664146104cc578063da95691a146104e1578063ddf0b00914610501576101d8565b80639d628fb8116100d15780639d628fb81461044d578063b4b5ea571461046d578063b58131b01461048d578063b9a61961146104a2576101d8565b80634634c61f146103e3578063760fbc1314610403578063782d6fe1146104185780637bdbe4d014610438576101d8565b806320606b701161017a5780633932abb1116101495780633932abb11461036c5780633e4f49e61461038157806340e58ee5146103ae578063452a9320146103ce576101d8565b806320606b70146102f057806324bc1a64146103055780632c2b24501461031a578063328dd9821461033c576101d8565b806306fdde03116101b657806306fdde031461026a578063071c03321461028c57806315373e3d146102ae57806317977c61146102d0576101d8565b8063013cf08b146101dd57806302a251a31461021b5780630387d7e61461023d575b600080fd5b3480156101e957600080fd5b506101fd6101f83660046126e7565b610596565b6040516102129998979695949392919061379e565b60405180910390f35b34801561022757600080fd5b506102306105ef565b60405161021291906134b8565b34801561024957600080fd5b5061025d6102583660046126e7565b6105f6565b6040516102129190613361565b34801561027657600080fd5b5061027f61061d565b6040516102129190613567565b34801561029857600080fd5b506102a161064b565b604051610212919061354b565b3480156102ba57600080fd5b506102ce6102c9366004612735565b61065a565b005b3480156102dc57600080fd5b506102306102eb36600461252a565b610669565b3480156102fc57600080fd5b5061023061067b565b34801561031157600080fd5b50610230610692565b34801561032657600080fd5b5061032f6106a3565b604051610212919061345a565b34801561034857600080fd5b5061035c6103573660046126e7565b610708565b604051610212949392919061346b565b34801561037857600080fd5b50610230610997565b34801561038d57600080fd5b506103a161039c3660046126e7565b61099c565b6040516102129190613559565b3480156103ba57600080fd5b506102ce6103c93660046126e7565b610b27565b3480156103da57600080fd5b5061025d610d12565b3480156103ef57600080fd5b506102ce6103fe366004612765565b610d21565b34801561040f57600080fd5b506102ce610eb3565b34801561042457600080fd5b50610230610433366004612550565b610eef565b34801561044457600080fd5b50610230611057565b34801561045957600080fd5b506102ce61046836600461252a565b61105c565b34801561047957600080fd5b5061023061048836600461252a565b6111c1565b34801561049957600080fd5b506102306112b0565b3480156104ae57600080fd5b506102ce6112c0565b3480156104c357600080fd5b506102a1611345565b3480156104d857600080fd5b50610230611354565b3480156104ed57600080fd5b506102306104fc36600461258a565b61135a565b34801561050d57600080fd5b506102ce61051c3660046126e7565b6116f5565b34801561052d57600080fd5b50610230611963565b34801561054257600080fd5b50610556610551366004612705565b61196f565b60405161021291906136e8565b34801561056f57600080fd5b506102ce61057e3660046126e7565b6119d0565b6102ce6105913660046126e7565b611a92565b6005602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b9097015495966001600160a01b0390951695939492939192909160ff8082169161010090041689565b6130395b90565b6004818154811061060357fe5b6000918252602090912001546001600160a01b0316905081565b6040518060400160405280601281526020017159414d20476f7665726e6f7220416c70686160701b81525081565b6001546001600160a01b031681565b610665338383611c57565b5050565b60066020526000908152604090205481565b6040516106879061334b565b604051809103902081565b6c02863c1f5cdae42f954000000090565b60608060048054806020026020016040519081016040528092919081815260200182805480156106fc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106de575b50939550505050505090565b6060806060806000600560008781526020019081526020016000209050806003018160040182600501836006018380548060200260200160405190810160405280929190818152602001828054801561078a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161076c575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156107dc57602002820191906000526020600020905b8154815260200190600101908083116107c8575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156108af5760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505081526020019060010190610804565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156109815760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561096d5780601f106109425761010080835404028352916020019161096d565b820191906000526020600020905b81548152906001019060200180831161095057829003601f168201915b5050505050815260200190600101906108d6565b5050505090509450945094509450509193509193565b600190565b600081600354101580156109b05750600082115b6109d55760405162461bcd60e51b81526004016109cc906135c8565b60405180910390fd5b6000828152600560205260409020600b81015460ff16156109fa576002915050610b22565b80600701544311610a0f576000915050610b22565b80600801544311610a24576001915050610b22565b80600a01548160090154111580610a455750610a3e610692565b8160090154105b15610a54576003915050610b22565b6002810154610a67576004915050610b22565b600b810154610100900460ff1615610a83576007915050610b22565b6002810154600054604080516360d143f160e11b81529051610b0c93926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610acf57600080fd5b505afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b079190810190612694565b611d7d565b4210610b1c576006915050610b22565b60059150505b919050565b6000610b328261099c565b90506007816007811115610b4257fe5b1415610b605760405162461bcd60e51b81526004016109cc906136a8565b60008281526005602052604090206002546001600160a01b0316331480610bad5750610b8a6112b0565b600180830154610bab916001600160a01b0390911690610433904390611da9565b105b610bc95760405162461bcd60e51b81526004016109cc90613648565b600b8101805460ff1916600117905560005b6003820154811015610cd5576000546003830180546001600160a01b039092169163591fcdfe919084908110610c0d57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610c3557fe5b9060005260206000200154856005018581548110610c4f57fe5b90600052602060002001866006018681548110610c6857fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c97959493929190613419565b600060405180830381600087803b158015610cb157600080fd5b505af1158015610cc5573d6000803e3d6000fd5b505060019092019150610bdb9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d0591906134b8565b60405180910390a1505050565b6002546001600160a01b031681565b6000604051610d2f9061334b565b60408051918290038220828201909152601282527159414d20476f7665726e6f7220416c70686160701b6020909201919091527f63e44b07eb663d132f3b867c12624d91b2a07d728ab5358df3bb5d0d12341eb9610d8b611dd1565b30604051602001610d9f94939291906134c6565b6040516020818303038152906040528051906020012090506000604051610dc590613356565b604051908190038120610dde91899089906020016134fb565b60405160208183030381529060405280519060200120905060008282604051602001610e0b92919061331a565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610e489493929190613523565b6020604051602081039080840390855afa158015610e6a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e9d5760405162461bcd60e51b81526004016109cc90613688565b610ea8818a8a611c57565b505050505050505050565b6002546001600160a01b03163314610edd5760405162461bcd60e51b81526004016109cc906136d8565b600280546001600160a01b0319169055565b6000438210610f105760405162461bcd60e51b81526004016109cc90613588565b60015460405163782d6fe160e01b81526000916001600160a01b03169063782d6fe190610f43908790879060040161336f565b60206040518083038186803b158015610f5b57600080fd5b505afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f939190810190612694565b905060005b60045481101561104d576110438260048381548110610fb357fe5b60009182526020909120015460405163782d6fe160e01b81526001600160a01b039091169063782d6fe190610fee908a908a9060040161336f565b60206040518083038186803b15801561100657600080fd5b505afa15801561101a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061103e9190810190612694565b611dd5565b9150600101610f98565b5090505b92915050565b600a90565b60025460405163782d6fe160e01b81526001600160a01b038381169263782d6fe192611094929091169043600019019060040161336f565b60206040518083038186803b1580156110ac57600080fd5b505afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110e49190810190612694565b5060005b60045481101561114457816001600160a01b03166004828154811061110957fe5b6000918252602090912001546001600160a01b0316141561113c5760405162461bcd60e51b81526004016109cc906135e8565b6001016110e8565b506000546001600160a01b0316331461116f5760405162461bcd60e51b81526004016109cc906135f8565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0392909216919091179055565b60015460405163b4b5ea5760e01b815260009182916001600160a01b039091169063b4b5ea57906111f6908690600401613361565b60206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112469190810190612694565b905060005b6004548110156112a95761129f826004838154811061126657fe5b60009182526020909120015460405163b4b5ea5760e01b81526001600160a01b039091169063b4b5ea5790610fee908990600401613361565b915060010161124b565b5092915050565b6ba18f07d736b90be55000000090565b6002546001600160a01b031633146112ea5760405162461bcd60e51b81526004016109cc90613578565b6000805460408051630e18b68160e01b815290516001600160a01b0390921692630e18b6819260048084019382900301818387803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b50505050565b6000546001600160a01b031681565b60035481565b60006113646112b0565b61137333610433436001611da9565b10156113915760405162461bcd60e51b81526004016109cc90613678565b845186511480156113a3575083518651145b80156113b0575082518651145b6113cc5760405162461bcd60e51b81526004016109cc90613638565b85516113ea5760405162461bcd60e51b81526004016109cc90613668565b6113f2611057565b865111156114125760405162461bcd60e51b81526004016109cc90613618565b33600090815260066020526040902054801561148f5760006114338261099c565b9050600181600781111561144357fe5b14156114615760405162461bcd60e51b81526004016109cc90613698565b600081600781111561146f57fe5b141561148d5760405162461bcd60e51b81526004016109cc90613608565b505b600061149d43610b07610997565b905060006114ad82610b076105ef565b60038054600101905590506114c0611f59565b604051806101a001604052806003548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060056000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030190805190602001906115a3929190611fce565b50608082015180516115bf916004840191602090910190612033565b5060a082015180516115db91600584019160209091019061207a565b5060c082015180516115f79160068401916020909101906120d3565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff02191690831515021790555090505080600001516006600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516116dd999897969594939291906136f6565b60405180910390a15193505050505b95945050505050565b60046117008261099c565b600781111561170b57fe5b146117285760405162461bcd60e51b81526004016109cc90613598565b600081815260056020908152604080832083548251630d48571f60e31b815292519194936117819342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b158015610acf57600080fd5b905060005b6003830154811015611929576119218360030182815481106117a457fe5b6000918252602090912001546004850180546001600160a01b0390921691849081106117cc57fe5b90600052602060002001548560050184815481106117e657fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156118745780601f1061184957610100808354040283529160200191611874565b820191906000526020600020905b81548152906001019060200180831161185757829003601f168201915b505050505086600601858154811061188857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156119165780601f106118eb57610100808354040283529160200191611916565b820191906000526020600020905b8154815290600101906020018083116118f957829003601f168201915b505050505086611dfa565b600101611786565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d059085908490613824565b60405161068790613356565b61197761212c565b5060009182526005602090815260408084206001600160a01b03939093168452600c9092018152918190208151606081018352815460ff8082161515835261010090910416151593810193909352600101549082015290565b6000546001600160a01b031633146119fa5760405162461bcd60e51b81526004016109cc906135f8565b6004548110611a0857611a8f565b600454600019018114611a7c57600480546000198101908110611a2757fe5b600091825260209091200154600480546001600160a01b039092169183908110611a4d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600480549061066590600019830161214c565b50565b6005611a9d8261099c565b6007811115611aa857fe5b14611ac55760405162461bcd60e51b81526004016109cc906135a8565b6000818152600560205260408120600b8101805461ff001916610100179055905b6003820154811015611c1b576000546004830180546001600160a01b0390921691630825f38f919084908110611b1857fe5b9060005260206000200154846003018481548110611b3257fe5b6000918252602090912001546004860180546001600160a01b039092169186908110611b5a57fe5b9060005260206000200154866005018681548110611b7457fe5b90600052602060002001876006018781548110611b8d57fe5b9060005260206000200188600201546040518763ffffffff1660e01b8152600401611bbc959493929190613419565b6000604051808303818588803b158015611bd557600080fd5b505af1158015611be9573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611c1291908101906126b2565b50600101611ae6565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051611c4b91906134b8565b60405180910390a15050565b6001611c628361099c565b6007811115611c6d57fe5b14611c8a5760405162461bcd60e51b81526004016109cc906136b8565b60008281526005602090815260408083206001600160a01b0387168452600c8101909252909120805460ff1615611cd35760405162461bcd60e51b81526004016109cc906135d8565b6000611ce3868460070154610eef565b90508315611d0357611cf9836009015482611d7d565b6009840155611d17565b611d1183600a015482611d7d565b600a8401555b8154600160ff19909116811761ff0019166101008615150217835582018190556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611d6d90889088908890869061338a565b60405180910390a1505050505050565b600082820183811015611da25760405162461bcd60e51b81526004016109cc90613628565b9392505050565b600082821115611dcb5760405162461bcd60e51b81526004016109cc906136c8565b50900390565b4690565b600082820183811015611da25760405162461bcd60e51b81526004016109cc906135b8565b6000546040516001600160a01b039091169063f2b0653790611e2890889088908890889088906020016133bf565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611e5a91906134b8565b60206040518083038186803b158015611e7257600080fd5b505afa158015611e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eaa9190810190612676565b15611ec75760405162461bcd60e51b81526004016109cc90613658565b600054604051633a66f90160e01b81526001600160a01b0390911690633a66f90190611eff90889088908890889088906004016133bf565b602060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f519190810190612694565b505050505050565b604051806101a001604052806000815260200160006001600160a01b031681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215612023579160200282015b8281111561202357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611fee565b5061202f929150612175565b5090565b82805482825590600052602060002090810192821561206e579160200282015b8281111561206e578251825591602001919060010190612053565b5061202f929150612199565b8280548282559060005260206000209081019282156120c7579160200282015b828111156120c757825180516120b79184916020909101906121b3565b509160200191906001019061209a565b5061202f929150612220565b828054828255906000526020600020908101928215612120579160200282015b8281111561212057825180516121109184916020909101906121b3565b50916020019190600101906120f3565b5061202f929150612243565b604080516060810182526000808252602082018190529181019190915290565b81548183558181111561217057600083815260209020612170918101908301612199565b505050565b6105f391905b8082111561202f5780546001600160a01b031916815560010161217b565b6105f391905b8082111561202f576000815560010161219f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121f457805160ff191683800117855561206e565b8280016001018555821561206e579182018281111561206e578251825591602001919060010190612053565b6105f391905b8082111561202f57600061223a8282612266565b50600101612226565b6105f391905b8082111561202f57600061225d8282612266565b50600101612249565b50805460018160011615610100020316600290046000825580601f1061228c5750611a8f565b601f016020900490600052602060002090810190611a8f9190612199565b803561105181613956565b600082601f8301126122c657600080fd5b81356122d96122d482613859565b613832565b915081818352602084019350602081019050838560208402820111156122fe57600080fd5b60005b8381101561232a578161231488826122aa565b8452506020928301929190910190600101612301565b5050505092915050565b600082601f83011261234557600080fd5b81356123536122d482613859565b81815260209384019390925082018360005b8381101561232a578135860161237b888261248a565b8452506020928301929190910190600101612365565b600082601f8301126123a257600080fd5b81356123b06122d482613859565b81815260209384019390925082018360005b8381101561232a57813586016123d8888261248a565b84525060209283019291909101906001016123c2565b600082601f8301126123ff57600080fd5b813561240d6122d482613859565b9150818183526020840193506020810190508385602084028201111561243257600080fd5b60005b8381101561232a57816124488882612474565b8452506020928301929190910190600101612435565b80356110518161396a565b80516110518161396a565b803561105181613973565b805161105181613973565b600082601f83011261249b57600080fd5b81356124a96122d48261387a565b915080825260208301602083018583830111156124c557600080fd5b6124d083828461390a565b50505092915050565b600082601f8301126124ea57600080fd5b81516124f86122d48261387a565b9150808252602083016020830185838301111561251457600080fd5b6124d0838284613916565b80356110518161397c565b60006020828403121561253c57600080fd5b600061254884846122aa565b949350505050565b6000806040838503121561256357600080fd5b600061256f85856122aa565b925050602061258085828601612474565b9150509250929050565b600080600080600060a086880312156125a257600080fd5b853567ffffffffffffffff8111156125b957600080fd5b6125c5888289016122b5565b955050602086013567ffffffffffffffff8111156125e257600080fd5b6125ee888289016123ee565b945050604086013567ffffffffffffffff81111561260b57600080fd5b61261788828901612391565b935050606086013567ffffffffffffffff81111561263457600080fd5b61264088828901612334565b925050608086013567ffffffffffffffff81111561265d57600080fd5b6126698882890161248a565b9150509295509295909350565b60006020828403121561268857600080fd5b60006125488484612469565b6000602082840312156126a657600080fd5b6000612548848461247f565b6000602082840312156126c457600080fd5b815167ffffffffffffffff8111156126db57600080fd5b612548848285016124d9565b6000602082840312156126f957600080fd5b60006125488484612474565b6000806040838503121561271857600080fd5b60006127248585612474565b9250506020612580858286016122aa565b6000806040838503121561274857600080fd5b60006127548585612474565b92505060206125808582860161245e565b600080600080600060a0868803121561277d57600080fd5b60006127898888612474565b955050602061279a8882890161245e565b94505060406127ab8882890161251f565b93505060606127bc88828901612474565b925050608061266988828901612474565b60006127d98383612808565b505060200190565b6000611da283836129aa565b60006127d98383612990565b612802816138ed565b82525050565b612802816138c1565b600061281c826138b4565b61282681856138b8565b9350612831836138a2565b8060005b8381101561285f57815161284988826127cd565b9750612854836138a2565b925050600101612835565b509495945050505050565b6000612875826138b4565b61287f81856138b8565b935083602082028501612891856138a2565b8060005b858110156128cb57848403895281516128ae85826127e1565b94506128b9836138a2565b60209a909a0199925050600101612895565b5091979650505050505050565b60006128e3826138b4565b6128ed81856138b8565b9350836020820285016128ff856138a2565b8060005b858110156128cb578484038952815161291c85826127e1565b9450612927836138a2565b60209a909a0199925050600101612903565b6000612944826138b4565b61294e81856138b8565b9350612959836138a2565b8060005b8381101561285f57815161297188826127ed565b975061297c836138a2565b92505060010161295d565b612802816138cc565b612802816105f3565b6128026129a5826105f3565b6105f3565b60006129b5826138b4565b6129bf81856138b8565b93506129cf818560208601613916565b6129d881613942565b9093019392505050565b6000815460018116600081146129ff5760018114612a2557612a64565b607f6002830416612a1081876138b8565b60ff1984168152955050602085019250612a64565b60028204612a3381876138b8565b9550612a3e856138a8565b60005b82811015612a5d57815488820152600190910190602001612a41565b8701945050505b505092915050565b612802816138f4565b612802816138ff565b6000612a8b6039836138b8565b7f476f7665726e6f72416c7068613a3a5f5f61636365707441646d696e3a20736581527f6e646572206d75737420626520676f7620677561726469616e00000000000000602082015260400192915050565b6000612aea6026836138b8565b7f476f763a3a6765745072696f72566f7465733a206e6f742079657420646574658152651c9b5a5b995960d21b602082015260400192915050565b6000612b326044836138b8565b7f476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000612b9e6045836138b8565b7f476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000612c0b600283610b22565b61190160f01b815260020192915050565b6000612c29601b836138b8565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612c626029836138b8565b7f476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000612cad602d836138b8565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f7465722081526c185b1c9958591e481d9bdd1959609a1b602082015260400192915050565b6000612cfc600d836138b8565b6c185b1c9958591e481859191959609a1b815260200192915050565b6000612d256018836138b8565b7f476f7665726e6f72416c7068613a3a2174696d656c6f636b0000000000000000815260200192915050565b6000612d5e6059836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b6000612de36028836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000612e2d6011836138b8565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000612e5a604383610b22565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000612ec5602783610b22565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20738152667570706f72742960c81b602082015260270192915050565b6000612f0e6044836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000612f7a602f836138b8565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000612fcb6044836138b8565b7f476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a207081527f726f706f73616c20616374696f6e20616c7265616479207175657565642061746020820152632065746160e01b604082015260600192915050565b6000613037602c836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613085603f836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b60006130e4602f836138b8565b7f476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b60006131356058836138b8565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b60006131ba6036836138b8565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613212602a836138b8565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e67815269081a5cc818db1bdcd95960b21b602082015260400192915050565b600061325e6015836138b8565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b600061328f6036836138b8565b7f476f7665726e6f72416c7068613a3a5f5f61626469636174653a2073656e6465815275391036bab9ba1031329033b7bb1033bab0b93234b0b760511b602082015260400192915050565b805160608301906132eb8482612987565b5060208201516132fe6020850182612987565b50604082015161133f6040850182612990565b612802816138e7565b600061332582612bfe565b91506133318285612999565b6020820191506133418284612999565b5060200192915050565b600061105182612e4d565b600061105182612eb8565b602081016110518284612808565b6040810161337d8285612808565b611da26020830184612990565b608081016133988287612808565b6133a56020830186612990565b6133b26040830185612987565b6116ec6060830184612990565b60a081016133cd8288612808565b6133da6020830187612990565b81810360408301526133ec81866129aa565b9050818103606083015261340081856129aa565b905061340f6080830184612990565b9695505050505050565b60a081016134278288612808565b6134346020830187612990565b818103604083015261344681866129e2565b9050818103606083015261340081856129e2565b60208082528101611da28184612811565b6080808252810161347c8187612811565b905081810360208301526134908186612939565b905081810360408301526134a481856128d8565b9050818103606083015261340f818461286a565b602081016110518284612990565b608081016134d48287612990565b6134e16020830186612990565b6134ee6040830185612990565b6116ec6060830184612808565b606081016135098286612990565b6135166020830185612990565b6125486040830184612987565b608081016135318287612990565b61353e6020830186613311565b6133b26040830185612990565b602081016110518284612a6c565b602081016110518284612a75565b60208082528101611da281846129aa565b6020808252810161105181612a7e565b6020808252810161105181612add565b6020808252810161105181612b25565b6020808252810161105181612b91565b6020808252810161105181612c1c565b6020808252810161105181612c55565b6020808252810161105181612ca0565b6020808252810161105181612cef565b6020808252810161105181612d18565b6020808252810161105181612d51565b6020808252810161105181612dd6565b6020808252810161105181612e20565b6020808252810161105181612f01565b6020808252810161105181612f6d565b6020808252810161105181612fbe565b602080825281016110518161302a565b6020808252810161105181613078565b60208082528101611051816130d7565b6020808252810161105181613128565b60208082528101611051816131ad565b6020808252810161105181613205565b6020808252810161105181613251565b6020808252810161105181613282565b6060810161105182846132da565b6101208101613705828c612990565b613712602083018b6127f9565b8181036040830152613724818a612811565b905081810360608301526137388189612939565b9050818103608083015261374c81886128d8565b905081810360a0830152613760818761286a565b905061376f60c0830186612990565b61377c60e0830185612990565b81810361010083015261378f81846129aa565b9b9a5050505050505050505050565b61012081016137ad828c612990565b6137ba602083018b612808565b6137c7604083018a612990565b6137d46060830189612990565b6137e16080830188612990565b6137ee60a0830187612990565b6137fb60c0830186612990565b61380860e0830185612987565b613816610100830184612987565b9a9950505050505050505050565b6040810161337d8285612990565b60405181810167ffffffffffffffff8111828210171561385157600080fd5b604052919050565b600067ffffffffffffffff82111561387057600080fd5b5060209081020190565b600067ffffffffffffffff82111561389157600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611051826138db565b151590565b80610b228161394c565b6001600160a01b031690565b60ff1690565b6000611051825b6000611051826138c1565b6000611051826138d1565b82818337506000910152565b60005b83811015613931578181015183820152602001613919565b8381111561133f5750506000910152565b601f01601f191690565b60088110611a8f57fe5b61395f816138c1565b8114611a8f57600080fd5b61395f816138cc565b61395f816105f3565b61395f816138e756fea365627a7a7231582089c5d8fff2ed81d2d8ef6c4a7f52b83068fbcffbaa43d9ec235f1ab15aebd0986c6578706572696d656e74616cf564736f6c634300050f0040
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008b4f1616751117c38a0f84f9a146cca191ea3ec50000000000000000000000000aacfbec6a24756c20d41914f2caba817c0d852100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d67c05523d8ec1c60760fd017ef006b9f6e496d0
-----Decoded View---------------
Arg [0] : timelock_ (address): 0x8b4f1616751117C38a0f84F9A146cca191ea3EC5
Arg [1] : yam_ (address): 0x0AaCfbeC6a24756c20D41914F2caba817C0d8521
Arg [2] : incentivizers_ (address[]): 0xD67c05523D8ec1c60760Fd017Ef006b9F6e496D0
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b4f1616751117c38a0f84f9a146cca191ea3ec5
Arg [1] : 0000000000000000000000000aacfbec6a24756c20d41914f2caba817c0d8521
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 000000000000000000000000d67c05523d8ec1c60760fd017ef006b9f6e496d0
Deployed Bytecode Sourcemap
7027:17164:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10636:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10636:46:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8006:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8006:71:0;;;:::i;:::-;;;;;;;;8548:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8548:30:0;;;;;;;;:::i;:::-;;;;;;;;7103:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7103:50:0;;;:::i;:::-;;;;;;;;8295:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8295:23:0;;;:::i;:::-;;;;;;;;21266:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21266:141:0;;;;;;;;:::i;:::-;;10746:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10746:53:0;;;;;;;;:::i;10872:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10872:122:0;;;:::i;7295:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7295:80:0;;;:::i;12270:177::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12270:177:0;;;:::i;:::-;;;;;;;;19590:385;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19590:385:0;;;;;;;;:::i;:::-;;;;;;;;;;;7856:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7856:66:0;;;:::i;20178:1080::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20178:1080:0;;;;;;;;:::i;:::-;;;;;;;;18818:764;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18818:764:0;;;;;;;;:::i;8381:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8381:23:0;;;:::i;21415:987::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21415:987:0;;;;;;;;:::i;23501:183::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23501:183:0;;;:::i;13400:592::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13400:592:0;;;;;;;;:::i;7672:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7672:77:0;;;:::i;12455:555::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12455:555:0;;;;;;;;:::i;14000:422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14000:422:0;;;;;;;;:::i;7484:85::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:85:0;;;:::i;23303:190::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23303:190:0;;;:::i;8191:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8191:33:0;;;:::i;8460:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8460:28:0;;;:::i;14430:2383::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14430:2383:0;;;;;;;;:::i;16821:700::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16821:700:0;;;;;;;;:::i;11084:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11084:94:0;;;:::i;19983:187::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19983:187:0;;;;;;;;:::i;:::-;;;;;;;;13018:374;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13018:374:0;;;;;;;;:::i;18208:602::-;;;;;;;;;:::i;10636:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10636:46:0;;;;;;;;;;;;;;;;;;;;;;:::o;8006:71::-;8069:5;8006:71;;:::o;8548:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8548:30:0;;-1:-1:-1;8548:30:0;:::o;7103:50::-;;;;;;;;;;;;;;-1:-1:-1;;;7103:50:0;;;;:::o;8295:23::-;;;-1:-1:-1;;;;;8295:23:0;;:::o;21266:141::-;21357:42;21367:10;21379;21391:7;21357:9;:42::i;:::-;21266:141;;:::o;10746:53::-;;;;;;;;;;;;;:::o;10872:122::-;10914:80;;;;;;;;;;;;;;10872:122;:::o;7295:80::-;7357:15;7295:80;:::o;12270:177::-;12346:16;12380:21;12404:13;12380:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12380:37:0;;;;;;;;;;;;;;;;-1:-1:-1;12380:37:0;;-1:-1:-1;;;;;;12270:177:0;:::o;19590:385::-;19692:24;19731:20;19766:26;19807:24;19859:18;19880:9;:21;19890:10;19880:21;;;;;;;;;;;19859:42;;19920:1;:9;;19931:1;:8;;19941:1;:12;;19955:1;:11;;19912:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19912:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19912:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19912:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19590:385;;;;;:::o;7856:66::-;7918:1;7856:66;:::o;20178:1080::-;20261:13;20317:10;20300:13;;:27;;:45;;;;;20344:1;20331:10;:14;20300:45;20292:99;;;;-1:-1:-1;;;20292:99:0;;;;;;;;;;;;;;;;;20402:25;20430:21;;;:9;:21;;;;;20466:17;;;;;;20462:789;;;20507:22;20500:29;;;;;20462:789;20567:8;:19;;;20551:12;:35;20547:704;;20610:21;20603:28;;;;;20547:704;20669:8;:17;;;20653:12;:33;20649:602;;20710:20;20703:27;;;;;20649:602;20773:8;:21;;;20752:8;:17;;;:42;;:79;;;;20818:13;:11;:13::i;:::-;20798:8;:17;;;:33;20752:79;20748:503;;;20855:22;20848:29;;;;;20748:503;20899:12;;;;20895:356;;20940:23;20933:30;;;;;20895:356;20985:17;;;;;;;;;20981:270;;;21026:22;21019:29;;;;;20981:270;21096:12;;;;21110:8;;:23;;;-1:-1:-1;;;21110:23:0;;;;21089:45;;21096:12;-1:-1:-1;;;;;21110:8:0;;:21;;:23;;;;;;;;;;;;;;:8;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;21110:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21110:23: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;21110:23:0;;;;;;;;;21089:6;:45::i;:::-;21070:15;:64;21066:185;;21158:21;21151:28;;;;;21066:185;21219:20;21212:27;;;20178:1080;;;;:::o;18818:764::-;18886:19;18908:17;18914:10;18908:5;:17::i;:::-;18886:39;-1:-1:-1;18953:22:0;18944:5;:31;;;;;;;;;;18936:98;;;;-1:-1:-1;;;18936:98:0;;;;;;;;;19047:25;19075:21;;;:9;:21;;;;;19129:8;;-1:-1:-1;;;;;19129:8:0;19115:10;:22;;:105;;;19201:19;:17;:19::i;:::-;19155:17;;;;;19141:57;;-1:-1:-1;;;;;19155:17:0;;;;19174:23;;19181:12;;19174:6;:23::i;19141:57::-;:79;19115:105;19107:165;;;;-1:-1:-1;;;19107:165:0;;;;;;;;;19285:17;;;:24;;-1:-1:-1;;19285:24:0;19305:4;19285:24;;;:17;19320:209;19344:16;;;:23;19340:27;;19320:209;;;19389:8;;19416:16;;;:19;;-1:-1:-1;;;;;19389:8:0;;;;:26;;19416:16;19433:1;;19416:19;;;;;;;;;;;;;;;;19437:15;;;:18;;-1:-1:-1;;;;;19416:19:0;;;;19453:1;;19437:18;;;;;;;;;;;;;;19457:8;:19;;19477:1;19457:22;;;;;;;;;;;;;;;19481:8;:18;;19500:1;19481:21;;;;;;;;;;;;;;;19504:8;:12;;;19389:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19389:128:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19369:3:0;;;;;-1:-1:-1;19320:209:0;;-1:-1:-1;19320:209:0;;;19546:28;19563:10;19546:28;;;;;;;;;;;;;;;18818:764;;;:::o;8381:23::-;;;-1:-1:-1;;;;;8381:23:0;;:::o;21415:987::-;21587:23;10914:80;;;;;;;;;;;;;;;;21716:4;;;;;;;;;-1:-1:-1;;;21716:4:0;;;;;;;;21700:22;21741:12;:10;:12::i;:::-;21780:4;21637:163;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21637:163:0;;;21613:198;;;;;;21587:224;;21824:18;11126:52;;;;;;;;;;;;;;;21869:114;;21932:10;;21961:7;;21869:114;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21869:114:0;;;21845:149;;;;;;21824:170;;22007:14;22112:15;22146:10;22048:123;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22048:123:0;;;22024:158;;;;;;22007:175;;22195:17;22215:26;22225:6;22233:1;22236;22239;22215:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;22215:26:0;;-1:-1:-1;;22215:26:0;;;-1:-1:-1;;;;;;;22260:23:0;;22252:83;;;;-1:-1:-1;;;22252:83:0;;;;;;;;;22353:41;22363:9;22374:10;22386:7;22353:9;:41::i;:::-;22346:48;;;;21415:987;;;;;:::o;23501:183::-;23577:8;;-1:-1:-1;;;;;23577:8:0;23563:10;:22;23555:89;;;;-1:-1:-1;;;23555:89:0;;;;;;;;;23655:8;:21;;-1:-1:-1;;;;;;23655:21:0;;;23501:183::o;13400:592::-;13495:7;13581:12;13567:11;:26;13559:77;;;;-1:-1:-1;;;13559:77:0;;;;;;;;;13665:3;;:39;;-1:-1:-1;;;13665:39:0;;13649:13;;-1:-1:-1;;;;;13665:3:0;;:17;;:39;;13683:7;;13692:11;;13665:39;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13665:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13665:39: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;13665:39:0;;;;;;;;;13649:55;-1:-1:-1;13720:9:0;13715:247;13739:13;:20;13735:24;;13715:247;;;13863:87;13876:5;13896:13;13910:1;13896:16;;;;;;;;;;;;;;;;;;13883:66;;-1:-1:-1;;;13883:66:0;;-1:-1:-1;;;;;13896:16:0;;;;13883:44;;:66;;13928:7;;13937:11;;13883:66;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13883:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13883:66: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;13883:66:0;;;;;;;;;13863:12;:87::i;:::-;13855:95;-1:-1:-1;13761:3:0;;13715:247;;;-1:-1:-1;13979:5:0;-1:-1:-1;13400:592:0;;;;;:::o;7672:77::-;7744:2;7672:77;:::o;12455:555::-;12703:8;;12662:68;;-1:-1:-1;;;12662:68:0;;-1:-1:-1;;;;;12662:40:0;;;;;;:68;;12703:8;;;;12713:12;-1:-1:-1;;12713:16:0;;12662:68;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12662:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12662:68: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;12662:68:0;;;;;;;;;-1:-1:-1;12748:9:0;12743:136;12767:13;:20;12763:24;;12743:136;;;12837:12;-1:-1:-1;;;;;12817:32:0;:13;12831:1;12817:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12817:16:0;:32;;12809:58;;;;-1:-1:-1;;;12809:58:0;;;;;;;;;12789:3;;12743:136;;;-1:-1:-1;12921:8:0;;-1:-1:-1;;;;;12921:8:0;12899:10;:31;12891:68;;;;-1:-1:-1;;;12891:68:0;;;;;;;;;12970:13;27:10:-1;;39:1;23:18;;45:23;;-1:-1;12970:32:0;;;;;;;;-1:-1:-1;;;;;;12970:32:0;-1:-1:-1;;;;;12970:32:0;;;;;;;;;;12455:555::o;14000:422::-;14117:3;;:28;;-1:-1:-1;;;14117:28:0;;14076:7;;;;-1:-1:-1;;;;;14117:3:0;;;;:19;;:28;;14137:7;;14117:28;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14117:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14117:28: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;14117:28:0;;;;;;;;;14101:44;-1:-1:-1;14161:9:0;14156:236;14180:13;:20;14176:24;;14156:236;;;14304:76;14317:5;14337:13;14351:1;14337:16;;;;;;;;;;;;;;;;;;14324:55;;-1:-1:-1;;;14324:55:0;;-1:-1:-1;;;;;14337:16:0;;;;14324:46;;:55;;14371:7;;14324:55;;;;14304:76;14296:84;-1:-1:-1;14202:3:0;;14156:236;;;-1:-1:-1;14409:5:0;14000:422;-1:-1:-1;;14000:422:0:o;7484:85::-;7552:14;7484:85;:::o;23303:190::-;23382:8;;-1:-1:-1;;;;;23382:8:0;23368:10;:22;23360:92;;;;-1:-1:-1;;;23360:92:0;;;;;;;;;23463:8;;;:22;;;-1:-1:-1;;;23463:22:0;;;;-1:-1:-1;;;;;23463:8:0;;;;:20;;:22;;;;;;;;;;:8;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;23463:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23463:22:0;;;;23303:190::o;8191:33::-;;;-1:-1:-1;;;;;8191:33:0;;:::o;8460:28::-;;;;:::o;14430:2383::-;14662:7;14749:19;:17;:19::i;:::-;14695:50;14709:10;14721:23;14728:12;14742:1;14721:6;:23::i;14695:50::-;:73;;14687:149;;;;-1:-1:-1;;;14687:149:0;;;;;;;;;14873:6;:13;14855:7;:14;:31;:70;;;;;14908:10;:17;14890:7;:14;:35;14855:70;:108;;;;;14947:9;:16;14929:7;:14;:34;14855:108;14847:189;;;;-1:-1:-1;;;14847:189:0;;;;;;;;;15055:14;;15047:76;;;;-1:-1:-1;;;15047:76:0;;;;;;;;;15160:23;:21;:23::i;:::-;15142:7;:14;:41;;15134:94;;;;-1:-1:-1;;;15134:94:0;;;;;;;;;15286:10;15241:24;15268:29;;;:17;:29;;;;;;15312:21;;15308:454;;15348:42;15393:23;15399:16;15393:5;:23::i;:::-;15348:68;-1:-1:-1;15469:20:0;15437:28;:52;;;;;;;;;;15429:153;;;;-1:-1:-1;;;15429:153:0;;;;;;;;;15635:21;15603:28;:53;;;;;;;;;;15595:155;;;;-1:-1:-1;;;15595:155:0;;;;;;;;;15308:454;;15774:18;15795:35;15802:12;15816:13;:11;:13::i;15795:35::-;15774:56;;15841:16;15860:34;15867:10;15879:14;:12;:14::i;15860:34::-;15907:13;:15;;;;;;15841:53;-1:-1:-1;15933:27:0;;:::i;:::-;15963:427;;;;;;;;15991:13;;15963:427;;;;16029:10;-1:-1:-1;;;;;15963:427:0;;;;;16059:1;15963:427;;;;16084:7;15963:427;;;;16114:6;15963:427;;;;16147:10;15963:427;;;;16183:9;15963:427;;;;16219:10;15963:427;;;;16254:8;15963:427;;;;16287:1;15963:427;;;;16317:1;15963:427;;;;16343:5;15963:427;;;;;;16373:5;15963:427;;;;;15933:457;;16431:11;16403:9;:25;16413:11;:14;;;16403:25;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16403:39:0;;;;;-1:-1:-1;;;;;16403:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16403:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16403:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16403:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16495:11;:14;;;16453:17;:39;16471:11;:20;;;-1:-1:-1;;;;;16453:39:0;-1:-1:-1;;;;;16453:39:0;;;;;;;;;;;;:56;;;;16527:246;16557:11;:14;;;16586:10;16611:7;16633:6;16654:10;16679:9;16703:10;16728:8;16751:11;16527:246;;;;;;;;;;;;;;;;;;;;;;;16791:14;;-1:-1:-1;;;;14430:2383:0;;;;;;;;:::o;16821:700::-;16917:23;16896:17;16902:10;16896:5;:17::i;:::-;:44;;;;;;;;;16888:125;;;;-1:-1:-1;;;16888:125:0;;;;;;;;;17024:25;17052:21;;;:9;:21;;;;;;;;17122:8;;:16;;-1:-1:-1;;;17122:16:0;;;;17052:21;;17024:25;17098:41;;17105:15;;-1:-1:-1;;;;;17122:8:0;;;;:14;;:16;;;;;17052:21;;17122:16;;;;;;:8;:16;;;5:2:-1;;;;30:1;27;20:12;17098:41:0;17084:55;-1:-1:-1;17155:9:0;17150:288;17174:16;;;:23;17170:27;;17150:288;;;17219:207;17252:8;:16;;17269:1;17252:19;;;;;;;;;;;;;;;;;;17290:15;;;:18;;-1:-1:-1;;;;;17252:19:0;;;;17306:1;;17290:18;;;;;;;;;;;;;;17327:8;:19;;17347:1;17327:22;;;;;;;;;;;;;;;;;;17219:207;;;;;;;-1:-1:-1;;17219:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17327:22;17219:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17368:8;:18;;17387:1;17368:21;;;;;;;;;;;;;;;;;;17219:207;;;;;;;-1:-1:-1;;17219:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17368:21;17219:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17408:3;17219:14;:207::i;:::-;17199:3;;17150:288;;;-1:-1:-1;17448:12:0;;;:18;;;17482:31;;;;;;17497:10;;17463:3;;17482:31;;11084:94;11126:52;;;;;;19983:187;20086:14;;:::i;:::-;-1:-1:-1;20125:21:0;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;20125:37:0;;;;;;:30;;;;:37;;;;;;20118:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19983:187::o;13018:374::-;13123:8;;-1:-1:-1;;;;;13123:8:0;13101:10;:31;13093:68;;;;-1:-1:-1;;;13093:68:0;;;;;;;;;13185:13;:20;13176:29;;13172:42;;13207:7;;13172:42;13239:13;:20;-1:-1:-1;;13239:22:0;13230:31;;13226:124;;13299:13;13313:20;;-1:-1:-1;;13313:24:0;;;13299:39;;;;;;;;;;;;;;;;13276:13;:20;;-1:-1:-1;;;;;13299:39:0;;;;13290:5;;13276:20;;;;;;;;;;;;;;:62;;;;;-1:-1:-1;;;;;13276:62:0;;;;;-1:-1:-1;;;;;13276:62:0;;;;;;13226:124;13362:13;:22;;;;;-1:-1:-1;;13362:22:0;;;:::i;13018:374::-;;:::o;18208:602::-;18323:20;18302:17;18308:10;18302:5;:17::i;:::-;:41;;;;;;;;;18294:123;;;;-1:-1:-1;;;18294:123:0;;;;;;;;;18428:25;18456:21;;;:9;:21;;;;;18488:17;;;:24;;-1:-1:-1;;18488:24:0;;;;;18456:21;18523:236;18547:16;;;:23;18543:27;;18523:236;;;18592:8;;18626:15;;;:18;;-1:-1:-1;;;;;18592:8:0;;;;:27;;18626:15;18642:1;;18626:18;;;;;;;;;;;;;;18646:8;:16;;18663:1;18646:19;;;;;;;;;;;;;;;;;;18667:15;;;:18;;-1:-1:-1;;;;;18646:19:0;;;;18683:1;;18667:18;;;;;;;;;;;;;;18687:8;:19;;18707:1;18687:22;;;;;;;;;;;;;;;18711:8;:18;;18730:1;18711:21;;;;;;;;;;;;;;;18734:8;:12;;;18592:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18592:155:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18592:155:0;;;;;;;39:16:-1;36:1;17:17;2:54;101:4;18592:155:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;18592:155:0;;;;;;;;;-1:-1:-1;18572:3:0;;18523:236;;;;18774:28;18791:10;18774:28;;;;;;;;;;;;;;;18208:602;;:::o;22410:885::-;22575:20;22554:17;22560:10;22554:5;:17::i;:::-;:41;;;;;;;;;22546:96;;;;-1:-1:-1;;;22546:96:0;;;;;;;;;22653:25;22681:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;22739:24:0;;;;:17;;;:24;;;;;;22782:16;;;;:25;22774:83;;;;-1:-1:-1;;;22774:83:0;;;;;;;;;22868:13;22884:41;22898:5;22905:8;:19;;;22884:13;:41::i;:::-;22868:57;;22942:7;22938:185;;;22986:32;22993:8;:17;;;23012:5;22986:6;:32::i;:::-;22966:17;;;:52;22938:185;;;23075:36;23082:8;:21;;;23105:5;23075:6;:36::i;:::-;23051:21;;;:60;22938:185;23135:23;;23154:4;-1:-1:-1;;23135:23:0;;;;;-1:-1:-1;;23169:25:0;23135:23;23169:25;;;;;;;23205:13;;:21;;;23244:43;;;;;;23253:5;;23260:10;;23169:25;;23205:21;;23244:43;;;;;;;;;;22410:885;;;;;;:::o;23692:172::-;23753:7;23785:5;;;23809:6;;;;23801:36;;;;-1:-1:-1;;;23801:36:0;;;;;;;;;23855:1;23692:172;-1:-1:-1;;;23692:172:0:o;23872:152::-;23933:7;23966:1;23961;:6;;23953:40;;;;-1:-1:-1;;;23953:40:0;;;;;;;;;-1:-1:-1;24011:5:0;;;23872:152::o;24032:156::-;24145:9;24032:156;:::o;903:181::-;961:7;993:5;;;1017:6;;;;1009:46;;;;-1:-1:-1;;;1009:46:0;;;;;;;;17529:671;17736:8;;17810:183;;-1:-1:-1;;;;;17736:8:0;;;;:27;;17810:183;;17845:6;;17876:5;;17906:9;;17940:4;;17969:3;;17810:183;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17810:183:0;;;17780:230;;;;;;17736:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17736:287:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17736:287: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;17736:287:0;;;;;;;;;17735:288;17727:390;;;;-1:-1:-1;;;17727:390:0;;;;;;;;;18130:8;;:62;;-1:-1:-1;;;18130:62:0;;-1:-1:-1;;;;;18130:8:0;;;;:25;;:62;;18156:6;;18164:5;;18171:9;;18182:4;;18188:3;;18130:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18130:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18130:62: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;18130:62:0;;;;;;;;;;17529:671;;;;;:::o;7027:17164::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7027:17164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7027:17164:0;-1:-1:-1;;;;;7027:17164:0;;;;;;;;;;;-1:-1:-1;7027:17164:0;;;;;;;-1:-1:-1;7027:17164:0;;;-1:-1:-1;7027:17164:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7027:17164:0;;;-1:-1:-1;7027:17164:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7027:17164:0;;;-1:-1:-1;7027:17164:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7027:17164:0;;;-1:-1:-1;7027:17164:0;:::i;:::-;;;;;;;;;-1:-1:-1;7027:17164:0;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;7027:17164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;1090:85;1203:21;;;1247:4;1235:17;;;;1081:94;;-1:-1;1260:14;;1235:17;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1460:55;;-1:-1;1538:4;1529:14;;;;1557;;;;;1387:1;1380:9;1340:238;;1609:696;;1732:3;1725:4;1717:6;1713:17;1709:27;1699:2;;1750:1;1747;1740:12;1699:2;1787:6;1774:20;1809:86;1824:70;1887:6;1824:70;;1809:86;1923:21;;;1967:4;1955:17;;;;1800:95;;-1:-1;1980:14;;1955:17;2075:1;2060:239;2085:6;2082:1;2079:13;2060:239;;;2168:3;2155:17;2147:6;2143:30;2192:43;2231:3;2219:10;2192:43;;;2180:56;;-1:-1;2259:4;2250:14;;;;2278;;;;;2107:1;2100:9;2060:239;;2331:707;;2448:3;2441:4;2433:6;2429:17;2425:27;2415:2;;2466:1;2463;2456:12;2415:2;2503:6;2490:20;2525:80;2540:64;2597:6;2540:64;;2525:80;2516:89;;2622:5;2647:6;2640:5;2633:21;2677:4;2669:6;2665:17;2655:27;;2699:4;2694:3;2690:14;2683:21;;2752:6;2799:3;2791:4;2783:6;2779:17;2774:3;2770:27;2767:36;2764:2;;;2816:1;2813;2806:12;2764:2;2841:1;2826:206;2851:6;2848:1;2845:13;2826:206;;;2909:3;2931:37;2964:3;2952:10;2931:37;;;2919:50;;-1:-1;2992:4;2983:14;;;;3011;;;;;2873:1;2866:9;2826:206;;3046:124;3110:20;;3135:30;3110:20;3135:30;;3177:128;3252:13;;3270:30;3252:13;3270:30;;3312:130;3379:20;;3404:33;3379:20;3404:33;;3449:134;3527:13;;3545:33;3527:13;3545:33;;3591:432;;3688:3;3681:4;3673:6;3669:17;3665:27;3655:2;;3706:1;3703;3696:12;3655:2;3743:6;3730:20;3765:60;3780:44;3817:6;3780:44;;3765:60;3756:69;;3845:6;3838:5;3831:21;3881:4;3873:6;3869:17;3914:4;3907:5;3903:16;3949:3;3940:6;3935:3;3931:16;3928:25;3925:2;;;3966:1;3963;3956:12;3925:2;3976:41;4010:6;4005:3;4000;3976:41;;;3648:375;;;;;;;;4032:442;;4144:3;4137:4;4129:6;4125:17;4121:27;4111:2;;4162:1;4159;4152:12;4111:2;4192:6;4186:13;4214:64;4229:48;4270:6;4229:48;;4214:64;4205:73;;4298:6;4291:5;4284:21;4334:4;4326:6;4322:17;4367:4;4360:5;4356:16;4402:3;4393:6;4388:3;4384:16;4381:25;4378:2;;;4419:1;4416;4409:12;4378:2;4429:39;4461:6;4456:3;4451;4429:39;;5654:126;5719:20;;5744:31;5719:20;5744:31;;5787:241;;5891:2;5879:9;5870:7;5866:23;5862:32;5859:2;;;5907:1;5904;5897:12;5859:2;5942:1;5959:53;6004:7;5984:9;5959:53;;;5949:63;5853:175;-1:-1;;;;5853:175;6035:366;;;6156:2;6144:9;6135:7;6131:23;6127:32;6124:2;;;6172:1;6169;6162:12;6124:2;6207:1;6224:53;6269:7;6249:9;6224:53;;;6214:63;;6186:97;6314:2;6332:53;6377:7;6368:6;6357:9;6353:22;6332:53;;;6322:63;;6293:98;6118:283;;;;;;6408:1415;;;;;;6701:3;6689:9;6680:7;6676:23;6672:33;6669:2;;;6718:1;6715;6708:12;6669:2;6753:31;;6804:18;6793:30;;6790:2;;;6836:1;6833;6826:12;6790:2;6856:78;6926:7;6917:6;6906:9;6902:22;6856:78;;;6846:88;;6732:208;6999:2;6988:9;6984:18;6971:32;7023:18;7015:6;7012:30;7009:2;;;7055:1;7052;7045:12;7009:2;7075:78;7145:7;7136:6;7125:9;7121:22;7075:78;;;7065:88;;6950:209;7218:2;7207:9;7203:18;7190:32;7242:18;7234:6;7231:30;7228:2;;;7274:1;7271;7264:12;7228:2;7294:84;7370:7;7361:6;7350:9;7346:22;7294:84;;;7284:94;;7169:215;7443:2;7432:9;7428:18;7415:32;7467:18;7459:6;7456:30;7453:2;;;7499:1;7496;7489:12;7453:2;7519:83;7594:7;7585:6;7574:9;7570:22;7519:83;;;7509:93;;7394:214;7667:3;7656:9;7652:19;7639:33;7692:18;7684:6;7681:30;7678:2;;;7724:1;7721;7714:12;7678:2;7744:63;7799:7;7790:6;7779:9;7775:22;7744:63;;;7734:73;;7618:195;6663:1160;;;;;;;;;7830:257;;7942:2;7930:9;7921:7;7917:23;7913:32;7910:2;;;7958:1;7955;7948:12;7910:2;7993:1;8010:61;8063:7;8043:9;8010:61;;8094:263;;8209:2;8197:9;8188:7;8184:23;8180:32;8177:2;;;8225:1;8222;8215:12;8177:2;8260:1;8277:64;8333:7;8313:9;8277:64;;8364:360;;8488:2;8476:9;8467:7;8463:23;8459:32;8456:2;;;8504:1;8501;8494:12;8456:2;8539:24;;8583:18;8572:30;;8569:2;;;8615:1;8612;8605:12;8569:2;8635:73;8700:7;8691:6;8680:9;8676:22;8635:73;;8731:241;;8835:2;8823:9;8814:7;8810:23;8806:32;8803:2;;;8851:1;8848;8841:12;8803:2;8886:1;8903:53;8948:7;8928:9;8903:53;;9249:366;;;9370:2;9358:9;9349:7;9345:23;9341:32;9338:2;;;9386:1;9383;9376:12;9338:2;9421:1;9438:53;9483:7;9463:9;9438:53;;;9428:63;;9400:97;9528:2;9546:53;9591:7;9582:6;9571:9;9567:22;9546:53;;9622:360;;;9740:2;9728:9;9719:7;9715:23;9711:32;9708:2;;;9756:1;9753;9746:12;9708:2;9791:1;9808:53;9853:7;9833:9;9808:53;;;9798:63;;9770:97;9898:2;9916:50;9958:7;9949:6;9938:9;9934:22;9916:50;;9989:733;;;;;;10156:3;10144:9;10135:7;10131:23;10127:33;10124:2;;;10173:1;10170;10163:12;10124:2;10208:1;10225:53;10270:7;10250:9;10225:53;;;10215:63;;10187:97;10315:2;10333:50;10375:7;10366:6;10355:9;10351:22;10333:50;;;10323:60;;10294:95;10420:2;10438:51;10481:7;10472:6;10461:9;10457:22;10438:51;;;10428:61;;10399:96;10526:2;10544:53;10589:7;10580:6;10569:9;10565:22;10544:53;;;10534:63;;10505:98;10634:3;10653:53;10698:7;10689:6;10678:9;10674:22;10653:53;;10730:173;;10817:46;10859:3;10851:6;10817:46;;;-1:-1;;10892:4;10883:14;;10810:93;10912:177;;11023:60;11079:3;11071:6;11023:60;;11288:173;;11375:46;11417:3;11409:6;11375:46;;11469:142;11560:45;11599:5;11560:45;;;11555:3;11548:58;11542:69;;;11618:103;11691:24;11709:5;11691:24;;11879:690;;12024:54;12072:5;12024:54;;;12091:86;12170:6;12165:3;12091:86;;;12084:93;;12198:56;12248:5;12198:56;;;12274:7;12302:1;12287:260;12312:6;12309:1;12306:13;12287:260;;;12379:6;12373:13;12400:63;12459:3;12444:13;12400:63;;;12393:70;;12480:60;12533:6;12480:60;;;12470:70;-1:-1;;12334:1;12327:9;12287:260;;;-1:-1;12560:3;;12003:566;-1:-1;;;;;12003:566;12604:888;;12759:59;12812:5;12759:59;;;12831:91;12915:6;12910:3;12831:91;;;12824:98;;12945:3;12987:4;12979:6;12975:17;12970:3;12966:27;13014:61;13069:5;13014:61;;;13095:7;13123:1;13108:345;13133:6;13130:1;13127:13;13108:345;;;13195:9;13189:4;13185:20;13180:3;13173:33;13240:6;13234:13;13262:74;13331:4;13316:13;13262:74;;;13254:82;;13353:65;13411:6;13353:65;;;13441:4;13432:14;;;;;13343:75;-1:-1;;13155:1;13148:9;13108:345;;;-1:-1;13466:4;;12738:754;-1:-1;;;;;;;12738:754;13529:896;;13686:60;13740:5;13686:60;;;13759:92;13844:6;13839:3;13759:92;;;13752:99;;13874:3;13916:4;13908:6;13904:17;13899:3;13895:27;13943:62;13999:5;13943:62;;;14025:7;14053:1;14038:348;14063:6;14060:1;14057:13;14038:348;;;14125:9;14119:4;14115:20;14110:3;14103:33;14170:6;14164:13;14192:76;14263:4;14248:13;14192:76;;;14184:84;;14285:66;14344:6;14285:66;;;14374:4;14365:14;;;;;14275:76;-1:-1;;14085:1;14078:9;14038:348;;14464:690;;14609:54;14657:5;14609:54;;;14676:86;14755:6;14750:3;14676:86;;;14669:93;;14783:56;14833:5;14783:56;;;14859:7;14887:1;14872:260;14897:6;14894:1;14891:13;14872:260;;;14964:6;14958:13;14985:63;15044:3;15029:13;14985:63;;;14978:70;;15065:60;15118:6;15065:60;;;15055:70;-1:-1;;14919:1;14912:9;14872:260;;15162:94;15229:21;15244:5;15229:21;;15374:113;15457:24;15475:5;15457:24;;15494:152;15595:45;15615:24;15633:5;15615:24;;;15595:45;;15653:343;;15763:38;15795:5;15763:38;;;15813:70;15876:6;15871:3;15813:70;;;15806:77;;15888:52;15933:6;15928:3;15921:4;15914:5;15910:16;15888:52;;;15961:29;15983:6;15961:29;;;15952:39;;;;15743:253;-1:-1;;;15743:253;16348:818;;16465:5;16459:12;16499:1;16488:9;16484:17;16512:1;16507:247;;;;16765:1;16760:400;;;;16477:683;;16507:247;16585:4;16581:1;16570:9;16566:17;16562:28;16604:70;16667:6;16662:3;16604:70;;;-1:-1;;16693:25;;16681:38;;16597:77;-1:-1;;16742:4;16733:14;;;-1:-1;16507:247;;16760:400;16829:1;16818:9;16814:17;16845:70;16908:6;16903:3;16845:70;;;16838:77;;16937:37;16968:5;16937:37;;;16990:1;16998:130;17012:6;17009:1;17006:13;16998:130;;;17071:14;;17058:11;;;17051:35;17118:1;17105:15;;;;17034:4;17027:12;16998:130;;;17142:11;;;-1:-1;;;16477:683;;16435:731;;;;;;17174:178;17283:63;17340:5;17283:63;;17534:156;17632:52;17678:5;17632:52;;19580:394;;19740:67;19804:2;19799:3;19740:67;;;19840:34;19820:55;;19909:27;19904:2;19895:12;;19888:49;19965:2;19956:12;;19726:248;-1:-1;;19726:248;19983:375;;20143:67;20207:2;20202:3;20143:67;;;20243:34;20223:55;;-1:-1;;;20307:2;20298:12;;20291:30;20349:2;20340:12;;20129:229;-1:-1;;20129:229;20367:442;;20527:67;20591:2;20586:3;20527:67;;;20627:34;20607:55;;20696:34;20691:2;20682:12;;20675:56;-1:-1;;;20760:2;20751:12;;20744:28;20800:2;20791:12;;20513:296;-1:-1;;20513:296;20818:443;;20978:67;21042:2;21037:3;20978:67;;;21078:34;21058:55;;21147:34;21142:2;21133:12;;21126:56;-1:-1;;;21211:2;21202:12;;21195:29;21252:2;21243:12;;20964:297;-1:-1;;20964:297;21270:398;;21448:84;21530:1;21525:3;21448:84;;;-1:-1;;;21545:87;;21660:1;21651:11;;21434:234;-1:-1;;21434:234;21677:327;;21837:67;21901:2;21896:3;21837:67;;;21937:29;21917:50;;21995:2;21986:12;;21823:181;-1:-1;;21823:181;22013:378;;22173:67;22237:2;22232:3;22173:67;;;22273:34;22253:55;;-1:-1;;;22337:2;22328:12;;22321:33;22382:2;22373:12;;22159:232;-1:-1;;22159:232;22400:382;;22560:67;22624:2;22619:3;22560:67;;;22660:34;22640:55;;-1:-1;;;22724:2;22715:12;;22708:37;22773:2;22764:12;;22546:236;-1:-1;;22546:236;22791:313;;22951:67;23015:2;23010:3;22951:67;;;-1:-1;;;23031:36;;23095:2;23086:12;;22937:167;-1:-1;;22937:167;23113:324;;23273:67;23337:2;23332:3;23273:67;;;23373:26;23353:47;;23428:2;23419:12;;23259:178;-1:-1;;23259:178;23446:463;;23606:67;23670:2;23665:3;23606:67;;;23706:34;23686:55;;23775:34;23770:2;23761:12;;23754:56;23844:27;23839:2;23830:12;;23823:49;23900:2;23891:12;;23592:317;-1:-1;;23592:317;23918:377;;24078:67;24142:2;24137:3;24078:67;;;24178:34;24158:55;;-1:-1;;;24242:2;24233:12;;24226:32;24286:2;24277:12;;24064:231;-1:-1;;24064:231;24304:317;;24464:67;24528:2;24523:3;24464:67;;;-1:-1;;;24544:40;;24612:2;24603:12;;24450:171;-1:-1;;24450:171;24630:477;;24808:85;24890:2;24885:3;24808:85;;;24926:34;24906:55;;24995:34;24990:2;24981:12;;24974:56;-1:-1;;;25059:2;25050:12;;25043:27;25098:2;25089:12;;24794:313;-1:-1;;24794:313;25116:412;;25294:85;25376:2;25371:3;25294:85;;;25412:34;25392:55;;-1:-1;;;25476:2;25467:12;;25460:31;25519:2;25510:12;;25280:248;-1:-1;;25280:248;25537:442;;25697:67;25761:2;25756:3;25697:67;;;25797:34;25777:55;;25866:34;25861:2;25852:12;;25845:56;-1:-1;;;25930:2;25921:12;;25914:28;25970:2;25961:12;;25683:296;-1:-1;;25683:296;25988:384;;26148:67;26212:2;26207:3;26148:67;;;26248:34;26228:55;;-1:-1;;;26312:2;26303:12;;26296:39;26363:2;26354:12;;26134:238;-1:-1;;26134:238;26381:442;;26541:67;26605:2;26600:3;26541:67;;;26641:34;26621:55;;26710:34;26705:2;26696:12;;26689:56;-1:-1;;;26774:2;26765:12;;26758:28;26814:2;26805:12;;26527:296;-1:-1;;26527:296;26832:381;;26992:67;27056:2;27051:3;26992:67;;;27092:34;27072:55;;-1:-1;;;27156:2;27147:12;;27140:36;27204:2;27195:12;;26978:235;-1:-1;;26978:235;27222:400;;27382:67;27446:2;27441:3;27382:67;;;27482:34;27462:55;;27551:33;27546:2;27537:12;;27530:55;27613:2;27604:12;;27368:254;-1:-1;;27368:254;27631:384;;27791:67;27855:2;27850:3;27791:67;;;27891:34;27871:55;;-1:-1;;;27955:2;27946:12;;27939:39;28006:2;27997:12;;27777:238;-1:-1;;27777:238;28024:462;;28184:67;28248:2;28243:3;28184:67;;;28284:34;28264:55;;28353:34;28348:2;28339:12;;28332:56;28422:26;28417:2;28408:12;;28401:48;28477:2;28468:12;;28170:316;-1:-1;;28170:316;28495:391;;28655:67;28719:2;28714:3;28655:67;;;28755:34;28735:55;;-1:-1;;;28819:2;28810:12;;28803:46;28877:2;28868:12;;28641:245;-1:-1;;28641:245;28895:379;;29055:67;29119:2;29114:3;29055:67;;;29155:34;29135:55;;-1:-1;;;29219:2;29210:12;;29203:34;29265:2;29256:12;;29041:233;-1:-1;;29041:233;29283:321;;29443:67;29507:2;29502:3;29443:67;;;-1:-1;;;29523:44;;29595:2;29586:12;;29429:175;-1:-1;;29429:175;29613:391;;29773:67;29837:2;29832:3;29773:67;;;29873:34;29853:55;;-1:-1;;;29937:2;29928:12;;29921:46;29995:2;29986:12;;29759:245;-1:-1;;29759:245;30085:624;30296:23;;30226:4;30217:14;;;30325:57;30221:3;30296:23;30325:57;;;30246:142;30464:4;30457:5;30453:16;30447:23;30476:57;30527:4;30522:3;30518:14;30504:12;30476:57;;;30398:141;30613:4;30606:5;30602:16;30596:23;30625:63;30682:4;30677:3;30673:14;30659:12;30625:63;;30946:107;31025:22;31041:5;31025:22;;31060:650;;31315:148;31459:3;31315:148;;;31308:155;;31474:75;31545:3;31536:6;31474:75;;;31571:2;31566:3;31562:12;31555:19;;31585:75;31656:3;31647:6;31585:75;;;-1:-1;31682:2;31673:12;;31296:414;-1:-1;;31296:414;31717:372;;31916:148;32060:3;31916:148;;32096:372;;32295:148;32439:3;32295:148;;32475:213;32593:2;32578:18;;32607:71;32582:9;32651:6;32607:71;;32695:324;32841:2;32826:18;;32855:71;32830:9;32899:6;32855:71;;;32937:72;33005:2;32994:9;32990:18;32981:6;32937:72;;33026:535;33222:3;33207:19;;33237:71;33211:9;33281:6;33237:71;;;33319:72;33387:2;33376:9;33372:18;33363:6;33319:72;;;33402:66;33464:2;33453:9;33449:18;33440:6;33402:66;;;33479:72;33547:2;33536:9;33532:18;33523:6;33479:72;;33568:831;33836:3;33821:19;;33851:71;33825:9;33895:6;33851:71;;;33933:72;34001:2;33990:9;33986:18;33977:6;33933:72;;;34053:9;34047:4;34043:20;34038:2;34027:9;34023:18;34016:48;34078:78;34151:4;34142:6;34078:78;;;34070:86;;34204:9;34198:4;34194:20;34189:2;34178:9;34174:18;34167:48;34229:76;34300:4;34291:6;34229:76;;;34221:84;;34316:73;34384:3;34373:9;34369:19;34360:6;34316:73;;;33807:592;;;;;;;;;34406:819;34668:3;34653:19;;34683:71;34657:9;34727:6;34683:71;;;34765:72;34833:2;34822:9;34818:18;34809:6;34765:72;;;34885:9;34879:4;34875:20;34870:2;34859:9;34855:18;34848:48;34910:75;34980:4;34971:6;34910:75;;;34902:83;;35033:9;35027:4;35023:20;35018:2;35007:9;35003:18;34996:48;35058:73;35126:4;35117:6;35058:73;;35232:361;35400:2;35414:47;;;35385:18;;35475:108;35385:18;35569:6;35475:108;;35600:1183;36024:3;36039:47;;;36009:19;;36100:108;36009:19;36194:6;36100:108;;;36092:116;;36256:9;36250:4;36246:20;36241:2;36230:9;36226:18;36219:48;36281:108;36384:4;36375:6;36281:108;;;36273:116;;36437:9;36431:4;36427:20;36422:2;36411:9;36407:18;36400:48;36462:120;36577:4;36568:6;36462:120;;;36454:128;;36630:9;36624:4;36620:20;36615:2;36604:9;36600:18;36593:48;36655:118;36768:4;36759:6;36655:118;;36790:213;36908:2;36893:18;;36922:71;36897:9;36966:6;36922:71;;37010:547;37212:3;37197:19;;37227:71;37201:9;37271:6;37227:71;;;37309:72;37377:2;37366:9;37362:18;37353:6;37309:72;;;37392;37460:2;37449:9;37445:18;37436:6;37392:72;;;37475;37543:2;37532:9;37528:18;37519:6;37475:72;;37564:423;37732:2;37717:18;;37746:71;37721:9;37790:6;37746:71;;;37828:72;37896:2;37885:9;37881:18;37872:6;37828:72;;;37911:66;37973:2;37962:9;37958:18;37949:6;37911:66;;37994:539;38192:3;38177:19;;38207:71;38181:9;38251:6;38207:71;;;38289:68;38353:2;38342:9;38338:18;38329:6;38289:68;;;38368:72;38436:2;38425:9;38421:18;38412:6;38368:72;;38540:265;38684:2;38669:18;;38698:97;38673:9;38768:6;38698:97;;39074:243;39207:2;39192:18;;39221:86;39196:9;39280:6;39221:86;;39324:293;39458:2;39472:47;;;39443:18;;39533:74;39443:18;39593:6;39533:74;;39624:407;39815:2;39829:47;;;39800:18;;39890:131;39800:18;39890:131;;40038:407;40229:2;40243:47;;;40214:18;;40304:131;40214:18;40304:131;;40452:407;40643:2;40657:47;;;40628:18;;40718:131;40628:18;40718:131;;40866:407;41057:2;41071:47;;;41042:18;;41132:131;41042:18;41132:131;;41280:407;41471:2;41485:47;;;41456:18;;41546:131;41456:18;41546:131;;41694:407;41885:2;41899:47;;;41870:18;;41960:131;41870:18;41960:131;;42108:407;42299:2;42313:47;;;42284:18;;42374:131;42284:18;42374:131;;42522:407;42713:2;42727:47;;;42698:18;;42788:131;42698:18;42788:131;;42936:407;43127:2;43141:47;;;43112:18;;43202:131;43112:18;43202:131;;43350:407;43541:2;43555:47;;;43526:18;;43616:131;43526:18;43616:131;;43764:407;43955:2;43969:47;;;43940:18;;44030:131;43940:18;44030:131;;44178:407;44369:2;44383:47;;;44354:18;;44444:131;44354:18;44444:131;;44592:407;44783:2;44797:47;;;44768:18;;44858:131;44768:18;44858:131;;45006:407;45197:2;45211:47;;;45182:18;;45272:131;45182:18;45272:131;;45420:407;45611:2;45625:47;;;45596:18;;45686:131;45596:18;45686:131;;45834:407;46025:2;46039:47;;;46010:18;;46100:131;46010:18;46100:131;;46248:407;46439:2;46453:47;;;46424:18;;46514:131;46424:18;46514:131;;46662:407;46853:2;46867:47;;;46838:18;;46928:131;46838:18;46928:131;;47076:407;47267:2;47281:47;;;47252:18;;47342:131;47252:18;47342:131;;47490:407;47681:2;47695:47;;;47666:18;;47756:131;47666:18;47756:131;;47904:407;48095:2;48109:47;;;48080:18;;48170:131;48080:18;48170:131;;48318:407;48509:2;48523:47;;;48494:18;;48584:131;48494:18;48584:131;;48732:407;48923:2;48937:47;;;48908:18;;48998:131;48908:18;48998:131;;49146:309;49312:2;49297:18;;49326:119;49301:9;49418:6;49326:119;;49682:1847;50274:3;50259:19;;50289:71;50263:9;50333:6;50289:71;;;50371:80;50447:2;50436:9;50432:18;50423:6;50371:80;;;50499:9;50493:4;50489:20;50484:2;50473:9;50469:18;50462:48;50524:108;50627:4;50618:6;50524:108;;;50516:116;;50680:9;50674:4;50670:20;50665:2;50654:9;50650:18;50643:48;50705:108;50808:4;50799:6;50705:108;;;50697:116;;50862:9;50856:4;50852:20;50846:3;50835:9;50831:19;50824:49;50887:120;51002:4;50993:6;50887:120;;;50879:128;;51056:9;51050:4;51046:20;51040:3;51029:9;51025:19;51018:49;51081:118;51194:4;51185:6;51081:118;;;51073:126;;51210:73;51278:3;51267:9;51263:19;51254:6;51210:73;;;51294;51362:3;51351:9;51347:19;51338:6;51294:73;;;51416:9;51410:4;51406:20;51400:3;51389:9;51385:19;51378:49;51441:78;51514:4;51505:6;51441:78;;;51433:86;50245:1284;-1:-1;;;;;;;;;;;50245:1284;51536:1083;51866:3;51851:19;;51881:71;51855:9;51925:6;51881:71;;;51963:72;52031:2;52020:9;52016:18;52007:6;51963:72;;;52046;52114:2;52103:9;52099:18;52090:6;52046:72;;;52129;52197:2;52186:9;52182:18;52173:6;52129:72;;;52212:73;52280:3;52269:9;52265:19;52256:6;52212:73;;;52296;52364:3;52353:9;52349:19;52340:6;52296:73;;;52380;52448:3;52437:9;52433:19;52424:6;52380:73;;;52464:67;52526:3;52515:9;52511:19;52502:6;52464:67;;;52542;52604:3;52593:9;52589:19;52580:6;52542:67;;;51837:782;;;;;;;;;;;;;52626:324;52772:2;52757:18;;52786:71;52761:9;52830:6;52786:71;;52957:256;53019:2;53013:9;53045:17;;;53120:18;53105:34;;53141:22;;;53102:62;53099:2;;;53177:1;53174;53167:12;53099:2;53193;53186:22;52997:216;;-1:-1;52997:216;53220:304;;53379:18;53371:6;53368:30;53365:2;;;53411:1;53408;53401:12;53365:2;-1:-1;53446:4;53434:17;;;53499:15;;53302:222;54475:317;;54614:18;54606:6;54603:30;54600:2;;;54646:1;54643;54636:12;54600:2;-1:-1;54777:4;54713;54690:17;;;;-1:-1;;54686:33;54767:15;;54537:255;55781:151;55905:4;55896:14;;55853:79;56424:157;;56518:14;;;56560:4;56547:18;;;56477:104;56753:137;56856:12;;56827:63;58318:178;58436:19;;;58485:4;58476:14;;58429:67;59896:91;;59958:24;59976:5;59958:24;;59994:85;60060:13;60053:21;;60036:43;60165:140;60244:5;60250:50;60244:5;60250:50;;60312:121;-1:-1;;;;;60374:54;;60357:76;60519:81;60590:4;60579:16;;60562:38;60607:129;;60694:37;60725:5;60743:173;;60848:63;60905:5;60848:63;;61370:140;;61464:41;61499:5;61464:41;;61761:145;61842:6;61837:3;61832;61819:30;-1:-1;61898:1;61880:16;;61873:27;61812:94;61915:268;61980:1;61987:101;62001:6;61998:1;61995:13;61987:101;;;62068:11;;;62062:18;62049:11;;;62042:39;62023:2;62016:10;61987:101;;;62103:6;62100:1;62097:13;62094:2;;;-1:-1;;62168:1;62150:16;;62143:27;61964:219;62272:97;62360:2;62340:14;-1:-1;;62336:28;;62320:49;62377:108;62463:1;62456:5;62453:12;62443:2;;62469:9;62492:117;62561:24;62579:5;62561:24;;;62554:5;62551:35;62541:2;;62600:1;62597;62590:12;62616:111;62682:21;62697:5;62682:21;;62734:117;62803:24;62821:5;62803:24;;62982:113;63049:22;63065:5;63049:22;
Swarm Source
bzzr://89c5d8fff2ed81d2d8ef6c4a7f52b83068fbcffbaa43d9ec235f1ab15aebd098
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.