Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15782536 | 816 days ago | 0.00145666 ETH | ||||
15782536 | 816 days ago | 0.00145666 ETH | ||||
15781915 | 816 days ago | 0.00171622 ETH | ||||
15781915 | 816 days ago | 0.00171622 ETH | ||||
15780891 | 816 days ago | 0.00266055 ETH | ||||
15780891 | 816 days ago | 0.00266055 ETH | ||||
15780873 | 816 days ago | 0.01292889 ETH | ||||
15780873 | 816 days ago | 0.01292889 ETH | ||||
15779283 | 816 days ago | 0.00035606 ETH | ||||
15779283 | 816 days ago | 0.00035606 ETH | ||||
15779262 | 816 days ago | 0.00039374 ETH | ||||
15779262 | 816 days ago | 0.00039374 ETH | ||||
15779259 | 816 days ago | 0.00039726 ETH | ||||
15779259 | 816 days ago | 0.00039726 ETH | ||||
15779253 | 816 days ago | 0.00612902 ETH | ||||
15779253 | 816 days ago | 0.00612902 ETH | ||||
15751631 | 820 days ago | 0.00368193 ETH | ||||
15751631 | 820 days ago | 0.00368193 ETH | ||||
15750969 | 820 days ago | 0.00376126 ETH | ||||
15750969 | 820 days ago | 0.00376126 ETH | ||||
15702942 | 827 days ago | 0.0040026 ETH | ||||
15702942 | 827 days ago | 0.0040026 ETH | ||||
15687648 | 829 days ago | 0.00280533 ETH | ||||
15687648 | 829 days ago | 0.00280533 ETH | ||||
15686981 | 829 days ago | 0.00206482 ETH |
Loading...
Loading
Contract Name:
DividendDistributor
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-13 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @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) { return a + b; } /** * @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 a - b; } /** * @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) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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 a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting 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) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/BabyApe.sol pragma solidity ^0.8.0; interface IBURNER { function burnEmUp() external payable; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IUniswapV2Router02 router; IERC20 public RewardToken; address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 1 * (10 ** 18); uint256 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router, address _reflectionToken, address token) { router = IUniswapV2Router02(_router); RewardToken = IERC20(_reflectionToken); _token = token; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { require(shouldDistribute(msg.sender), "Too soon. Need to wait!"); distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_reflectionToken","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"RewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"shouldDistribute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526ec097ce7bc90715b34b9f1000000000600b55610708600c55670de0b6b3a7640000600d553480156200003657600080fd5b5060405162001eac38038062001eac83398181016040528101906200005c91906200013e565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001ed565b6000815190506200013881620001d3565b92915050565b6000806000606084860312156200015a5762000159620001ce565b5b60006200016a8682870162000127565b93505060206200017d8682870162000127565b9250506040620001908682870162000127565b9150509250925092565b6000620001a782620001ae565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001de816200019a565b8114620001ea57600080fd5b50565b611caf80620001fd6000396000f3fe6080604052600436106100fe5760003560e01c8063997664d711610095578063efca2eed11610064578063efca2eed1461031a578063f0fc6bca14610345578063f1e9f1e51461035c578063ffb2c47914610387578063ffd49c84146103b0576100fe565b8063997664d71461027b578063ce7c2ac2146102a6578063d0e30db0146102e5578063e2d2e219146102ef576100fe565b80632d48e896116100d15780632d48e896146101bf5780633a98ef39146101e85780634fab0ae8146102135780638c21cd521461023e576100fe565b806311ce023d1461010357806314b6ca961461012e57806326987b601461015757806328fd319814610182575b600080fd5b34801561010f57600080fd5b506101186103db565b6040516101259190611891565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906115b1565b6103e1565b005b34801561016357600080fd5b5061016c6106a0565b6040516101799190611891565b60405180910390f35b34801561018e57600080fd5b506101a960048036038101906101a49190611557565b6106a6565b6040516101b69190611891565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e19190611678565b6107c0565b005b3480156101f457600080fd5b506101fd61082a565b60405161020a9190611891565b60405180910390f35b34801561021f57600080fd5b50610228610830565b6040516102359190611891565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190611557565b610836565b60405161027291906117ef565b60405180910390f35b34801561028757600080fd5b506102906108a3565b60405161029d9190611891565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190611557565b6108a9565b6040516102dc939291906118ac565b60405180910390f35b6102ed6108d3565b005b3480156102fb57600080fd5b50610304610d40565b6040516103119190611891565b60405180910390f35b34801561032657600080fd5b5061032f610d46565b60405161033c9190611891565b60405180910390f35b34801561035157600080fd5b5061035a610d4c565b005b34801561036857600080fd5b50610371610d9f565b60405161037e919061180a565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a9919061161e565b610dc5565b005b3480156103bc57600080fd5b506103c5610f01565b6040516103d29190611891565b60405180910390f35b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043957600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561048e5761048d82610f07565b5b6000811180156104e057506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104f3576104ee826111ae565b610555565b60008114801561054557506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b15610554576105538261125d565b5b5b6105be816105b0600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460075461146490919063ffffffff16565b61147a90919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610656600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fb57600090506107bb565b6000610748600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a3576000925050506107bb565b6107b6818361146490919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081857600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610886919061192d565b10801561089c5750600d5461089a836106a6565b115b9050919050565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092b57600080fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161098891906117ab565b60206040518083038186803b1580156109a057600080fd5b505afa1580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d8919061164b565b90506000600267ffffffffffffffff8111156109f7576109f6611bd7565b5b604051908082528060200260200182016040528015610a255781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611584565b81600081518110610adc57610adb611ba8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610b4d57610b4c611ba8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610bea9493929190611825565b6000604051808303818588803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50505050506000610cdb83600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7d91906117ab565b60206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd919061164b565b61146490919063ffffffff16565b9050610cf28160085461147a90919063ffffffff16565b600881905550610d35610d24600754610d1684600b546114c290919063ffffffff16565b6114d890919063ffffffff16565b600a5461147a90919063ffffffff16565b600a81905550505050565b600a5481565b60095481565b610d5533610836565b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90611871565b60405180910390fd5b610d9d33610f07565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060038054905090506000811415610dde5750610efe565b60008060005a90505b8482108015610df557508383105b15610ef95783600e5410610e0c576000600e819055505b610e556003600e5481548110610e2557610e24611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610836565b15610ea457610ea36003600e5481548110610e7357610e72611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f07565b5b610ec9610eba5a8361146490919063ffffffff16565b8361147a90919063ffffffff16565b91505a9050600e6000815480929190610ee190611ad2565b91905055508280610ef190611ad2565b935050610de7565b505050505b50565b600c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610f57576111ab565b6000610f62826106a6565b905060008111156111a957610f828160095461147a90919063ffffffff16565b600981905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610fe59291906117c6565b602060405180830381600087803b158015610fff57600080fd5b505af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103791906115f1565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110d181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461147a90919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611162600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506112719190611a0e565b8154811061128257611281611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110611300576112ff611ba8565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506113a09190611a0e565b815481106113b1576113b0611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061142c5761142b611b79565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600081836114729190611a0e565b905092915050565b60008183611488919061192d565b905092915050565b60006114bb600b546114ad600a54856114c290919063ffffffff16565b6114d890919063ffffffff16565b9050919050565b600081836114d091906119b4565b905092915050565b600081836114e69190611983565b905092915050565b6000813590506114fd81611c34565b92915050565b60008151905061151281611c34565b92915050565b60008151905061152781611c4b565b92915050565b60008135905061153c81611c62565b92915050565b60008151905061155181611c62565b92915050565b60006020828403121561156d5761156c611c06565b5b600061157b848285016114ee565b91505092915050565b60006020828403121561159a57611599611c06565b5b60006115a884828501611503565b91505092915050565b600080604083850312156115c8576115c7611c06565b5b60006115d6858286016114ee565b92505060206115e78582860161152d565b9150509250929050565b60006020828403121561160757611606611c06565b5b600061161584828501611518565b91505092915050565b60006020828403121561163457611633611c06565b5b60006116428482850161152d565b91505092915050565b60006020828403121561166157611660611c06565b5b600061166f84828501611542565b91505092915050565b6000806040838503121561168f5761168e611c06565b5b600061169d8582860161152d565b92505060206116ae8582860161152d565b9150509250929050565b60006116c483836116d0565b60208301905092915050565b6116d981611a42565b82525050565b6116e881611a42565b82525050565b60006116f9826118f3565b611703818561190b565b935061170e836118e3565b8060005b8381101561173f57815161172688826116b8565b9750611731836118fe565b925050600181019050611712565b5085935050505092915050565b61175581611a54565b82525050565b61176481611a8a565b82525050565b61177381611a9c565b82525050565b600061178660178361191c565b915061179182611c0b565b602082019050919050565b6117a581611a80565b82525050565b60006020820190506117c060008301846116df565b92915050565b60006040820190506117db60008301856116df565b6117e8602083018461179c565b9392505050565b6000602082019050611804600083018461174c565b92915050565b600060208201905061181f600083018461175b565b92915050565b600060808201905061183a600083018761176a565b818103602083015261184c81866116ee565b905061185b60408301856116df565b611868606083018461179c565b95945050505050565b6000602082019050818103600083015261188a81611779565b9050919050565b60006020820190506118a6600083018461179c565b92915050565b60006060820190506118c1600083018661179c565b6118ce602083018561179c565b6118db604083018461179c565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061193882611a80565b915061194383611a80565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561197857611977611b1b565b5b828201905092915050565b600061198e82611a80565b915061199983611a80565b9250826119a9576119a8611b4a565b5b828204905092915050565b60006119bf82611a80565b91506119ca83611a80565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a0357611a02611b1b565b5b828202905092915050565b6000611a1982611a80565b9150611a2483611a80565b925082821015611a3757611a36611b1b565b5b828203905092915050565b6000611a4d82611a60565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a9582611aae565b9050919050565b6000611aa782611a80565b9050919050565b6000611ab982611ac0565b9050919050565b6000611acb82611a60565b9050919050565b6000611add82611a80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b1057611b0f611b1b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b7f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000600082015250565b611c3d81611a42565b8114611c4857600080fd5b50565b611c5481611a54565b8114611c5f57600080fd5b50565b611c6b81611a80565b8114611c7657600080fd5b5056fea2646970667358221220ae27217c1cf73bad50e87002fc8adab6da2711a1ff164f519a3d1c1ec9682c5864736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000004d224452801aced8b2f0aebe155379bb5d5943810000000000000000000000009b7f20195a848072feacb4d3a6a75e2beb8f8ca1
Deployed Bytecode
0x6080604052600436106100fe5760003560e01c8063997664d711610095578063efca2eed11610064578063efca2eed1461031a578063f0fc6bca14610345578063f1e9f1e51461035c578063ffb2c47914610387578063ffd49c84146103b0576100fe565b8063997664d71461027b578063ce7c2ac2146102a6578063d0e30db0146102e5578063e2d2e219146102ef576100fe565b80632d48e896116100d15780632d48e896146101bf5780633a98ef39146101e85780634fab0ae8146102135780638c21cd521461023e576100fe565b806311ce023d1461010357806314b6ca961461012e57806326987b601461015757806328fd319814610182575b600080fd5b34801561010f57600080fd5b506101186103db565b6040516101259190611891565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906115b1565b6103e1565b005b34801561016357600080fd5b5061016c6106a0565b6040516101799190611891565b60405180910390f35b34801561018e57600080fd5b506101a960048036038101906101a49190611557565b6106a6565b6040516101b69190611891565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e19190611678565b6107c0565b005b3480156101f457600080fd5b506101fd61082a565b60405161020a9190611891565b60405180910390f35b34801561021f57600080fd5b50610228610830565b6040516102359190611891565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190611557565b610836565b60405161027291906117ef565b60405180910390f35b34801561028757600080fd5b506102906108a3565b60405161029d9190611891565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190611557565b6108a9565b6040516102dc939291906118ac565b60405180910390f35b6102ed6108d3565b005b3480156102fb57600080fd5b50610304610d40565b6040516103119190611891565b60405180910390f35b34801561032657600080fd5b5061032f610d46565b60405161033c9190611891565b60405180910390f35b34801561035157600080fd5b5061035a610d4c565b005b34801561036857600080fd5b50610371610d9f565b60405161037e919061180a565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a9919061161e565b610dc5565b005b3480156103bc57600080fd5b506103c5610f01565b6040516103d29190611891565b60405180910390f35b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043957600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561048e5761048d82610f07565b5b6000811180156104e057506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104f3576104ee826111ae565b610555565b60008114801561054557506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b15610554576105538261125d565b5b5b6105be816105b0600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460075461146490919063ffffffff16565b61147a90919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610656600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fb57600090506107bb565b6000610748600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a3576000925050506107bb565b6107b6818361146490919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081857600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610886919061192d565b10801561089c5750600d5461089a836106a6565b115b9050919050565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092b57600080fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161098891906117ab565b60206040518083038186803b1580156109a057600080fd5b505afa1580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d8919061164b565b90506000600267ffffffffffffffff8111156109f7576109f6611bd7565b5b604051908082528060200260200182016040528015610a255781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611584565b81600081518110610adc57610adb611ba8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610b4d57610b4c611ba8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610bea9493929190611825565b6000604051808303818588803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50505050506000610cdb83600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7d91906117ab565b60206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd919061164b565b61146490919063ffffffff16565b9050610cf28160085461147a90919063ffffffff16565b600881905550610d35610d24600754610d1684600b546114c290919063ffffffff16565b6114d890919063ffffffff16565b600a5461147a90919063ffffffff16565b600a81905550505050565b600a5481565b60095481565b610d5533610836565b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90611871565b60405180910390fd5b610d9d33610f07565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060038054905090506000811415610dde5750610efe565b60008060005a90505b8482108015610df557508383105b15610ef95783600e5410610e0c576000600e819055505b610e556003600e5481548110610e2557610e24611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610836565b15610ea457610ea36003600e5481548110610e7357610e72611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f07565b5b610ec9610eba5a8361146490919063ffffffff16565b8361147a90919063ffffffff16565b91505a9050600e6000815480929190610ee190611ad2565b91905055508280610ef190611ad2565b935050610de7565b505050505b50565b600c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610f57576111ab565b6000610f62826106a6565b905060008111156111a957610f828160095461147a90919063ffffffff16565b600981905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610fe59291906117c6565b602060405180830381600087803b158015610fff57600080fd5b505af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103791906115f1565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110d181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461147a90919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611162600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611490565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506112719190611a0e565b8154811061128257611281611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110611300576112ff611ba8565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506113a09190611a0e565b815481106113b1576113b0611ba8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061142c5761142b611b79565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600081836114729190611a0e565b905092915050565b60008183611488919061192d565b905092915050565b60006114bb600b546114ad600a54856114c290919063ffffffff16565b6114d890919063ffffffff16565b9050919050565b600081836114d091906119b4565b905092915050565b600081836114e69190611983565b905092915050565b6000813590506114fd81611c34565b92915050565b60008151905061151281611c34565b92915050565b60008151905061152781611c4b565b92915050565b60008135905061153c81611c62565b92915050565b60008151905061155181611c62565b92915050565b60006020828403121561156d5761156c611c06565b5b600061157b848285016114ee565b91505092915050565b60006020828403121561159a57611599611c06565b5b60006115a884828501611503565b91505092915050565b600080604083850312156115c8576115c7611c06565b5b60006115d6858286016114ee565b92505060206115e78582860161152d565b9150509250929050565b60006020828403121561160757611606611c06565b5b600061161584828501611518565b91505092915050565b60006020828403121561163457611633611c06565b5b60006116428482850161152d565b91505092915050565b60006020828403121561166157611660611c06565b5b600061166f84828501611542565b91505092915050565b6000806040838503121561168f5761168e611c06565b5b600061169d8582860161152d565b92505060206116ae8582860161152d565b9150509250929050565b60006116c483836116d0565b60208301905092915050565b6116d981611a42565b82525050565b6116e881611a42565b82525050565b60006116f9826118f3565b611703818561190b565b935061170e836118e3565b8060005b8381101561173f57815161172688826116b8565b9750611731836118fe565b925050600181019050611712565b5085935050505092915050565b61175581611a54565b82525050565b61176481611a8a565b82525050565b61177381611a9c565b82525050565b600061178660178361191c565b915061179182611c0b565b602082019050919050565b6117a581611a80565b82525050565b60006020820190506117c060008301846116df565b92915050565b60006040820190506117db60008301856116df565b6117e8602083018461179c565b9392505050565b6000602082019050611804600083018461174c565b92915050565b600060208201905061181f600083018461175b565b92915050565b600060808201905061183a600083018761176a565b818103602083015261184c81866116ee565b905061185b60408301856116df565b611868606083018461179c565b95945050505050565b6000602082019050818103600083015261188a81611779565b9050919050565b60006020820190506118a6600083018461179c565b92915050565b60006060820190506118c1600083018661179c565b6118ce602083018561179c565b6118db604083018461179c565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061193882611a80565b915061194383611a80565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561197857611977611b1b565b5b828201905092915050565b600061198e82611a80565b915061199983611a80565b9250826119a9576119a8611b4a565b5b828204905092915050565b60006119bf82611a80565b91506119ca83611a80565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a0357611a02611b1b565b5b828202905092915050565b6000611a1982611a80565b9150611a2483611a80565b925082821015611a3757611a36611b1b565b5b828203905092915050565b6000611a4d82611a60565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a9582611aae565b9050919050565b6000611aa782611a80565b9050919050565b6000611ab982611ac0565b9050919050565b6000611acb82611a60565b9050919050565b6000611add82611a80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b1057611b0f611b1b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b7f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000600082015250565b611c3d81611a42565b8114611c4857600080fd5b50565b611c5481611a54565b8114611c5f57600080fd5b50565b611c6b81611a80565b8114611c7657600080fd5b5056fea2646970667358221220ae27217c1cf73bad50e87002fc8adab6da2711a1ff164f519a3d1c1ec9682c5864736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000004d224452801aced8b2f0aebe155379bb5d5943810000000000000000000000009b7f20195a848072feacb4d3a6a75e2beb8f8ca1
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _reflectionToken (address): 0x4d224452801ACEd8B2F0aebE155379bb5D594381
Arg [2] : token (address): 0x9b7F20195A848072feaCB4D3A6A75e2BEb8F8CA1
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000004d224452801aced8b2f0aebe155379bb5d594381
Arg [2] : 0000000000000000000000009b7f20195a848072feacb4d3a6a75e2beb8f8ca1
Deployed Bytecode Sourcemap
15761:5713:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16395:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17232:646;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16561:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20343:479;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17023:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16249:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16505:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19332:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16282:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16200:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;17886:709;;;:::i;:::-;;16356:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16318:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20177:158;;;;;;;;;;;;;:::i;:::-;;16029:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18607:713;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16461:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16395:57;;;;:::o;17232:646::-;16789:6;;;;;;;;;;16775:20;;:10;:20;;;16767:29;;;;;;17360:1:::1;17331:6;:19;17338:11;17331:19;;;;;;;;;;;;;;;:26;;;:30;17328:92;;;17377:31;17396:11;17377:18;:31::i;:::-;17328:92;17444:1;17435:6;:10;:45;;;;;17479:1;17449:6;:19;17456:11;17449:19;;;;;;;;;;;;;;;:26;;;:31;17435:45;17432:214;;;17496:27;17511:11;17496:14;:27::i;:::-;17432:214;;;17553:1;17543:6;:11;:45;;;;;17587:1;17558:6;:19;17565:11;17558:19;;;;;;;;;;;;;;;:26;;;:30;17543:45;17540:106;;;17604:30;17622:11;17604:17;:30::i;:::-;17540:106;17432:214;17672:55;17720:6;17672:43;17688:6;:19;17695:11;17688:19;;;;;;;;;;;;;;;:26;;;17672:11;;:15;;:43;;;;:::i;:::-;:47;;:55;;;;:::i;:::-;17658:11;:69;;;;17767:6;17738;:19;17745:11;17738:19;;;;;;;;;;;;;;;:26;;:35;;;;17820:50;17843:6;:19;17850:11;17843:19;;;;;;;;;;;;;;;:26;;;17820:22;:50::i;:::-;17784:6;:19;17791:11;17784:19;;;;;;;;;;;;;;;:33;;:86;;;;17232:646:::0;;:::o;16561:27::-;;;;:::o;20343:479::-;20412:7;20465:1;20435:6;:19;20442:11;20435:19;;;;;;;;;;;;;;;:26;;;:31;20432:48;;;20476:1;20469:8;;;;20432:48;20492:33;20528:50;20551:6;:19;20558:11;20551:19;;;;;;;;;;;;;;;:26;;;20528:22;:50::i;:::-;20492:86;;20589:32;20624:6;:19;20631:11;20624:19;;;;;;;;;;;;;;;:33;;;20589:68;;20702:24;20673:25;:53;20670:70;;20736:1;20729:8;;;;;;20670:70;20759:55;20789:24;20759:25;:29;;:55;;;;:::i;:::-;20752:62;;;;20343:479;;;;:::o;17023:201::-;16789:6;;;;;;;;;;16775:20;;:10;:20;;;16767:29;;;;;;17157:12:::1;17145:9;:24;;;;17198:18;17180:15;:36;;;;17023:201:::0;;:::o;16249:26::-;;;;:::o;16505:47::-;;;;:::o;19332:229::-;19400:4;19469:15;19457:9;;19424:17;:30;19442:11;19424:30;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;:60;:129;;;;;19538:15;;19505:30;19523:11;19505:17;:30::i;:::-;:48;19424:129;19417:136;;19332:229;;;:::o;16282:29::-;;;;:::o;16200:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17886:709::-;16789:6;;;;;;;;;;16775:20;;:10;:20;;;16767:29;;;;;;17954:21:::1;17978:11;;;;;;;;;;;:21;;;18008:4;17978:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17954:60;;18027:21;18065:1;18051:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18027:40;;18088:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18078:4;18083:1;18078:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18130:11;;;;;;;;;;;18112:4;18117:1;18112:7;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;::::0;::::1;18155:6;;;;;;;;;;;:57;;;18220:9;18245:1;18261:4;18288;18308:15;18155:179;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;18347:14;18364:55;18405:13;18364:11;;;;;;;;;;;:21;;;18394:4;18364:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;:55;;;;:::i;:::-;18347:72;;18447:26;18466:6;18447:14;;:18;;:26;;;;:::i;:::-;18430:14;:43;;;;18504:83;18526:60;18574:11;;18526:43;18562:6;18526:31;;:35;;:43;;;;:::i;:::-;:47;;:60;;;;:::i;:::-;18504:17;;:21;;:83;;;;:::i;:::-;18484:17;:103;;;;17941:654;;;17886:709::o:0;16356:32::-;;;;:::o;16318:31::-;;;;:::o;20177:158::-;20230:28;20247:10;20230:16;:28::i;:::-;20222:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20297:30;20316:10;20297:18;:30::i;:::-;20177:158::o;16029:25::-;;;;;;;;;;;;;:::o;18607:713::-;18666:24;18693:12;:19;;;;18666:46;;18748:1;18728:16;:21;18725:37;;;18753:7;;;18725:37;18774:18;18807:15;18837;18855:9;18837:27;;18877:436;18893:3;18883:7;:13;:46;;;;;18913:16;18900:10;:29;18883:46;18877:436;;;18967:16;18951:12;;:32;18948:57;;19001:1;18986:12;:16;;;;18948:57;19024:44;19041:12;19054;;19041:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19024:16;:44::i;:::-;19021:129;;;19088:46;19107:12;19120;;19107:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19088:18;:46::i;:::-;19021:129;19176:35;19188:22;19200:9;19188:7;:11;;:22;;;;:::i;:::-;19176:7;:11;;:35;;;;:::i;:::-;19166:45;;19236:9;19226:19;;19260:12;;:14;;;;;;;;;:::i;:::-;;;;;;19289:12;;;;;:::i;:::-;;;;18877:436;;;18655:665;;;;18607:713;;:::o;16461:37::-;;;;:::o;19569:596::-;19671:1;19641:6;:19;19648:11;19641:19;;;;;;;;;;;;;;;:26;;;:31;19638:46;;;19675:7;;19638:46;19696:14;19713:30;19731:11;19713:17;:30::i;:::-;19696:47;;19766:1;19757:6;:10;19754:404;;;19802:28;19823:6;19802:16;;:20;;:28;;;;:::i;:::-;19783:16;:47;;;;19845:11;;;;;;;;;;;:20;;;19866:11;19879:6;19845:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19934:15;19901:17;:30;19919:11;19901:30;;;;;;;;;;;;;;;:48;;;;20000:45;20038:6;20000;:19;20007:11;20000:19;;;;;;;;;;;;;;;:33;;;:37;;:45;;;;:::i;:::-;19964:6;:19;19971:11;19964:19;;;;;;;;;;;;;;;:33;;:81;;;;20096:50;20119:6;:19;20126:11;20119:19;;;;;;;;;;;;;;;:26;;;20096:22;:50::i;:::-;20060:6;:19;20067:11;20060:19;;;;;;;;;;;;;;;:33;;:86;;;;19754:404;19627:538;19569:596;;:::o;21008:167::-;21107:12;:19;;;;21073:18;:31;21092:11;21073:31;;;;;;;;;;;;;;;:53;;;;21137:12;21155:11;21137:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21008:167;:::o;21183:288::-;21299:12;21332:1;21312:12;:19;;;;:21;;;;:::i;:::-;21299:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21251:12;21264:18;:31;21283:11;21264:31;;;;;;;;;;;;;;;;21251:45;;;;;;;;:::i;:::-;;;;;;;;;;:83;;;;;;;;;;;;;;;;;;21403:18;:31;21422:11;21403:31;;;;;;;;;;;;;;;;21345:18;:55;21364:12;21397:1;21377:12;:19;;;;:21;;;;:::i;:::-;21364:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21345:55;;;;;;;;;;;;;;;:89;;;;21445:12;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;21183:288;:::o;7796:98::-;7854:7;7885:1;7881;:5;;;;:::i;:::-;7874:12;;7796:98;;;;:::o;7415:::-;7473:7;7504:1;7500;:5;;;;:::i;:::-;7493:12;;7415:98;;;;:::o;20830:170::-;20900:7;20927:65;20960:31;;20927:28;20937:17;;20927:5;:9;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;20920:72;;20830:170;;;:::o;8153:98::-;8211:7;8242:1;8238;:5;;;;:::i;:::-;8231:12;;8153:98;;;;:::o;8552:::-;8610:7;8641:1;8637;:5;;;;:::i;:::-;8630:12;;8552:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;301:137;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;444:139;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;589:143;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:119;;;852:79;;:::i;:::-;814:119;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;738:329;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:119;;;1198:79;;:::i;:::-;1160:119;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1073:351;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:119;;;1561:79;;:::i;:::-;1523:119;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1430:474;;;;;:::o;1910:345::-;1977:6;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:61;2230:7;2221:6;2210:9;2206:22;2177:61;:::i;:::-;2167:71;;2123:125;1910:345;;;;:::o;2261:329::-;2320:6;2369:2;2357:9;2348:7;2344:23;2340:32;2337:119;;;2375:79;;:::i;:::-;2337:119;2495:1;2520:53;2565:7;2556:6;2545:9;2541:22;2520:53;:::i;:::-;2510:63;;2466:117;2261:329;;;;:::o;2596:351::-;2666:6;2715:2;2703:9;2694:7;2690:23;2686:32;2683:119;;;2721:79;;:::i;:::-;2683:119;2841:1;2866:64;2922:7;2913:6;2902:9;2898:22;2866:64;:::i;:::-;2856:74;;2812:128;2596:351;;;;:::o;2953:474::-;3021:6;3029;3078:2;3066:9;3057:7;3053:23;3049:32;3046:119;;;3084:79;;:::i;:::-;3046:119;3204:1;3229:53;3274:7;3265:6;3254:9;3250:22;3229:53;:::i;:::-;3219:63;;3175:117;3331:2;3357:53;3402:7;3393:6;3382:9;3378:22;3357:53;:::i;:::-;3347:63;;3302:118;2953:474;;;;;:::o;3433:179::-;3502:10;3523:46;3565:3;3557:6;3523:46;:::i;:::-;3601:4;3596:3;3592:14;3578:28;;3433:179;;;;:::o;3618:108::-;3695:24;3713:5;3695:24;:::i;:::-;3690:3;3683:37;3618:108;;:::o;3732:118::-;3819:24;3837:5;3819:24;:::i;:::-;3814:3;3807:37;3732:118;;:::o;3886:732::-;4005:3;4034:54;4082:5;4034:54;:::i;:::-;4104:86;4183:6;4178:3;4104:86;:::i;:::-;4097:93;;4214:56;4264:5;4214:56;:::i;:::-;4293:7;4324:1;4309:284;4334:6;4331:1;4328:13;4309:284;;;4410:6;4404:13;4437:63;4496:3;4481:13;4437:63;:::i;:::-;4430:70;;4523:60;4576:6;4523:60;:::i;:::-;4513:70;;4369:224;4356:1;4353;4349:9;4344:14;;4309:284;;;4313:14;4609:3;4602:10;;4010:608;;;3886:732;;;;:::o;4624:109::-;4705:21;4720:5;4705:21;:::i;:::-;4700:3;4693:34;4624:109;;:::o;4739:157::-;4839:50;4883:5;4839:50;:::i;:::-;4834:3;4827:63;4739:157;;:::o;4902:147::-;4997:45;5036:5;4997:45;:::i;:::-;4992:3;4985:58;4902:147;;:::o;5055:366::-;5197:3;5218:67;5282:2;5277:3;5218:67;:::i;:::-;5211:74;;5294:93;5383:3;5294:93;:::i;:::-;5412:2;5407:3;5403:12;5396:19;;5055:366;;;:::o;5427:118::-;5514:24;5532:5;5514:24;:::i;:::-;5509:3;5502:37;5427:118;;:::o;5551:222::-;5644:4;5682:2;5671:9;5667:18;5659:26;;5695:71;5763:1;5752:9;5748:17;5739:6;5695:71;:::i;:::-;5551:222;;;;:::o;5779:332::-;5900:4;5938:2;5927:9;5923:18;5915:26;;5951:71;6019:1;6008:9;6004:17;5995:6;5951:71;:::i;:::-;6032:72;6100:2;6089:9;6085:18;6076:6;6032:72;:::i;:::-;5779:332;;;;;:::o;6117:210::-;6204:4;6242:2;6231:9;6227:18;6219:26;;6255:65;6317:1;6306:9;6302:17;6293:6;6255:65;:::i;:::-;6117:210;;;;:::o;6333:248::-;6439:4;6477:2;6466:9;6462:18;6454:26;;6490:84;6571:1;6560:9;6556:17;6547:6;6490:84;:::i;:::-;6333:248;;;;:::o;6587:720::-;6822:4;6860:3;6849:9;6845:19;6837:27;;6874:79;6950:1;6939:9;6935:17;6926:6;6874:79;:::i;:::-;7000:9;6994:4;6990:20;6985:2;6974:9;6970:18;6963:48;7028:108;7131:4;7122:6;7028:108;:::i;:::-;7020:116;;7146:72;7214:2;7203:9;7199:18;7190:6;7146:72;:::i;:::-;7228;7296:2;7285:9;7281:18;7272:6;7228:72;:::i;:::-;6587:720;;;;;;;:::o;7313:419::-;7479:4;7517:2;7506:9;7502:18;7494:26;;7566:9;7560:4;7556:20;7552:1;7541:9;7537:17;7530:47;7594:131;7720:4;7594:131;:::i;:::-;7586:139;;7313:419;;;:::o;7738:222::-;7831:4;7869:2;7858:9;7854:18;7846:26;;7882:71;7950:1;7939:9;7935:17;7926:6;7882:71;:::i;:::-;7738:222;;;;:::o;7966:442::-;8115:4;8153:2;8142:9;8138:18;8130:26;;8166:71;8234:1;8223:9;8219:17;8210:6;8166:71;:::i;:::-;8247:72;8315:2;8304:9;8300:18;8291:6;8247:72;:::i;:::-;8329;8397:2;8386:9;8382:18;8373:6;8329:72;:::i;:::-;7966:442;;;;;;:::o;8495:132::-;8562:4;8585:3;8577:11;;8615:4;8610:3;8606:14;8598:22;;8495:132;;;:::o;8633:114::-;8700:6;8734:5;8728:12;8718:22;;8633:114;;;:::o;8753:113::-;8823:4;8855;8850:3;8846:14;8838:22;;8753:113;;;:::o;8872:184::-;8971:11;9005:6;9000:3;8993:19;9045:4;9040:3;9036:14;9021:29;;8872:184;;;;:::o;9062:169::-;9146:11;9180:6;9175:3;9168:19;9220:4;9215:3;9211:14;9196:29;;9062:169;;;;:::o;9237:305::-;9277:3;9296:20;9314:1;9296:20;:::i;:::-;9291:25;;9330:20;9348:1;9330:20;:::i;:::-;9325:25;;9484:1;9416:66;9412:74;9409:1;9406:81;9403:107;;;9490:18;;:::i;:::-;9403:107;9534:1;9531;9527:9;9520:16;;9237:305;;;;:::o;9548:185::-;9588:1;9605:20;9623:1;9605:20;:::i;:::-;9600:25;;9639:20;9657:1;9639:20;:::i;:::-;9634:25;;9678:1;9668:35;;9683:18;;:::i;:::-;9668:35;9725:1;9722;9718:9;9713:14;;9548:185;;;;:::o;9739:348::-;9779:7;9802:20;9820:1;9802:20;:::i;:::-;9797:25;;9836:20;9854:1;9836:20;:::i;:::-;9831:25;;10024:1;9956:66;9952:74;9949:1;9946:81;9941:1;9934:9;9927:17;9923:105;9920:131;;;10031:18;;:::i;:::-;9920:131;10079:1;10076;10072:9;10061:20;;9739:348;;;;:::o;10093:191::-;10133:4;10153:20;10171:1;10153:20;:::i;:::-;10148:25;;10187:20;10205:1;10187:20;:::i;:::-;10182:25;;10226:1;10223;10220:8;10217:34;;;10231:18;;:::i;:::-;10217:34;10276:1;10273;10269:9;10261:17;;10093:191;;;;:::o;10290:96::-;10327:7;10356:24;10374:5;10356:24;:::i;:::-;10345:35;;10290:96;;;:::o;10392:90::-;10426:7;10469:5;10462:13;10455:21;10444:32;;10392:90;;;:::o;10488:126::-;10525:7;10565:42;10558:5;10554:54;10543:65;;10488:126;;;:::o;10620:77::-;10657:7;10686:5;10675:16;;10620:77;;;:::o;10703:139::-;10766:9;10799:37;10830:5;10799:37;:::i;:::-;10786:50;;10703:139;;;:::o;10848:121::-;10906:9;10939:24;10957:5;10939:24;:::i;:::-;10926:37;;10848:121;;;:::o;10975:126::-;11025:9;11058:37;11089:5;11058:37;:::i;:::-;11045:50;;10975:126;;;:::o;11107:113::-;11157:9;11190:24;11208:5;11190:24;:::i;:::-;11177:37;;11107:113;;;:::o;11226:233::-;11265:3;11288:24;11306:5;11288:24;:::i;:::-;11279:33;;11334:66;11327:5;11324:77;11321:103;;;11404:18;;:::i;:::-;11321:103;11451:1;11444:5;11440:13;11433:20;;11226:233;;;:::o;11465:180::-;11513:77;11510:1;11503:88;11610:4;11607:1;11600:15;11634:4;11631:1;11624:15;11651:180;11699:77;11696:1;11689:88;11796:4;11793:1;11786:15;11820:4;11817:1;11810:15;11837:180;11885:77;11882:1;11875:88;11982:4;11979:1;11972:15;12006:4;12003:1;11996:15;12023:180;12071:77;12068:1;12061:88;12168:4;12165:1;12158:15;12192:4;12189:1;12182:15;12209:180;12257:77;12254:1;12247:88;12354:4;12351:1;12344:15;12378:4;12375:1;12368:15;12518:117;12627:1;12624;12617:12;12641:173;12781:25;12777:1;12769:6;12765:14;12758:49;12641:173;:::o;12820:122::-;12893:24;12911:5;12893:24;:::i;:::-;12886:5;12883:35;12873:63;;12932:1;12929;12922:12;12873:63;12820:122;:::o;12948:116::-;13018:21;13033:5;13018:21;:::i;:::-;13011:5;13008:32;12998:60;;13054:1;13051;13044:12;12998:60;12948:116;:::o;13070:122::-;13143:24;13161:5;13143:24;:::i;:::-;13136:5;13133:35;13123:63;;13182:1;13179;13172:12;13123:63;13070:122;:::o
Swarm Source
ipfs://ae27217c1cf73bad50e87002fc8adab6da2711a1ff164f519a3d1c1ec9682c58
Loading...
Loading
Loading...
Loading
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.