Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Pool | 9471401 | 1956 days ago | IN | 0 ETH | 0.00008394 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
IEarnAPR
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-01-28 */ // File: @openzeppelin\contracts\token\ERC20\IERC20.sol pragma solidity ^0.5.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function name() external view returns (string memory); function symbol() external view returns (string memory); function transfer(address recipient, uint256 amount) external returns (bool); } // File: @openzeppelin\contracts\GSN\Context.sol pragma solidity ^0.5.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 GSN 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin\contracts\ownership\Ownable.sol pragma solidity ^0.5.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. * * 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. */ 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 () internal { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: @openzeppelin\contracts\math\SafeMath.sol pragma solidity ^0.5.0; /** * @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. * * _Available since v2.4.0._ */ 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. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 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. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: @openzeppelin\contracts\utils\Address.sol pragma solidity ^0.5.5; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * IMPORTANT: It is unsafe to assume that an address for which this * function returns false is an externally-owned account (EOA) and not a * contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } /** * @dev Converts an `address` into `address payable`. Note that this is * simply a type cast: the actual underlying value is not changed. * * _Available since v2.4.0._ */ function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. * * _Available since v2.4.0._ */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } interface IUniswapROI { function calcUniswapROI(address token) external view returns (uint256, uint256); } contract IUniswapAPR { function getBlocksPerYear() external view returns (uint256); function calcUniswapAPRFromROI(uint256 roi, uint256 createdAt) external view returns (uint256); function calcUniswapAPR(address token, uint256 createdAt) external view returns (uint256); } interface IAPROracle { function getCompoundAPR(address token) external view returns (uint256); function getFulcrumAPR(address token) external view returns(uint256); function getDyDxAPR(uint256 marketId) external view returns(uint256); function getAaveAPR(address token) external view returns (uint256); } interface IUniswapFactory { function getExchange(address token) external view returns (address exchange); } contract IEarnAPR is Ownable { using SafeMath for uint; using Address for address; mapping(address => uint256) public pools; mapping(address => address) public compound; mapping(address => address) public fulcrum; mapping(address => address) public aave; mapping(address => address) public aaveUni; mapping(address => uint256) public dydx; address public UNI; address public UNIROI; address public UNIAPR; address public APR; constructor() public { UNI = address(0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95); UNIROI = address(0xD04cA0Ae1cd8085438FDd8c22A76246F315c2687); UNIAPR = address(0x4c70D89A4681b2151F56Dc2c3FD751aBb9CE3D95); APR = address(0x97FF4A1b787ADe6b94cca95b61F79417c673331D); addPool(0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643, 9000629); addPool(0xF5DCe57282A584D2746FaF1593d3121Fcac444dC, 7723867); addPool(0x6B175474E89094C44Da98b954EedeAC495271d0F, 8939330); addPool(0x0000000000085d4780B73119b644AE5ecd22b376, 7794100); addPool(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 6783192); addPool(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51, 8623684); addPool(0x0D8775F648430679A709E98d2b0Cb6250d2887EF, 6660894); addPool(0x514910771AF9Ca656af840dff83E8264EcF986CA, 6627987); addPool(0xdd974D5C2e2928deA5F71b9825b8b646686BD200, 6627984); addPool(0x1985365e9f78359a9B6AD760e32412f4a445E862, 6627994); addPool(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2, 6627956); addPool(0xE41d2489571d322189246DaFA5ebDe1F4699F498, 6627972); addPool(0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F, 8314762); addPool(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, 7004537); addCToken(0x6B175474E89094C44Da98b954EedeAC495271d0F, 0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643); // cDAI addCToken(0x0D8775F648430679A709E98d2b0Cb6250d2887EF, 0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E); // cBAT addCToken(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5); // cETH addCToken(0x1985365e9f78359a9B6AD760e32412f4a445E862, 0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1); // cREP addCToken(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0x39AA39c021dfbaE8faC545936693aC917d5E7563); // cUSDC addCToken(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, 0xC11b1268C1A384e55C48c2391d8d480264A3A7F4); // cWBTC addCToken(0xE41d2489571d322189246DaFA5ebDe1F4699F498, 0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407); // cZRX addAToken(0x6B175474E89094C44Da98b954EedeAC495271d0F, 0x6B175474E89094C44Da98b954EedeAC495271d0F); // aDAI addAToken(0x0000000000085d4780B73119b644AE5ecd22b376, 0x0000000000085d4780B73119b644AE5ecd22b376); // aTUSD addAToken(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); // aUSDC addAToken(0xdAC17F958D2ee523a2206206994597C13D831ec7, 0xdAC17F958D2ee523a2206206994597C13D831ec7); // aUSDT addAToken(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51, 0x57Ab1ec28D129707052df4dF418D58a2D46d5f51); // aSUSD addAToken(0x80fB784B7eD66730e8b1DBd9820aFD29931aab03, 0x80fB784B7eD66730e8b1DBd9820aFD29931aab03); // aLEND addAToken(0x0D8775F648430679A709E98d2b0Cb6250d2887EF, 0x0D8775F648430679A709E98d2b0Cb6250d2887EF); // aBAT addAToken(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); // aETH addAToken(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x514910771AF9Ca656af840dff83E8264EcF986CA); // aLINK addAToken(0xdd974D5C2e2928deA5F71b9825b8b646686BD200, 0xdd974D5C2e2928deA5F71b9825b8b646686BD200); // aKNC addAToken(0x1985365e9f78359a9B6AD760e32412f4a445E862, 0x1985365e9f78359a9B6AD760e32412f4a445E862); // aREP addAToken(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2, 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2); // aMKR addAToken(0x0F5D2fB29fb7d3CFeE444a200298f468908cC942, 0x0F5D2fB29fb7d3CFeE444a200298f468908cC942); // aMANA addAToken(0xE41d2489571d322189246DaFA5ebDe1F4699F498, 0xE41d2489571d322189246DaFA5ebDe1F4699F498); // aZRX addAToken(0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F, 0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F); // aSNX addAToken(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599); // aWBTC addAUniToken(0x6B175474E89094C44Da98b954EedeAC495271d0F, 0xfC1E690f61EFd961294b3e1Ce3313fBD8aa4f85d); // aDAI addAUniToken(0x0000000000085d4780B73119b644AE5ecd22b376, 0x4DA9b813057D04BAef4e5800E36083717b4a0341); // aTUSD addAUniToken(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0x9bA00D6856a4eDF4665BcA2C2309936572473B7E); // aUSDC addAUniToken(0xdAC17F958D2ee523a2206206994597C13D831ec7, 0x71fc860F7D3A592A4a98740e39dB31d25db65ae8); // aUSDT addAUniToken(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51, 0x625aE63000f46200499120B906716420bd059240); // aSUSD addAUniToken(0x80fB784B7eD66730e8b1DBd9820aFD29931aab03, 0x7D2D3688Df45Ce7C552E19c27e007673da9204B8); // aLEND addAUniToken(0x0D8775F648430679A709E98d2b0Cb6250d2887EF, 0xE1BA0FB44CCb0D11b80F92f4f8Ed94CA3fF51D00); // aBAT addAUniToken(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 0x3a3A65aAb0dd2A17E3F1947bA16138cd37d08c04); // aETH addAUniToken(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0xA64BD6C70Cb9051F6A9ba1F163Fdc07E0DfB5F84); // aLINK addAUniToken(0xdd974D5C2e2928deA5F71b9825b8b646686BD200, 0x9D91BE44C06d373a8a226E1f3b146956083803eB); // aKNC addAUniToken(0x1985365e9f78359a9B6AD760e32412f4a445E862, 0x71010A9D003445aC60C4e6A7017c1E89A477B438); // aREP addAUniToken(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2, 0x7deB5e830be29F91E298ba5FF1356BB7f8146998); // aMKR addAUniToken(0x0F5D2fB29fb7d3CFeE444a200298f468908cC942, 0x6FCE4A401B6B80ACe52baAefE4421Bd188e76F6f); // aMANA addAUniToken(0xE41d2489571d322189246DaFA5ebDe1F4699F498, 0x6Fb0855c404E09c47C3fBCA25f08d4E41f9F062f); // aZRX addAUniToken(0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F, 0x328C4c80BC7aCa0834Db37e6600A6c49E12Da4DE); // aSNX addAUniToken(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, 0xFC4B8ED459e00e5400be803A9BB3954234FD50e3); // aWBTC addIToken(0xE41d2489571d322189246DaFA5ebDe1F4699F498, 0xA7Eb2bc82df18013ecC2A6C533fc29446442EDEe); // iZRX addIToken(0x1985365e9f78359a9B6AD760e32412f4a445E862, 0xBd56E9477Fc6997609Cf45F84795eFbDAC642Ff1); // iREP addIToken(0xdd974D5C2e2928deA5F71b9825b8b646686BD200, 0x1cC9567EA2eB740824a45F8026cCF8e46973234D); // iKNC addIToken(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, 0xBA9262578EFef8b3aFf7F60Cd629d6CC8859C8b5); // iWBTC addIToken(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xF013406A0B1d544238083DF0B93ad0d2cBE0f65f); // iUSDC addIToken(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 0x77f973FCaF871459aa58cd81881Ce453759281bC); // iETH addIToken(0x6B175474E89094C44Da98b954EedeAC495271d0F, 0x493C57C4763932315A328269E1ADaD09653B9081); // iDAI addIToken(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x1D496da96caf6b518b133736beca85D5C4F9cBc5); // iLINK addIToken(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51, 0x49f4592E641820e928F9919Ef4aBd92a719B4b49); // iSUSD addDToken(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 0); // dETH addDToken(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 2); // dUSDC addDToken(0x6B175474E89094C44Da98b954EedeAC495271d0F, 3); // dDAI } function getSNX() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F); } function getUSDT() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xdAC17F958D2ee523a2206206994597C13D831ec7); } function getBAT() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x0D8775F648430679A709E98d2b0Cb6250d2887EF); } function getMKR() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2); } function getZRX() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xE41d2489571d322189246DaFA5ebDe1F4699F498); } function getREP() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x1985365e9f78359a9B6AD760e32412f4a445E862); } function getKNC() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xdd974D5C2e2928deA5F71b9825b8b646686BD200); } function getWBTC() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599); } function getLINK() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x514910771AF9Ca656af840dff83E8264EcF986CA); } function getSUSD() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51); } function getDAI() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0x6B175474E89094C44Da98b954EedeAC495271d0F); } function getETH() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); } function getUSDC() public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { return getAPROptions(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); } function getAPROptions(address _token) public view returns ( uint256 uniapr, uint256 capr, uint256 unicapr, uint256 iapr, uint256 uniiapr, uint256 aapr, uint256 uniaapr, uint256 dapr ) { uint256 created = pools[_token]; if (created > 0) { uniapr = IUniswapAPR(UNIAPR).calcUniswapAPR(_token, created); } address cToken = compound[_token]; address iToken = fulcrum[_token]; address aToken = aave[_token]; uint256 dToken = dydx[_token]; if (cToken != address(0)) { capr = IAPROracle(APR).getCompoundAPR(cToken); created = pools[cToken]; if (created > 0) { unicapr = IUniswapAPR(UNIAPR).calcUniswapAPR(cToken, created); } } if (iToken != address(0)) { iapr = IAPROracle(APR).getFulcrumAPR(iToken); created = pools[iToken]; if (created > 0) { uniiapr = IUniswapAPR(UNIAPR).calcUniswapAPR(iToken, created); } } if (aToken != address(0)) { aapr = IAPROracle(APR).getAaveAPR(aToken); aToken = aaveUni[_token]; created = pools[aToken]; if (created > 0) { uniaapr = IUniswapAPR(UNIAPR).calcUniswapAPR(aToken, created); } } if (dToken > 0 || _token == address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)) { dapr = IAPROracle(APR).getDyDxAPR(dToken); } return ( uniapr, capr, unicapr, iapr, uniiapr, aapr, uniaapr, dapr ); } function viewPool(address _token) public view returns ( address token, address unipool, uint256 created, string memory name, string memory symbol ) { token = _token; unipool = IUniswapFactory(UNI).getExchange(_token); created = pools[_token]; name = IERC20(_token).name(); symbol = IERC20(_token).symbol(); return (token, unipool, created, name, symbol); } function addPool( address token, uint256 created ) public onlyOwner { pools[token] = created; } function addCToken( address token, address cToken ) public onlyOwner { compound[token] = cToken; } function addIToken( address token, address iToken ) public onlyOwner { fulcrum[token] = iToken; } function addAToken( address token, address aToken ) public onlyOwner { aave[token] = aToken; } function addAUniToken( address token, address aToken ) public onlyOwner { aaveUni[token] = aToken; } function addDToken( address token, uint256 dToken ) public onlyOwner { dydx[token] = dToken; } function set_new_UNIROI(address _new_UNIROI) public onlyOwner { UNIROI = _new_UNIROI; } function set_new_UNI(address _new_UNI) public onlyOwner { UNI = _new_UNI; } function set_new_UNIAPR(address _new_UNIAPR) public onlyOwner { UNIAPR = _new_UNIAPR; } function set_new_APR(address _new_APR) public onlyOwner { APR = _new_APR; } // incase of half-way error function inCaseTokenGetsStuck(IERC20 _TokenAddress) onlyOwner public { uint qty = _TokenAddress.balanceOf(address(this)); _TokenAddress.transfer(msg.sender, qty); } // incase of half-way error function inCaseETHGetsStuck() onlyOwner public{ (bool result, ) = msg.sender.call.value(address(this).balance)(""); require(result, "transfer of ETH failed"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"APR","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNIAPR","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNIROI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"aave","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"aaveUni","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"aToken","type":"address"}],"name":"addAToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"aToken","type":"address"}],"name":"addAUniToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"cToken","type":"address"}],"name":"addCToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"dToken","type":"uint256"}],"name":"addDToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"iToken","type":"address"}],"name":"addIToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"created","type":"uint256"}],"name":"addPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"compound","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dydx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fulcrum","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"getAPROptions","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBAT","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDAI","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getETH","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getKNC","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLINK","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMKR","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getREP","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSNX","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSUSD","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUSDC","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUSDT","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWBTC","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getZRX","outputs":[{"internalType":"uint256","name":"uniapr","type":"uint256"},{"internalType":"uint256","name":"capr","type":"uint256"},{"internalType":"uint256","name":"unicapr","type":"uint256"},{"internalType":"uint256","name":"iapr","type":"uint256"},{"internalType":"uint256","name":"uniiapr","type":"uint256"},{"internalType":"uint256","name":"aapr","type":"uint256"},{"internalType":"uint256","name":"uniaapr","type":"uint256"},{"internalType":"uint256","name":"dapr","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"inCaseETHGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_TokenAddress","type":"address"}],"name":"inCaseTokenGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pools","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_APR","type":"address"}],"name":"set_new_APR","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_UNI","type":"address"}],"name":"set_new_UNI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_UNIAPR","type":"address"}],"name":"set_new_UNIAPR","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_UNIROI","type":"address"}],"name":"set_new_UNIROI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"viewPool","outputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"unipool","type":"address"},{"internalType":"uint256","name":"created","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506200002262000e7b60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a373c0a47dfe034b400b47bdad5fecda2621de6c4d95600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d04ca0ae1cd8085438fdd8c22a76246f315c2687600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734c70d89a4681b2151f56dc2c3fd751abb9ce3d95600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507397ff4a1b787ade6b94cca95b61f79417c673331d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200025a735d3a536e4d6dbd6114cc1ead35777bab948e3643628956b562000e8360201b60201c565b6200028373f5dce57282a584d2746faf1593d3121fcac444dc6275db5b62000e8360201b60201c565b620002ac736b175474e89094c44da98b954eedeac495271d0f6288674262000e8360201b60201c565b620002d06e085d4780b73119b644ae5ecd22b3766276edb462000e8360201b60201c565b620002f973a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48626780d862000e8360201b60201c565b620003227357ab1ec28d129707052df4df418d58a2d46d5f516283964462000e8360201b60201c565b6200034b730d8775f648430679a709e98d2b0cb6250d2887ef6265a31e62000e8360201b60201c565b6200037473514910771af9ca656af840dff83e8264ecf986ca6265229362000e8360201b60201c565b6200039d73dd974d5c2e2928dea5f71b9825b8b646686bd2006265229062000e8360201b60201c565b620003c6731985365e9f78359a9b6ad760e32412f4a445e8626265229a62000e8360201b60201c565b620003ef739f8f72aa9304c8b593d555f12ef6589cc3a579a26265227462000e8360201b60201c565b6200041873e41d2489571d322189246dafa5ebde1f4699f4986265228462000e8360201b60201c565b6200044173c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f627edf8a62000e8360201b60201c565b6200046a732260fac5e5542a773aa44fbcfedf7c193bc2c599626ae17962000e8360201b60201c565b620004a4736b175474e89094c44da98b954eedeac495271d0f735d3a536e4d6dbd6114cc1ead35777bab948e364362000f4e60201b60201c565b620004de730d8775f648430679a709e98d2b0cb6250d2887ef736c8c6b02e7b2be14d4fa6022dfd6d75921d90e4e62000f4e60201b60201c565b6200051873eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee734ddc2d193948926d02f9b1fe9e1daa0718270ed562000f4e60201b60201c565b62000552731985365e9f78359a9b6ad760e32412f4a445e86273158079ee67fce2f58472a96584a73c7ab9ac95c162000f4e60201b60201c565b6200058c73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb487339aa39c021dfbae8fac545936693ac917d5e756362000f4e60201b60201c565b620005c6732260fac5e5542a773aa44fbcfedf7c193bc2c59973c11b1268c1a384e55c48c2391d8d480264a3a7f462000f4e60201b60201c565b6200060073e41d2489571d322189246dafa5ebde1f4699f49873b3319f5d18bc0d84dd1b4825dcde5d5f7266d40762000f4e60201b60201c565b62000626736b175474e89094c44da98b954eedeac495271d0f806200105360201b60201c565b620006476e085d4780b73119b644ae5ecd22b376806200105360201b60201c565b6200066d73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48806200105360201b60201c565b6200069373dac17f958d2ee523a2206206994597c13d831ec7806200105360201b60201c565b620006b97357ab1ec28d129707052df4df418d58a2d46d5f51806200105360201b60201c565b620006df7380fb784b7ed66730e8b1dbd9820afd29931aab03806200105360201b60201c565b62000705730d8775f648430679a709e98d2b0cb6250d2887ef806200105360201b60201c565b6200072b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee806200105360201b60201c565b6200075173514910771af9ca656af840dff83e8264ecf986ca806200105360201b60201c565b6200077773dd974d5c2e2928dea5f71b9825b8b646686bd200806200105360201b60201c565b6200079d731985365e9f78359a9b6ad760e32412f4a445e862806200105360201b60201c565b620007c3739f8f72aa9304c8b593d555f12ef6589cc3a579a2806200105360201b60201c565b620007e9730f5d2fb29fb7d3cfee444a200298f468908cc942806200105360201b60201c565b6200080f73e41d2489571d322189246dafa5ebde1f4699f498806200105360201b60201c565b6200083573c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f806200105360201b60201c565b6200085b732260fac5e5542a773aa44fbcfedf7c193bc2c599806200105360201b60201c565b62000895736b175474e89094c44da98b954eedeac495271d0f73fc1e690f61efd961294b3e1ce3313fbd8aa4f85d6200115860201b60201c565b620008ca6e085d4780b73119b644ae5ecd22b376734da9b813057d04baef4e5800e36083717b4a03416200115860201b60201c565b6200090473a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48739ba00d6856a4edf4665bca2c2309936572473b7e6200115860201b60201c565b6200093e73dac17f958d2ee523a2206206994597c13d831ec77371fc860f7d3a592a4a98740e39db31d25db65ae86200115860201b60201c565b620009787357ab1ec28d129707052df4df418d58a2d46d5f5173625ae63000f46200499120b906716420bd0592406200115860201b60201c565b620009b27380fb784b7ed66730e8b1dbd9820afd29931aab03737d2d3688df45ce7c552e19c27e007673da9204b86200115860201b60201c565b620009ec730d8775f648430679a709e98d2b0cb6250d2887ef73e1ba0fb44ccb0d11b80f92f4f8ed94ca3ff51d006200115860201b60201c565b62000a2673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee733a3a65aab0dd2a17e3f1947ba16138cd37d08c046200115860201b60201c565b62000a6073514910771af9ca656af840dff83e8264ecf986ca73a64bd6c70cb9051f6a9ba1f163fdc07e0dfb5f846200115860201b60201c565b62000a9a73dd974d5c2e2928dea5f71b9825b8b646686bd200739d91be44c06d373a8a226e1f3b146956083803eb6200115860201b60201c565b62000ad4731985365e9f78359a9b6ad760e32412f4a445e8627371010a9d003445ac60c4e6a7017c1e89a477b4386200115860201b60201c565b62000b0e739f8f72aa9304c8b593d555f12ef6589cc3a579a2737deb5e830be29f91e298ba5ff1356bb7f81469986200115860201b60201c565b62000b48730f5d2fb29fb7d3cfee444a200298f468908cc942736fce4a401b6b80ace52baaefe4421bd188e76f6f6200115860201b60201c565b62000b8273e41d2489571d322189246dafa5ebde1f4699f498736fb0855c404e09c47c3fbca25f08d4e41f9f062f6200115860201b60201c565b62000bbc73c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f73328c4c80bc7aca0834db37e6600a6c49e12da4de6200115860201b60201c565b62000bf6732260fac5e5542a773aa44fbcfedf7c193bc2c59973fc4b8ed459e00e5400be803a9bb3954234fd50e36200115860201b60201c565b62000c3073e41d2489571d322189246dafa5ebde1f4699f49873a7eb2bc82df18013ecc2a6c533fc29446442edee6200125d60201b60201c565b62000c6a731985365e9f78359a9b6ad760e32412f4a445e86273bd56e9477fc6997609cf45f84795efbdac642ff16200125d60201b60201c565b62000ca473dd974d5c2e2928dea5f71b9825b8b646686bd200731cc9567ea2eb740824a45f8026ccf8e46973234d6200125d60201b60201c565b62000cde732260fac5e5542a773aa44fbcfedf7c193bc2c59973ba9262578efef8b3aff7f60cd629d6cc8859c8b56200125d60201b60201c565b62000d1873a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873f013406a0b1d544238083df0b93ad0d2cbe0f65f6200125d60201b60201c565b62000d5273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7377f973fcaf871459aa58cd81881ce453759281bc6200125d60201b60201c565b62000d8c736b175474e89094c44da98b954eedeac495271d0f73493c57c4763932315a328269e1adad09653b90816200125d60201b60201c565b62000dc673514910771af9ca656af840dff83e8264ecf986ca731d496da96caf6b518b133736beca85d5c4f9cbc56200125d60201b60201c565b62000e007357ab1ec28d129707052df4df418d58a2d46d5f517349f4592e641820e928f9919ef4abd92a719b4b496200125d60201b60201c565b62000e2773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60006200136260201b60201c565b62000e4e73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860026200136260201b60201c565b62000e75736b175474e89094c44da98b954eedeac495271d0f60036200136260201b60201c565b62001493565b600033905090565b62000e936200142d60201b60201c565b62000f06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b62000f5e6200142d60201b60201c565b62000fd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b620010636200142d60201b60201c565b620010d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b620011686200142d60201b60201c565b620011db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6200126d6200142d60201b60201c565b620012e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b620013726200142d60201b60201c565b620013e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166200147762000e7b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b61342980620014a36000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063811711c711610146578063acbeec7e116100c3578063d6542d4211610087578063d6542d4214610da5578063da03172e14610def578063da07af3314610f85578063e636cbcc14611009578063f2fde38b14611058578063f60a15ed1461109c57610253565b8063acbeec7e14610be1578063bd30558e14610c6a578063bf4d876514610cb4578063c205c6ef14610d03578063c4b5627314610d5b57610253565b80638f32d59b1161010a5780638f32d59b14610a70578063926021d714610a92578063a4063dbc14610af6578063a9b946e914610b4e578063aa3e991514610b9257610253565b8063811711c7146108a0578063832daf061461090457806386eab215146109885780638da5cb5b146109d75780638ef8556814610a2157610253565b806346357473116101d45780636f2c83ee116101985780636f2c83ee1461073057806370c364bd1461077f578063715018a61461080357806376ddd7b71461080d57806377fe45001461085c57610253565b806346357473146105a0578063541bcb76146105e4578063581592f11461062e5780635eebb1ce1461067d57806363beafef146106cc57610253565b806328157bcb1161021b57806328157bcb146103ed578063284dac231461043b5780632e8d6e18146104bf57806332a9caba146105035780633bd303bd1461055157610253565b8063146b9f701461025857806314840295146102bc57806314f6c3be146103005780631bf01e9b1461034f578063274c6e5f1461039e575b600080fd5b6102ba6004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a6565b005b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a2565b005b610308611260565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6103576112a3565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6103a66112e6565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6104396004803603604081101561040357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611329565b005b61047d6004803603602081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610501600480360360208110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141e565b005b61054f6004803603604081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061161b565b005b6105596116dd565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6105e2600480360360208110156105b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611720565b005b6105ec6117de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610636611804565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610685611847565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61072e600480360360408110156106e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b610738611986565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6107c16004803603602081101561079557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61080b6119fc565b005b610815611b35565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61089e6004803603602081101561087257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b78565b005b610902600480360360408110156108b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c36565b005b6109466004803603602081101561091a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610990611d65565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6109df611da8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a29611dd1565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610a78611e14565b604051808215151515815260200191505060405180910390f35b610af460048036036040811015610aa857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e72565b005b610b3860048036036020811015610b0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f6e565b6040518082815260200191505060405180910390f35b610b9060048036036020811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f86565b005b610b9a612044565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610c2360048036036020811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612087565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610c72612b86565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610cbc612bac565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610d4560048036036020811015610d1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bef565b6040518082815260200191505060405180910390f35b610d63612c07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dad612c2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3160048036036020811015610e0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c53565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610f45578082015181840152602081019050610f2a565b50505050905090810190601f168015610f725780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610fc760048036036020811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613016565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611011613049565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61109a6004803603602081101561106e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061308c565b005b6110a4613112565b005b6110ae611e14565b611120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6111aa611e14565b61121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008061128973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612087565b975097509750975097509750975097509091929394959697565b6000806000806000806000806112cc73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48612087565b975097509750975097509750975097509091929394959697565b60008060008060008060008061130f730d8775f648430679a709e98d2b0cb6250d2887ef612087565b975097509750975097509750975097509091929394959697565b611331611e14565b6113a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611426611e14565b611498576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561151757600080fd5b505afa15801561152b573d6000803e3d6000fd5b505050506040513d602081101561154157600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b8101908080519060200190929190505050505050565b611623611e14565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008060008060008060008061170673dd974d5c2e2928dea5f71b9825b8b646686bd200612087565b975097509750975097509750975097509091929394959697565b611728611e14565b61179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060008061182d73dac17f958d2ee523a2206206994597c13d831ec7612087565b975097509750975097509750975097509091929394959697565b600080600080600080600080611870732260fac5e5542a773aa44fbcfedf7c193bc2c599612087565b975097509750975097509750975097509091929394959697565b611892611e14565b611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000806000806000806119af731985365e9f78359a9b6ad760e32412f4a445e862612087565b975097509750975097509750975097509091929394959697565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a04611e14565b611a76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600080600080611b5e73514910771af9ca656af840dff83e8264ecf986ca612087565b975097509750975097509750975097509091929394959697565b611b80611e14565b611bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c3e611e14565b611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080611d8e7357ab1ec28d129707052df4df418d58a2d46d5f51612087565b975097509750975097509750975097509091929394959697565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600080600080600080611dfa736b175474e89094c44da98b954eedeac495271d0f612087565b975097509750975097509750975097509091929394959697565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e56613282565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b611e7a611e14565b611eec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60016020528060005260406000206000915090505481565b611f8e611e14565b612000576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008061206d73e41d2489571d322189246dafa5ebde1f4699f498612087565b975097509750975097509750975097509091929394959697565b6000806000806000806000806000600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156121c557600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb8b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561218757600080fd5b505afa15801561219b573d6000803e3d6000fd5b505050506040513d60208110156121b157600080fd5b810190808051906020019092919050505098505b6000600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461257657600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166344e258b4856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561240857600080fd5b505afa15801561241c573d6000803e3d6000fd5b505050506040513d602081101561243257600080fd5b81019080805190602001909291905050509b50600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549450600085111561257557600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb85876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561253757600080fd5b505afa15801561254b573d6000803e3d6000fd5b505050506040513d602081101561256157600080fd5b81019080805190602001909291905050509a505b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146127b757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166383deca3d846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264957600080fd5b505afa15801561265d573d6000803e3d6000fd5b505050506040513d602081101561267357600080fd5b81019080805190602001909291905050509950600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945060008511156127b657600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb84876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561277857600080fd5b505afa15801561278c573d6000803e3d6000fd5b505050506040513d60208110156127a257600080fd5b810190808051906020019092919050505098505b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a5a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663192a9861836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561288a57600080fd5b505afa15801561289e573d6000803e3d6000fd5b505050506040513d60208110156128b457600080fd5b81019080805190602001909291905050509750600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506000851115612a5957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb83876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015612a1b57600080fd5b505afa158015612a2f573d6000803e3d6000fd5b505050506040513d6020811015612a4557600080fd5b810190808051906020019092919050505096505b5b6000811180612aa8575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16145b15612b5e57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381d24d8d826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2057600080fd5b505afa158015612b34573d6000803e3d6000fd5b505050506040513d6020811015612b4a57600080fd5b810190808051906020019092919050505095505b8c8c8c8c8c8c8c8c9c509c509c509c509c509c509c509c505050505050919395975091939597565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080612bd573c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f612087565b975097509750975097509750975097509091929394959697565b60066020528060005260406000206000915090505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000606080859450600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306f2bf62876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612cfd57600080fd5b505afa158015612d11573d6000803e3d6000fd5b505050506040513d6020811015612d2757600080fd5b81019080805190602001909291905050509350600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492508573ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612dc257600080fd5b505afa158015612dd6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612e0057600080fd5b8101908080516040519392919084640100000000821115612e2057600080fd5b83820191506020820185811115612e3657600080fd5b8251866001820283011164010000000082111715612e5357600080fd5b8083526020830192505050908051906020019080838360005b83811015612e87578082015181840152602081019050612e6c565b50505050905090810190601f168015612eb45780820380516001836020036101000a031916815260200191505b5060405250505091508573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612f0357600080fd5b505afa158015612f17573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612f4157600080fd5b8101908080516040519392919084640100000000821115612f6157600080fd5b83820191506020820185811115612f7757600080fd5b8251866001820283011164010000000082111715612f9457600080fd5b8083526020830192505050908051906020019080838360005b83811015612fc8578082015181840152602081019050612fad565b50505050905090810190601f168015612ff55780820380516001836020036101000a031916815260200191505b50604052505050905084848484849450945094509450945091939590929450565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080613072739f8f72aa9304c8b593d555f12ef6589cc3a579a2612087565b975097509750975097509750975097509091929394959697565b613094611e14565b613106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61310f8161328a565b50565b61311a611e14565b61318c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d8060008114613203576040519150601f19603f3d011682016040523d82523d6000602084013e613208565b606091505b505090508061327f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133cf6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723158206e149a603db96b15cf01fef830649c7ef4ac5f56240e8bb329d8470f304d78c764736f6c634300050c0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102535760003560e01c8063811711c711610146578063acbeec7e116100c3578063d6542d4211610087578063d6542d4214610da5578063da03172e14610def578063da07af3314610f85578063e636cbcc14611009578063f2fde38b14611058578063f60a15ed1461109c57610253565b8063acbeec7e14610be1578063bd30558e14610c6a578063bf4d876514610cb4578063c205c6ef14610d03578063c4b5627314610d5b57610253565b80638f32d59b1161010a5780638f32d59b14610a70578063926021d714610a92578063a4063dbc14610af6578063a9b946e914610b4e578063aa3e991514610b9257610253565b8063811711c7146108a0578063832daf061461090457806386eab215146109885780638da5cb5b146109d75780638ef8556814610a2157610253565b806346357473116101d45780636f2c83ee116101985780636f2c83ee1461073057806370c364bd1461077f578063715018a61461080357806376ddd7b71461080d57806377fe45001461085c57610253565b806346357473146105a0578063541bcb76146105e4578063581592f11461062e5780635eebb1ce1461067d57806363beafef146106cc57610253565b806328157bcb1161021b57806328157bcb146103ed578063284dac231461043b5780632e8d6e18146104bf57806332a9caba146105035780633bd303bd1461055157610253565b8063146b9f701461025857806314840295146102bc57806314f6c3be146103005780631bf01e9b1461034f578063274c6e5f1461039e575b600080fd5b6102ba6004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a6565b005b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a2565b005b610308611260565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6103576112a3565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6103a66112e6565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6104396004803603604081101561040357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611329565b005b61047d6004803603602081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610501600480360360208110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141e565b005b61054f6004803603604081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061161b565b005b6105596116dd565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6105e2600480360360208110156105b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611720565b005b6105ec6117de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610636611804565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610685611847565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61072e600480360360408110156106e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b610738611986565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6107c16004803603602081101561079557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61080b6119fc565b005b610815611b35565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61089e6004803603602081101561087257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b78565b005b610902600480360360408110156108b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c36565b005b6109466004803603602081101561091a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610990611d65565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b6109df611da8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a29611dd1565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610a78611e14565b604051808215151515815260200191505060405180910390f35b610af460048036036040811015610aa857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e72565b005b610b3860048036036020811015610b0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f6e565b6040518082815260200191505060405180910390f35b610b9060048036036020811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f86565b005b610b9a612044565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610c2360048036036020811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612087565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610c72612b86565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610cbc612bac565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610d4560048036036020811015610d1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bef565b6040518082815260200191505060405180910390f35b610d63612c07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dad612c2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3160048036036020811015610e0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c53565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610f45578082015181840152602081019050610f2a565b50505050905090810190601f168015610f725780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610fc760048036036020811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613016565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611011613049565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b61109a6004803603602081101561106e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061308c565b005b6110a4613112565b005b6110ae611e14565b611120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6111aa611e14565b61121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008061128973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612087565b975097509750975097509750975097509091929394959697565b6000806000806000806000806112cc73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48612087565b975097509750975097509750975097509091929394959697565b60008060008060008060008061130f730d8775f648430679a709e98d2b0cb6250d2887ef612087565b975097509750975097509750975097509091929394959697565b611331611e14565b6113a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611426611e14565b611498576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561151757600080fd5b505afa15801561152b573d6000803e3d6000fd5b505050506040513d602081101561154157600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b8101908080519060200190929190505050505050565b611623611e14565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008060008060008060008061170673dd974d5c2e2928dea5f71b9825b8b646686bd200612087565b975097509750975097509750975097509091929394959697565b611728611e14565b61179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060008061182d73dac17f958d2ee523a2206206994597c13d831ec7612087565b975097509750975097509750975097509091929394959697565b600080600080600080600080611870732260fac5e5542a773aa44fbcfedf7c193bc2c599612087565b975097509750975097509750975097509091929394959697565b611892611e14565b611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000806000806000806119af731985365e9f78359a9b6ad760e32412f4a445e862612087565b975097509750975097509750975097509091929394959697565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a04611e14565b611a76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600080600080611b5e73514910771af9ca656af840dff83e8264ecf986ca612087565b975097509750975097509750975097509091929394959697565b611b80611e14565b611bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c3e611e14565b611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080611d8e7357ab1ec28d129707052df4df418d58a2d46d5f51612087565b975097509750975097509750975097509091929394959697565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600080600080600080611dfa736b175474e89094c44da98b954eedeac495271d0f612087565b975097509750975097509750975097509091929394959697565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e56613282565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b611e7a611e14565b611eec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60016020528060005260406000206000915090505481565b611f8e611e14565b612000576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008061206d73e41d2489571d322189246dafa5ebde1f4699f498612087565b975097509750975097509750975097509091929394959697565b6000806000806000806000806000600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156121c557600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb8b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561218757600080fd5b505afa15801561219b573d6000803e3d6000fd5b505050506040513d60208110156121b157600080fd5b810190808051906020019092919050505098505b6000600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461257657600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166344e258b4856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561240857600080fd5b505afa15801561241c573d6000803e3d6000fd5b505050506040513d602081101561243257600080fd5b81019080805190602001909291905050509b50600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549450600085111561257557600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb85876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561253757600080fd5b505afa15801561254b573d6000803e3d6000fd5b505050506040513d602081101561256157600080fd5b81019080805190602001909291905050509a505b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146127b757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166383deca3d846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264957600080fd5b505afa15801561265d573d6000803e3d6000fd5b505050506040513d602081101561267357600080fd5b81019080805190602001909291905050509950600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945060008511156127b657600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb84876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561277857600080fd5b505afa15801561278c573d6000803e3d6000fd5b505050506040513d60208110156127a257600080fd5b810190808051906020019092919050505098505b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a5a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663192a9861836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561288a57600080fd5b505afa15801561289e573d6000803e3d6000fd5b505050506040513d60208110156128b457600080fd5b81019080805190602001909291905050509750600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506000851115612a5957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bd917eb83876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015612a1b57600080fd5b505afa158015612a2f573d6000803e3d6000fd5b505050506040513d6020811015612a4557600080fd5b810190808051906020019092919050505096505b5b6000811180612aa8575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16145b15612b5e57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381d24d8d826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2057600080fd5b505afa158015612b34573d6000803e3d6000fd5b505050506040513d6020811015612b4a57600080fd5b810190808051906020019092919050505095505b8c8c8c8c8c8c8c8c9c509c509c509c509c509c509c509c505050505050919395975091939597565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080612bd573c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f612087565b975097509750975097509750975097509091929394959697565b60066020528060005260406000206000915090505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000606080859450600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306f2bf62876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612cfd57600080fd5b505afa158015612d11573d6000803e3d6000fd5b505050506040513d6020811015612d2757600080fd5b81019080805190602001909291905050509350600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492508573ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612dc257600080fd5b505afa158015612dd6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612e0057600080fd5b8101908080516040519392919084640100000000821115612e2057600080fd5b83820191506020820185811115612e3657600080fd5b8251866001820283011164010000000082111715612e5357600080fd5b8083526020830192505050908051906020019080838360005b83811015612e87578082015181840152602081019050612e6c565b50505050905090810190601f168015612eb45780820380516001836020036101000a031916815260200191505b5060405250505091508573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612f0357600080fd5b505afa158015612f17573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612f4157600080fd5b8101908080516040519392919084640100000000821115612f6157600080fd5b83820191506020820185811115612f7757600080fd5b8251866001820283011164010000000082111715612f9457600080fd5b8083526020830192505050908051906020019080838360005b83811015612fc8578082015181840152602081019050612fad565b50505050905090810190601f168015612ff55780820380516001836020036101000a031916815260200191505b50604052505050905084848484849450945094509450945091939590929450565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080613072739f8f72aa9304c8b593d555f12ef6589cc3a579a2612087565b975097509750975097509750975097509091929394959697565b613094611e14565b613106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61310f8161328a565b50565b61311a611e14565b61318c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d8060008114613203576040519150601f19603f3d011682016040523d82523d6000602084013e613208565b606091505b505090508061327f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133cf6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723158206e149a603db96b15cf01fef830649c7ef4ac5f56240e8bb329d8470f304d78c764736f6c634300050c0032
Deployed Bytecode Sourcemap
13614:15548:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13614:15548:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27623:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27623:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28418:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28418:89:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;24756:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25070:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21927:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28176:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28176:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13761:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13761:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;28750:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28750:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;27487:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27487:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23183:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28620:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28620:89:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14003:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21612:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23497;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28035:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28035:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22869:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13811:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13811:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3373:140;;;:::i;:::-;;23812:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28513:101;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28513:101:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;27900:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27900:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13906:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13906:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24127:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2562:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24442:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2928:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27762:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27762:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13714:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13714:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28311:101;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28311:101:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;22555:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25385:1643;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25385:1643:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14084:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21298:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13955:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13955:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14028:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14056;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27036:443;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27036:443:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;27036:443:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;27036:443:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13860:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13860:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22241:306;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3668:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;28976:183;;;:::i;:::-;;27623:131;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27740:6;27722:8;:15;27731:5;27722:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;27623:131;;:::o;28418:89::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28491:8;28485:3;;:14;;;;;;;;;;;;;;;;;;28418:89;:::o;24756:306::-;24803:14;24826:12;24847:15;24871:12;24892:15;24916:12;24937:15;24961:12;24997:57;25011:42;24997:13;:57::i;:::-;24990:64;;;;;;;;;;;;;;;;24756:306;;;;;;;;:::o;25070:307::-;25118:14;25141:12;25162:15;25186:12;25207:15;25231:12;25252:15;25276:12;25312:57;25326:42;25312:13;:57::i;:::-;25305:64;;;;;;;;;;;;;;;;25070:307;;;;;;;;:::o;21927:306::-;21974:14;21997:12;22018:15;22042:12;22063:15;22087:12;22108:15;22132:12;22168:57;22182:42;22168:13;:57::i;:::-;22161:64;;;;;;;;;;;;;;;;21927:306;;;;;;;;:::o;28176:127::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28289:6;28275:4;:11;28280:5;28275:11;;;;;;;;;;;;;;;:20;;;;28176:127;;:::o;13761:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;28750:187::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28830:8;28841:13;:23;;;28873:4;28841:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28841:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28841:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28841:38:0;;;;;;;;;;;;;;;;28830:49;;28890:13;:22;;;28913:10;28925:3;28890:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28890:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28890:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28890:39:0;;;;;;;;;;;;;;;;;2831:1;28750:187;:::o;27487:128::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27600:7;27585:5;:12;27591:5;27585:12;;;;;;;;;;;;;;;:22;;;;27487:128;;:::o;23183:306::-;23230:14;23253:12;23274:15;23298:12;23319:15;23343:12;23364:15;23388:12;23424:57;23438:42;23424:13;:57::i;:::-;23417:64;;;;;;;;;;;;;;;;23183:306;;;;;;;;:::o;28620:89::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28693:8;28687:3;;:14;;;;;;;;;;;;;;;;;;28620:89;:::o;14003:18::-;;;;;;;;;;;;;:::o;21612:307::-;21660:14;21683:12;21704:15;21728:12;21749:15;21773:12;21794:15;21818:12;21854:57;21868:42;21854:13;:57::i;:::-;21847:64;;;;;;;;;;;;;;;;21612:307;;;;;;;;:::o;23497:::-;23545:14;23568:12;23589:15;23613:12;23634:15;23658:12;23679:15;23703:12;23739:57;23753:42;23739:13;:57::i;:::-;23732:64;;;;;;;;;;;;;;;;23497:307;;;;;;;;:::o;28035:133::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28154:6;28137:7;:14;28145:5;28137:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;28035:133;;:::o;22869:306::-;22916:14;22939:12;22960:15;22984:12;23005:15;23029:12;23050:15;23074:12;23110:57;23124:42;23110:13;:57::i;:::-;23103:64;;;;;;;;;;;;;;;;22869:306;;;;;;;;:::o;13811:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3373:140::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3472:1;3435:40;;3456:6;;;;;;;;;;;3435:40;;;;;;;;;;;;3503:1;3486:6;;:19;;;;;;;;;;;;;;;;;;3373:140::o;23812:307::-;23860:14;23883:12;23904:15;23928:12;23949:15;23973:12;23994:15;24018:12;24054:57;24068:42;24054:13;:57::i;:::-;24047:64;;;;;;;;;;;;;;;;23812:307;;;;;;;;:::o;28513:101::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28595:11;28586:6;;:20;;;;;;;;;;;;;;;;;;28513:101;:::o;27900:127::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28013:6;27999:4;:11;28004:5;27999:11;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;27900:127;;:::o;13906:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;24127:307::-;24175:14;24198:12;24219:15;24243:12;24264:15;24288:12;24309:15;24333:12;24369:57;24383:42;24369:13;:57::i;:::-;24362:64;;;;;;;;;;;;;;;;24127:307;;;;;;;;:::o;2562:79::-;2600:7;2627:6;;;;;;;;;;;2620:13;;2562:79;:::o;24442:306::-;24489:14;24512:12;24533:15;24557:12;24578:15;24602:12;24623:15;24647:12;24683:57;24697:42;24683:13;:57::i;:::-;24676:64;;;;;;;;;;;;;;;;24442:306;;;;;;;;:::o;2928:94::-;2968:4;3008:6;;;;;;;;;;;2992:22;;:12;:10;:12::i;:::-;:22;;;2985:29;;2928:94;:::o;27762:130::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27878:6;27861:7;:14;27869:5;27861:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;27762:130;;:::o;13714:40::-;;;;;;;;;;;;;;;;;:::o;28311:101::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28393:11;28384:6;;:20;;;;;;;;;;;;;;;;;;28311:101;:::o;22555:306::-;22602:14;22625:12;22646:15;22670:12;22691:15;22715:12;22736:15;22760:12;22796:57;22810:42;22796:13;:57::i;:::-;22789:64;;;;;;;;;;;;;;;;22555:306;;;;;;;;:::o;25385:1643::-;25453:14;25476:12;25497:15;25521:12;25542:15;25566:12;25587:15;25611:12;25640:15;25658:5;:13;25664:6;25658:13;;;;;;;;;;;;;;;;25640:31;;25696:1;25686:7;:11;25682:98;;;25731:6;;;;;;;;;;;25719:34;;;25754:6;25762:7;25719:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25719:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25719:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25719:51:0;;;;;;;;;;;;;;;;25710:60;;25682:98;25788:14;25805:8;:16;25814:6;25805:16;;;;;;;;;;;;;;;;;;;;;;;;;25788:33;;25830:14;25847:7;:15;25855:6;25847:15;;;;;;;;;;;;;;;;;;;;;;;;;25830:32;;25871:14;25888:4;:12;25893:6;25888:12;;;;;;;;;;;;;;;;;;;;;;;;;25871:29;;25909:14;25926:4;:12;25931:6;25926:12;;;;;;;;;;;;;;;;25909:29;;25971:1;25953:20;;:6;:20;;;25949:239;;26004:3;;;;;;;;;;;25993:30;;;26024:6;25993:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25993:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25993:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25993:38:0;;;;;;;;;;;;;;;;25986:45;;26052:5;:13;26058:6;26052:13;;;;;;;;;;;;;;;;26042:23;;26090:1;26080:7;:11;26076:103;;;26128:6;;;;;;;;;;;26116:34;;;26151:6;26159:7;26116:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26116:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26116:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26116:51:0;;;;;;;;;;;;;;;;26106:61;;26076:103;25949:239;26218:1;26200:20;;:6;:20;;;26196:238;;26251:3;;;;;;;;;;;26240:29;;;26270:6;26240:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26240:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26240:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26240:37:0;;;;;;;;;;;;;;;;26233:44;;26298:5;:13;26304:6;26298:13;;;;;;;;;;;;;;;;26288:23;;26336:1;26326:7;:11;26322:103;;;26374:6;;;;;;;;;;;26362:34;;;26397:6;26405:7;26362:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26362:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26362:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26362:51:0;;;;;;;;;;;;;;;;26352:61;;26322:103;26196:238;26464:1;26446:20;;:6;:20;;;26442:270;;26497:3;;;;;;;;;;;26486:26;;;26513:6;26486:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26486:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26486:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26486:34:0;;;;;;;;;;;;;;;;26479:41;;26540:7;:15;26548:6;26540:15;;;;;;;;;;;;;;;;;;;;;;;;;26531:24;;26576:5;:13;26582:6;26576:13;;;;;;;;;;;;;;;;26566:23;;26614:1;26604:7;:11;26600:103;;;26652:6;;;;;;;;;;;26640:34;;;26675:6;26683:7;26640:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26640:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26640:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26640:51:0;;;;;;;;;;;;;;;;26630:61;;26600:103;26442:270;26733:1;26724:6;:10;:75;;;;26756:42;26738:61;;:6;:61;;;26724:75;26720:143;;;26830:3;;;;;;;;;;;26819:26;;;26846:6;26819:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26819:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26819:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26819:34:0;;;;;;;;;;;;;;;;26812:41;;26720:143;26891:6;26908:4;26923:7;26941:4;26956:7;26974:4;26989:7;27007:4;26873:147;;;;;;;;;;;;;;;;;;;;;25385:1643;;;;;;;;;:::o;14084:18::-;;;;;;;;;;;;;:::o;21298:306::-;21345:14;21368:12;21389:15;21413:12;21434:15;21458:12;21479:15;21503:12;21539:57;21553:42;21539:13;:57::i;:::-;21532:64;;;;;;;;;;;;;;;;21298:306;;;;;;;;:::o;13955:39::-;;;;;;;;;;;;;;;;;:::o;14028:21::-;;;;;;;;;;;;;:::o;14056:::-;;;;;;;;;;;;;:::o;27036:443::-;27099:13;27121:15;27145;27169:18;27196:20;27241:6;27233:14;;27282:3;;;;;;;;;;;27266:32;;;27299:6;27266:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27266:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27266:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27266:40:0;;;;;;;;;;;;;;;;27256:50;;27325:5;:13;27331:6;27325:13;;;;;;;;;;;;;;;;27315:23;;27361:6;27354:19;;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27354:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27354:21:0;;;;;;39:16:-1;36:1;17:17;2:54;27354:21: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;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27354:21:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;27354:21:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;27354:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27347:28;;27400:6;27393:21;;;:23;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27393:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27393:23:0;;;;;;39:16:-1;36:1;17:17;2:54;27393: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;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27393:23:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;27393:23:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;27393:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27384:32;;27433:5;27440:7;27449;27458:4;27464:6;27425:46;;;;;;;;;;27036:443;;;;;;;:::o;13860:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;22241:306::-;22288:14;22311:12;22332:15;22356:12;22377:15;22401:12;22422:15;22446:12;22482:57;22496:42;22482:13;:57::i;:::-;22475:64;;;;;;;;;;;;;;;;22241:306;;;;;;;;:::o;3668:109::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3741:28;3760:8;3741:18;:28::i;:::-;3668:109;:::o;28976:183::-;2774:9;:7;:9::i;:::-;2766:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29034:11;29051:10;:15;;29081:4;29073:21;;;29051:48;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;29033:66:0;;;29118:6;29110:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2831:1;28976:183::o;1311:98::-;1356:15;1391:10;1384:17;;1311:98;:::o;3883:229::-;3977:1;3957:22;;:8;:22;;;;3949:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4067:8;4038:38;;4059:6;;;;;;;;;;;4038:38;;;;;;;;;;;;4096:8;4087:6;;:17;;;;;;;;;;;;;;;;;;3883:229;:::o
Swarm Source
bzzr://6e149a603db96b15cf01fef830649c7ef4ac5f56240e8bb329d8470f304d78c7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.