Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10232303 | 1613 days ago | IN | 0 ETH | 0.00073393 | ||||
0xef32ca4d | 10219818 | 1615 days ago | IN | 0.1 ETH | 0.00255171 | ||||
0x2e0a8889 | 10096354 | 1634 days ago | IN | 0.12063581 ETH | 0.00254955 | ||||
Change Min Balan... | 10095735 | 1634 days ago | IN | 0 ETH | 0.00028412 | ||||
Transfer | 10095410 | 1634 days ago | IN | 0 ETH | 0.00057273 | ||||
0x79c5540b | 10095350 | 1634 days ago | IN | 0.1445 ETH | 0.00289747 | ||||
Transfer | 10095309 | 1634 days ago | IN | 0.1275 ETH | 0.00055027 | ||||
Transfer | 10095094 | 1634 days ago | IN | 0.1105 ETH | 0.00055027 | ||||
Transfer | 10090456 | 1635 days ago | IN | 0.1105 ETH | 0.00083737 | ||||
Transfer | 10084625 | 1636 days ago | IN | 0.085 ETH | 0.00059446 | ||||
Transfer | 10069955 | 1638 days ago | IN | 0.005 ETH | 0.00057845 | ||||
Transfer | 10069876 | 1638 days ago | IN | 0.00501326 ETH | 0.00052587 | ||||
0xa476740f | 10045402 | 1642 days ago | IN | 0.3 ETH | 0.00172921 | ||||
0x80ddba3d | 10025298 | 1645 days ago | IN | 0.29 ETH | 0.00173366 | ||||
0x79c5540b | 10024475 | 1645 days ago | IN | 2.488 ETH | 0.00104309 | ||||
0x80ddba3d | 10024384 | 1645 days ago | IN | 0.19 ETH | 0.00101991 | ||||
0x4b7b1878 | 10021004 | 1646 days ago | IN | 0.1 ETH | 0.0018848 | ||||
0x60806040 | 10020832 | 1646 days ago | IN | 0 ETH | 0.02500789 |
Latest 16 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
10219818 | 1615 days ago | 0.095 ETH | ||||
10219818 | 1615 days ago | 0.005 ETH | ||||
10096354 | 1634 days ago | 0.11460402 ETH | ||||
10096354 | 1634 days ago | 0.00603179 ETH | ||||
10095350 | 1634 days ago | 0.137275 ETH | ||||
10095350 | 1634 days ago | 0.007225 ETH | ||||
10045402 | 1642 days ago | 0.285 ETH | ||||
10045402 | 1642 days ago | 0.015 ETH | ||||
10025298 | 1645 days ago | 0.2755 ETH | ||||
10025298 | 1645 days ago | 0.0145 ETH | ||||
10024475 | 1645 days ago | 2.3636 ETH | ||||
10024475 | 1645 days ago | 0.1244 ETH | ||||
10024384 | 1645 days ago | 0.1805 ETH | ||||
10024384 | 1645 days ago | 0.0095 ETH | ||||
10021004 | 1646 days ago | 0.095 ETH | ||||
10021004 | 1646 days ago | 0.005 ETH |
Loading...
Loading
Contract Name:
VomerPartner
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-05-07 */ pragma solidity ^0.5.16; 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) { require(b <= a, "SafeMath: subtraction overflow"); 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-solidity/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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); 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) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } contract ERC20 { uint public decimals; function allowance(address, address) public view returns (uint); function balanceOf(address) public view returns (uint); function approve(address, uint) public; function transfer(address, uint) public returns (bool); function transferFrom(address, address, uint) public returns (bool); } /** * @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. * * > 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. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(ERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(ERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(ERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(ERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function callOptionalReturn(ERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } library UniversalERC20 { using SafeMath for uint256; using SafeERC20 for ERC20; ERC20 private constant ZERO_ADDRESS = ERC20(0x0000000000000000000000000000000000000000); ERC20 private constant ETH_ADDRESS = ERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); function universalTransfer(ERC20 token, address to, uint256 amount) internal { universalTransfer(token, to, amount, false); } function universalTransfer(ERC20 token, address to, uint256 amount, bool mayFail) internal returns(bool) { if (amount == 0) { return true; } if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { if (mayFail) { return address(uint160(to)).send(amount); } else { address(uint160(to)).transfer(amount); return true; } } else { token.safeTransfer(to, amount); return true; } } function universalApprove(ERC20 token, address to, uint256 amount) internal { if (token != ZERO_ADDRESS && token != ETH_ADDRESS) { token.safeApprove(to, amount); } } function universalTransferFrom(ERC20 token, address from, address to, uint256 amount) internal { if (amount == 0) { return; } if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { require(from == msg.sender && msg.value >= amount, "msg.value is zero"); if (to != address(this)) { address(uint160(to)).transfer(amount); } if (msg.value > amount) { msg.sender.transfer(uint256(msg.value).sub(amount)); } } else { token.safeTransferFrom(from, to, amount); } } function universalBalanceOf(ERC20 token, address who) internal view returns (uint256) { if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { return who.balance; } else { return token.balanceOf(who); } } } contract ERC20Token { mapping (address => uint256) public balanceOf; function transfer(address _to, uint256 _value) public; function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); } contract ShareholderVomer { function takeEth(address targetAddr, uint256 amount) public; function giveBackEth() payable public; } contract VomerPartner { using SafeMath for uint256; address payable public owner; address payable public newOwnerCandidate; uint256 MinBalanceVMR; ERC20Token VMR_Token; ShareholderVomer partnerContract; address payable supportAddress; struct InvestorData { uint256 funds; uint256 lastDatetime; uint256 totalProfit; uint256 totalVMR; uint256 pendingReward; // Partner info uint256 totalReferralProfit; uint256 pendingReferralReward; } mapping (address => InvestorData) investors; mapping(address => address) refList; mapping(address => bool) public admins; modifier onlyOwner() { assert(msg.sender == owner); _; } modifier onlyAdminOrOwner() { require(admins[msg.sender] || msg.sender == owner); _; } event Reward(address indexed userAddress, uint256 amount); event ReferralReward(address indexed userAddress, uint256 amount); constructor() public { VMR_Token = ERC20Token(0x063b98a414EAA1D4a5D4fC235a22db1427199024); partnerContract = ShareholderVomer(0xE1f5c6FD86628E299955a84f44E2DFCA47aAaaa4); MinBalanceVMR = 100 * 10**18; supportAddress = 0x4B7b1878338251874Ad8Dace56D198e31278676d; newOwnerCandidate = 0x4B7b1878338251874Ad8Dace56D198e31278676d; owner = msg.sender; admins[0x6Ecb917AfD0611F8Ab161f992a12c82e29dc533c] = true; } function changeSupportAddress(address newSupportAddress) onlyOwner public { require(newSupportAddress != address(0)); supportAddress = address(uint160(newSupportAddress)); } function safeEthTransfer(address target, uint256 amount) internal { address payable payableTarget = address(uint160(target)); (bool ok, ) = payableTarget.call.value(amount)(""); require(ok, "can't send eth to address"); } function setAdmin(address newAdmin, bool activate) onlyOwner public { admins[newAdmin] = activate; } uint256 public fundsLockedtoWithdraw; uint256 public dateUntilFundsLocked; function withdraw(uint256 amount) public onlyOwner { if (dateUntilFundsLocked > now) require(address(this).balance.sub(amount) > fundsLockedtoWithdraw); owner.transfer(amount); } function lockFunds(uint256 amount) public onlyOwner { // funds lock is active if (dateUntilFundsLocked > now) { require(amount > fundsLockedtoWithdraw); } fundsLockedtoWithdraw = amount; dateUntilFundsLocked = now + 30 days; } function changeOwnerCandidate(address payable newOwner) public onlyOwner { newOwnerCandidate = newOwner; } function acceptOwner() public { require(msg.sender == newOwnerCandidate); owner = newOwnerCandidate; } function changeMinBalance(uint256 newMinBalance) public onlyOwner { MinBalanceVMR = newMinBalance * 10**18; } function bytesToAddress(bytes memory bys) private pure returns (address payable addr) { assembly { addr := mload(add(bys,20)) } } // function for transfer any token from contract function transferTokens (address token, address target, uint256 amount) onlyOwner public { ERC20Token(token).transfer(target, amount); } function getInfo(address investor) view public returns (uint256 totalFunds, uint256 pendingReward, uint256 totalProfit, uint256 contractBalance, uint256 totalVMR, uint256 minVMR, uint256 totalReferralProfit, uint256 pendingReferralReward) { contractBalance = address(this).balance; minVMR = MinBalanceVMR; InvestorData memory data = investors[investor]; totalFunds = data.funds; if (data.funds > 0) { pendingReward = data.pendingReward + data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days); pendingReward = pendingReward * 85 / 100; // -15% to ref payments } totalProfit = data.totalProfit; totalVMR = data.totalVMR; // Referral\partner data totalReferralProfit = data.totalReferralProfit; pendingReferralReward = data.pendingReferralReward; } function getLevelReward(uint8 level) pure internal returns(uint256 rewardLevel) { if (level == 0) return 5; else if (level == 1) return 2; else return 1; } function setDepositTokens(address[] calldata userAddress, uint256[] calldata amountTokens) onlyAdminOrOwner external { uint256 len = userAddress.length; require(len == amountTokens.length); for(uint16 i = 0;i < len; i++) { investors[userAddress[i]].totalVMR = amountTokens[i]; } } function getRefByUser(address addr) view public returns (address) { return refList[addr]; } function withdrawReward(InvestorData storage data) internal { uint256 reward; require(data.totalVMR >= MinBalanceVMR, "Not enough VMR"); require(data.funds > 0); // 20% per 30 days reward = data.pendingReward + data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days); data.pendingReward = 0; data.lastDatetime = block.timestamp; uint256 maxRewardReferal = reward * 15 / 100; // 15% to ref reward = reward * 85 / 100; // 85% to user uint256 restReferralFunds = maxRewardReferal; address ref = refList[msg.sender]; require(ref != address(0)); for(uint8 i = 0; i < 10;i++) { uint256 rewardForRef = maxRewardReferal * getLevelReward(i) / 100; restReferralFunds = restReferralFunds.sub(rewardForRef); investors[ref].pendingReferralReward += rewardForRef; ref = refList[ref]; if (ref == address(0)) break; } if (restReferralFunds > 0) { partnerContract.takeEth(supportAddress, restReferralFunds); } data.totalProfit = data.totalProfit.add(reward); data.totalReferralProfit = data.totalReferralProfit.add(data.pendingReferralReward); uint256 _pendingReferralReward = data.pendingReferralReward; data.pendingReferralReward = 0; address payable payableUser = address(uint160(msg.sender)); if (reward > 0) { partnerContract.takeEth(payableUser, reward); emit Reward(payableUser, reward); } if (_pendingReferralReward > 0) { partnerContract.takeEth(payableUser, _pendingReferralReward); emit ReferralReward(payableUser, _pendingReferralReward); } } function () payable external { if (msg.sender == address(partnerContract)) return; require(msg.sender == tx.origin); // prevent bots to interact with contract if (msg.sender == owner) return; InvestorData storage data = investors[msg.sender]; if (msg.value == 0) { withdrawReward(data); return; } require(msg.value >= 0.1 ether); address ref; if (refList[msg.sender] != address(0)) { ref = refList[msg.sender]; } else { require(msg.data.length == 20, "first interaction with contract should be with referral address"); ref = bytesToAddress(msg.data); require(ref != msg.sender, "You can't ref yourself"); refList[msg.sender] = ref; } supportAddress.transfer(msg.value.mul(5).div(100)); // 5% if (data.funds > 0) data.pendingReward += data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days); data.lastDatetime = block.timestamp; data.funds = data.funds.add(msg.value * 95 / 100); // 95% partnerContract.giveBackEth.value(address(this).balance)(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReferralReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admins","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newMinBalance","type":"uint256"}],"name":"changeMinBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"changeOwnerCandidate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newSupportAddress","type":"address"}],"name":"changeSupportAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dateUntilFundsLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsLockedtoWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getInfo","outputs":[{"internalType":"uint256","name":"totalFunds","type":"uint256"},{"internalType":"uint256","name":"pendingReward","type":"uint256"},{"internalType":"uint256","name":"totalProfit","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"},{"internalType":"uint256","name":"totalVMR","type":"uint256"},{"internalType":"uint256","name":"minVMR","type":"uint256"},{"internalType":"uint256","name":"totalReferralProfit","type":"uint256"},{"internalType":"uint256","name":"pendingReferralReward","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRefByUser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lockFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"bool","name":"activate","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"userAddress","type":"address[]"},{"internalType":"uint256[]","name":"amountTokens","type":"uint256[]"}],"name":"setDepositTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600380546001600160a01b031990811673063b98a414eaa1d4a5d4fc235a22db14271990241790915560048054821673e1f5c6fd86628e299955a84f44e2dfca47aaaaa417905568056bc75e2d63100000600255600580548216734b7b1878338251874ad8dace56d198e31278676d90811790915560018054831690911781556000805490921633178255736ecb917afd0611f8ab161f992a12c82e29dc533c90915260086020527fae8f92d0e5c63b69135da2167796ed3663113eacdb51447f8421b3ca00c9f925805460ff191690911790556111e8806100f46000396000f3fe6080604052600436106100f35760003560e01c806389c3ef6c1161008a578063d091b55011610059578063d091b550146106d1578063ebbc4965146106e6578063f8800fae146106fb578063ffdd5cf114610710576100f3565b806389c3ef6c146106285780638c8f95fb1461064f5780638da5cb5b14610679578063a64b6e5f1461068e576100f3565b8063524b50e5116100c6578063524b50e5146104a4578063561a01b8146104f35780635aaf4166146105265780635b14319c14610559576100f3565b80632e1a7d4d146103ce578063429b62e5146103f85780634b0bddd21461043f5780634ea18fab1461047a575b6004546001600160a01b031633141561010b576103cc565b33321461011757600080fd5b6000546001600160a01b031633141561012f576103cc565b336000908152600660205260409020346101525761014c81610784565b506103cc565b67016345785d8a000034101561016757600080fd5b336000908152600760205260408120546001600160a01b0316156101a45750336000908152600760205260409020546001600160a01b03166102a5565b601436146101e35760405162461bcd60e51b815260040180806020018281038252603f815260200180611154603f913960400191505060405180910390fd5b6102236000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b0992505050565b90506001600160a01b03811633141561027c576040805162461bcd60e51b81526020600482015260166024820152752cb7ba9031b0b713ba103932b3103cb7bab939b2b63360511b604482015290519081900360640190fd5b33600090815260076020526040902080546001600160a01b0319166001600160a01b0383161790555b600580546001600160a01b0316906108fc906102db906064906102cf90349063ffffffff610b1016565b9063ffffffff610b7216565b6040518115909202916000818181858888f19350505050158015610303573d6000803e3d6000fd5b508154156103515761034562278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b9063ffffffff610b1016565b60048301805490910190555b426001830155815461036990606434605f0204610bdc565b8255600480546040805163ab7c63f160e01b815290516001600160a01b039092169263ab7c63f1924792808301926000929182900301818588803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050505050505b005b3480156103da57600080fd5b506103cc600480360360208110156103f157600080fd5b5035610c36565b34801561040457600080fd5b5061042b6004803603602081101561041b57600080fd5b50356001600160a01b0316610cae565b604080519115158252519081900360200190f35b34801561044b57600080fd5b506103cc6004803603604081101561046257600080fd5b506001600160a01b0381351690602001351515610cc3565b34801561048657600080fd5b506103cc6004803603602081101561049d57600080fd5b5035610d02565b3480156104b057600080fd5b506104d7600480360360208110156104c757600080fd5b50356001600160a01b0316610d25565b604080516001600160a01b039092168252519081900360200190f35b3480156104ff57600080fd5b506103cc6004803603602081101561051657600080fd5b50356001600160a01b0316610d46565b34801561053257600080fd5b506103cc6004803603602081101561054957600080fd5b50356001600160a01b0316610d7c565b34801561056557600080fd5b506103cc6004803603604081101561057c57600080fd5b81019060208101813564010000000081111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111640100000000831117156105cb57600080fd5b9193909290916020810190356401000000008111156105e957600080fd5b8201836020820111156105fb57600080fd5b8035906020019184602083028401116401000000008311171561061d57600080fd5b509092509050610dc5565b34801561063457600080fd5b5061063d610e73565b60408051918252519081900360200190f35b34801561065b57600080fd5b506103cc6004803603602081101561067257600080fd5b5035610e79565b34801561068557600080fd5b506104d7610eb3565b34801561069a57600080fd5b506103cc600480360360608110156106b157600080fd5b506001600160a01b03813581169160208101359091169060400135610ec2565b3480156106dd57600080fd5b506104d7610f4a565b3480156106f257600080fd5b506103cc610f59565b34801561070757600080fd5b5061063d610f94565b34801561071c57600080fd5b506107436004803603602081101561073357600080fd5b50356001600160a01b0316610f9a565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6000600254826003015410156107d2576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b737bab3b4102b26a960911b604482015290519081900360640190fd5b81546107dd57600080fd5b61080b62278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b600483018054600091829055426001860155338252600760205260409091205460646055939092019283028290049350600f909202049081906001600160a01b03168061085757600080fd5b60005b600a8160ff1610156108d657600060646108738361108b565b86028161087c57fe5b04905061088f848263ffffffff6110b916565b6001600160a01b0393841660009081526006602081815260408084209092018054860190556007905290205490945090921691826108cd57506108d6565b5060010161085a565b50811561094e5760048054600554604080516306d89ffb60e41b81526001600160a01b03928316948101949094526024840186905251911691636d89ffb091604480830192600092919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b505050505b6002850154610963908563ffffffff610bdc16565b6002860155600685015460058601546109819163ffffffff610bdc16565b60058601556006850180546000909155338515610a495760048054604080516306d89ffb60e41b81526001600160a01b0385811694820194909452602481018a905290519290911691636d89ffb09160448082019260009290919082900301818387803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040805189815290516001600160a01b03851693507f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992509081900360200190a25b8115610b005760048054604080516306d89ffb60e41b81526001600160a01b03858116948201949094526024810186905290519290911691636d89ffb09160448082019260009290919082900301818387803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b50506040805185815290516001600160a01b03851693507fe7e15037b577ae985e6019722e882f64c5c6a2124ccc573bab8f79bda0a0c55192509081900360200190a25b50505050505050565b6014015190565b600082610b1f57506000610b6c565b82820282848281610b2c57fe5b0414610b695760405162461bcd60e51b81526004018080602001828103825260218152602001806111936021913960400191505060405180910390fd5b90505b92915050565b6000808211610bc8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610bd357fe5b04949350505050565b600082820183811015610b69576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610c4a57fe5b42600a541115610c7157600954610c67478363ffffffff6110b916565b11610c7157600080fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610caa573d6000803e3d6000fd5b5050565b60086020526000908152604090205460ff1681565b6000546001600160a01b03163314610cd757fe5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1657fe5b670de0b6b3a764000002600255565b6001600160a01b03808216600090815260076020526040902054165b919050565b6000546001600160a01b03163314610d5a57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9057fe5b6001600160a01b038116610da357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526008602052604090205460ff1680610ded57506000546001600160a01b031633145b610df657600080fd5b82818114610e0357600080fd5b60005b818161ffff161015610e6b5783838261ffff16818110610e2257fe5b905060200201356006600088888561ffff16818110610e3d57fe5b602090810292909201356001600160a01b031683525081019190915260400160002060030155600101610e06565b505050505050565b60095481565b6000546001600160a01b03163314610e8d57fe5b42600a541115610ea5576009548111610ea557600080fd5b60095562278d004201600a55565b6000546001600160a01b031681565b6000546001600160a01b03163314610ed657fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f3657600080fd5b505af1158015610b00573d6000803e3d6000fd5b6001546001600160a01b031681565b6001546001600160a01b03163314610f7057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600a5481565b60025460009081908190479082908180610fb2611116565b506001600160a01b038916600090815260066020818152604092839020835160e08101855281548082526001830154938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460a08501529091015460c0830152985088156110635761105162278d006102cf8360200151420361033960646102cf60148860000151610b1090919063ffffffff16565b60808201510197506064605589020497505b80604001519650806060015194508060a0015192508060c00151915050919395975091939597565b600060ff821661109d57506005610d41565b8160ff16600114156110b157506002610d41565b506001610d41565b600082821115611110576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe666972737420696e746572616374696f6e207769746820636f6e74726163742073686f756c64206265207769746820726566657272616c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582035d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d64736f6c63430005110032
Deployed Bytecode
0x6080604052600436106100f35760003560e01c806389c3ef6c1161008a578063d091b55011610059578063d091b550146106d1578063ebbc4965146106e6578063f8800fae146106fb578063ffdd5cf114610710576100f3565b806389c3ef6c146106285780638c8f95fb1461064f5780638da5cb5b14610679578063a64b6e5f1461068e576100f3565b8063524b50e5116100c6578063524b50e5146104a4578063561a01b8146104f35780635aaf4166146105265780635b14319c14610559576100f3565b80632e1a7d4d146103ce578063429b62e5146103f85780634b0bddd21461043f5780634ea18fab1461047a575b6004546001600160a01b031633141561010b576103cc565b33321461011757600080fd5b6000546001600160a01b031633141561012f576103cc565b336000908152600660205260409020346101525761014c81610784565b506103cc565b67016345785d8a000034101561016757600080fd5b336000908152600760205260408120546001600160a01b0316156101a45750336000908152600760205260409020546001600160a01b03166102a5565b601436146101e35760405162461bcd60e51b815260040180806020018281038252603f815260200180611154603f913960400191505060405180910390fd5b6102236000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b0992505050565b90506001600160a01b03811633141561027c576040805162461bcd60e51b81526020600482015260166024820152752cb7ba9031b0b713ba103932b3103cb7bab939b2b63360511b604482015290519081900360640190fd5b33600090815260076020526040902080546001600160a01b0319166001600160a01b0383161790555b600580546001600160a01b0316906108fc906102db906064906102cf90349063ffffffff610b1016565b9063ffffffff610b7216565b6040518115909202916000818181858888f19350505050158015610303573d6000803e3d6000fd5b508154156103515761034562278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b9063ffffffff610b1016565b60048301805490910190555b426001830155815461036990606434605f0204610bdc565b8255600480546040805163ab7c63f160e01b815290516001600160a01b039092169263ab7c63f1924792808301926000929182900301818588803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050505050505b005b3480156103da57600080fd5b506103cc600480360360208110156103f157600080fd5b5035610c36565b34801561040457600080fd5b5061042b6004803603602081101561041b57600080fd5b50356001600160a01b0316610cae565b604080519115158252519081900360200190f35b34801561044b57600080fd5b506103cc6004803603604081101561046257600080fd5b506001600160a01b0381351690602001351515610cc3565b34801561048657600080fd5b506103cc6004803603602081101561049d57600080fd5b5035610d02565b3480156104b057600080fd5b506104d7600480360360208110156104c757600080fd5b50356001600160a01b0316610d25565b604080516001600160a01b039092168252519081900360200190f35b3480156104ff57600080fd5b506103cc6004803603602081101561051657600080fd5b50356001600160a01b0316610d46565b34801561053257600080fd5b506103cc6004803603602081101561054957600080fd5b50356001600160a01b0316610d7c565b34801561056557600080fd5b506103cc6004803603604081101561057c57600080fd5b81019060208101813564010000000081111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111640100000000831117156105cb57600080fd5b9193909290916020810190356401000000008111156105e957600080fd5b8201836020820111156105fb57600080fd5b8035906020019184602083028401116401000000008311171561061d57600080fd5b509092509050610dc5565b34801561063457600080fd5b5061063d610e73565b60408051918252519081900360200190f35b34801561065b57600080fd5b506103cc6004803603602081101561067257600080fd5b5035610e79565b34801561068557600080fd5b506104d7610eb3565b34801561069a57600080fd5b506103cc600480360360608110156106b157600080fd5b506001600160a01b03813581169160208101359091169060400135610ec2565b3480156106dd57600080fd5b506104d7610f4a565b3480156106f257600080fd5b506103cc610f59565b34801561070757600080fd5b5061063d610f94565b34801561071c57600080fd5b506107436004803603602081101561073357600080fd5b50356001600160a01b0316610f9a565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6000600254826003015410156107d2576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b737bab3b4102b26a960911b604482015290519081900360640190fd5b81546107dd57600080fd5b61080b62278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b600483018054600091829055426001860155338252600760205260409091205460646055939092019283028290049350600f909202049081906001600160a01b03168061085757600080fd5b60005b600a8160ff1610156108d657600060646108738361108b565b86028161087c57fe5b04905061088f848263ffffffff6110b916565b6001600160a01b0393841660009081526006602081815260408084209092018054860190556007905290205490945090921691826108cd57506108d6565b5060010161085a565b50811561094e5760048054600554604080516306d89ffb60e41b81526001600160a01b03928316948101949094526024840186905251911691636d89ffb091604480830192600092919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b505050505b6002850154610963908563ffffffff610bdc16565b6002860155600685015460058601546109819163ffffffff610bdc16565b60058601556006850180546000909155338515610a495760048054604080516306d89ffb60e41b81526001600160a01b0385811694820194909452602481018a905290519290911691636d89ffb09160448082019260009290919082900301818387803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040805189815290516001600160a01b03851693507f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992509081900360200190a25b8115610b005760048054604080516306d89ffb60e41b81526001600160a01b03858116948201949094526024810186905290519290911691636d89ffb09160448082019260009290919082900301818387803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b50506040805185815290516001600160a01b03851693507fe7e15037b577ae985e6019722e882f64c5c6a2124ccc573bab8f79bda0a0c55192509081900360200190a25b50505050505050565b6014015190565b600082610b1f57506000610b6c565b82820282848281610b2c57fe5b0414610b695760405162461bcd60e51b81526004018080602001828103825260218152602001806111936021913960400191505060405180910390fd5b90505b92915050565b6000808211610bc8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610bd357fe5b04949350505050565b600082820183811015610b69576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610c4a57fe5b42600a541115610c7157600954610c67478363ffffffff6110b916565b11610c7157600080fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610caa573d6000803e3d6000fd5b5050565b60086020526000908152604090205460ff1681565b6000546001600160a01b03163314610cd757fe5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1657fe5b670de0b6b3a764000002600255565b6001600160a01b03808216600090815260076020526040902054165b919050565b6000546001600160a01b03163314610d5a57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9057fe5b6001600160a01b038116610da357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526008602052604090205460ff1680610ded57506000546001600160a01b031633145b610df657600080fd5b82818114610e0357600080fd5b60005b818161ffff161015610e6b5783838261ffff16818110610e2257fe5b905060200201356006600088888561ffff16818110610e3d57fe5b602090810292909201356001600160a01b031683525081019190915260400160002060030155600101610e06565b505050505050565b60095481565b6000546001600160a01b03163314610e8d57fe5b42600a541115610ea5576009548111610ea557600080fd5b60095562278d004201600a55565b6000546001600160a01b031681565b6000546001600160a01b03163314610ed657fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f3657600080fd5b505af1158015610b00573d6000803e3d6000fd5b6001546001600160a01b031681565b6001546001600160a01b03163314610f7057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600a5481565b60025460009081908190479082908180610fb2611116565b506001600160a01b038916600090815260066020818152604092839020835160e08101855281548082526001830154938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460a08501529091015460c0830152985088156110635761105162278d006102cf8360200151420361033960646102cf60148860000151610b1090919063ffffffff16565b60808201510197506064605589020497505b80604001519650806060015194508060a0015192508060c00151915050919395975091939597565b600060ff821661109d57506005610d41565b8160ff16600114156110b157506002610d41565b506001610d41565b600082821115611110576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe666972737420696e746572616374696f6e207769746820636f6e74726163742073686f756c64206265207769746820726566657272616c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582035d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d64736f6c63430005110032
Deployed Bytecode Sourcemap
10559:8479:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:15;;-1:-1:-1;;;;;17794:15:0;17772:10;:38;17768:51;;;17812:7;;17768:51;17847:10;17861:9;17847:23;17839:32;;;;;;17944:5;;-1:-1:-1;;;;;17944:5:0;17930:10;:19;17926:32;;;17951:7;;17926:32;18008:10;17970:25;17998:21;;;:9;:21;;;;;18044:9;18040:88;;18075:20;18090:4;18075:14;:20::i;:::-;18110:7;;;18040:88;18169:9;18156;:22;;18148:31;;;;;;18234:10;18200:11;18226:19;;;:7;:19;;;;;;-1:-1:-1;;;;;18226:19:0;:33;18222:392;;-1:-1:-1;18299:10:0;18291:19;;;;:7;:19;;;;;;-1:-1:-1;;;;;18291:19:0;18222:392;;;18370:2;18351:8;:21;18343:97;;;;-1:-1:-1;;;18343:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18461:24;18476:8;;18461:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18461:14:0;;-1:-1:-1;;;18461:24:0:i;:::-;18455:30;-1:-1:-1;;;;;;18508:17:0;;18515:10;18508:17;;18500:52;;;;;-1:-1:-1;;;18500:52:0;;;;;;;;;;;;-1:-1:-1;;;18500:52:0;;;;;;;;;;;;;;;18585:10;18577:19;;;;:7;:19;;;;;:25;;-1:-1:-1;;;;;;18577:25:0;-1:-1:-1;;;;;18577:25:0;;;;;18222:392;18634:14;;;-1:-1:-1;;;;;18634:14:0;;:50;;18658:25;;18679:3;;18658:16;;:9;;:16;:13;:16;:::i;:::-;:20;:25;:20;:25;:::i;:::-;18634:50;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18716:10:0;;:14;18712:123;;18754:81;18827:7;18754:68;18804:4;:17;;;18786:15;:35;18754:27;18777:3;18754:18;18769:2;18754:4;:10;;;:14;;:18;;;;:::i;:27::-;:31;:68;:31;:68;:::i;:81::-;18732:18;;;:103;;;;;;;18712:123;18866:15;18846:17;;;:35;18905:10;;:36;;18937:3;18920:9;18932:2;18920:14;:20;18905:14;:36::i;:::-;18892:49;;18969:15;;;:58;;;-1:-1:-1;;;18969:58:0;;;;-1:-1:-1;;;;;18969:15:0;;;;:27;;19003:21;;18969:58;;;;18892:10;;18969:58;;;;;;19003:21;18969:15;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;18969:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18969:58:0;;;;;17723:1312;;;10559:8479;12798:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12798:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12798:202:0;;:::i;11228:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11228:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11228:38:0;-1:-1:-1;;;;;11228:38:0;;:::i;:::-;;;;;;;;;;;;;;;;;;12589:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12589:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12589:114:0;;;;;;;;;;:::i;13566:123::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13566:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13566:123:0;;:::i;15613:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15613:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15613:105:0;-1:-1:-1;;;;;15613:105:0;;:::i;:::-;;;;-1:-1:-1;;;;;15613:105:0;;;;;;;;;;;;;;13305:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13305:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13305:120:0;-1:-1:-1;;;;;13305:120:0;;:::i;12114:202::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12114:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12114:202:0;-1:-1:-1;;;;;12114:202:0;;:::i;15265:336::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15265:336:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15265:336:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15265:336:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15265:336:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15265:336:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15265:336:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15265:336:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;15265:336:0;;-1:-1:-1;15265:336:0;-1:-1:-1;15265:336:0;:::i;12711:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12711:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;13008:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13008:289:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13008:289:0;;:::i;10624:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10624:28:0;;;:::i;13922:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13922:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13922:155:0;;;;;;;;;;;;;;;;;:::i;10659:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10659:40:0;;;:::i;13433:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13433:125:0;;;:::i;12754:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12754:35:0;;;:::i;14085:918::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14085:918:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14085:918:0;-1:-1:-1;;;;;14085:918:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15730:1981;15801:14;15861:13;;15844:4;:13;;;:30;;15836:57;;;;;-1:-1:-1;;;15836:57:0;;;;;;;;;;;;-1:-1:-1;;;15836:57:0;;;;;;;;;;;;;;;15922:10;;15914:23;;;;;;16016:81;16089:7;16016:68;16066:4;:17;;;16048:15;:35;16016:27;16039:3;16016:18;16031:2;16016:4;:10;;;:14;;:18;;;;:::i;:81::-;15995:18;;;;;16129:1;16108:22;;;;16161:15;-1:-1:-1;16141:17:0;;:35;16415:10;16407:19;;:7;:19;;;;;;;16230:3;16276:2;15995:102;;;;16267:11;;;:17;;;;-1:-1:-1;16225:2:0;16216:11;;;:17;;;;-1:-1:-1;;;;;16407:19:0;;16437:26;;;;;;16488:7;16484:350;16505:2;16501:1;:6;;;16484:350;;;16528:20;16590:3;16570:17;16585:1;16570:14;:17::i;:::-;16551:16;:36;:42;;;;;;;-1:-1:-1;16628:35:0;:17;16551:42;16628:35;:21;:35;:::i;:::-;-1:-1:-1;;;;;16680:14:0;;;;;;;:9;:14;;;;;;;;:36;;;:52;;;;;;16767:7;:12;;;;;16608:55;;-1:-1:-1;16767:12:0;;;;16798:17;16794:28;;16817:5;;;16794:28;-1:-1:-1;16508:3:0;;16484:350;;;-1:-1:-1;16858:21:0;;16854:112;;16896:15;;;16920:14;;16896:58;;;-1:-1:-1;;;16896:58:0;;-1:-1:-1;;;;;16920:14:0;;;16896:58;;;;;;;;;;;;;;:15;;;:23;;:58;;;;;:15;;:58;;;;;;;:15;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;16896:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16896:58:0;;;;16854:112;17017:16;;;;:28;;17038:6;17017:28;:20;:28;:::i;:::-;16998:16;;;:47;17112:26;;;;17083:24;;;;:56;;;:28;:56;:::i;:::-;17056:24;;;:83;17193:26;;;;;17160:30;17230;;;17327:10;17364;;17360:134;;17391:15;;;:44;;;-1:-1:-1;;;17391:44:0;;-1:-1:-1;;;;;17391:44:0;;;;;;;;;;;;;;;;;;:15;;;;;:23;;:44;;;;;:15;;:44;;;;;;;;:15;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17391:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17455:27:0;;;;;;;;-1:-1:-1;;;;;17455:27:0;;;-1:-1:-1;17455:27:0;;-1:-1:-1;17455:27:0;;;;;;;;17360:134;17518:26;;17514:190;;17561:15;;;:60;;;-1:-1:-1;;;17561:60:0;;-1:-1:-1;;;;;17561:60:0;;;;;;;;;;;;;;;;;;:15;;;;;:23;;:60;;;;;:15;;:60;;;;;;;;:15;;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;17561:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17641:51:0;;;;;;;;-1:-1:-1;;;;;17641:51:0;;;-1:-1:-1;17641:51:0;;-1:-1:-1;17641:51:0;;;;;;;;17514:190;15730:1981;;;;;;;:::o;13697:165::-;13840:2;13832:11;13826:18;;13803:52::o;1174:470::-;1232:7;1476:6;1472:47;;-1:-1:-1;1506:1:0;1499:8;;1472:47;1543:5;;;1547:1;1543;:5;:1;1567:5;;;;;:10;1559:56;;;;-1:-1:-1;;;1559:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1635:1;-1:-1:-1;1174:470:0;;;;;:::o;2112:333::-;2170:7;2269:1;2265;:5;2257:44;;;;;-1:-1:-1;;;2257:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:9;2328:1;2324;:5;;;;;;;2112:333;-1:-1:-1;;;;2112:333:0:o;283:181::-;341:7;373:5;;;397:6;;;;389:46;;;;;-1:-1:-1;;;389:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12798:202;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;12888:3;12865:20;;:26;12861:98;;;12937:21;;12901:33;:21;12927:6;12901:33;:25;:33;:::i;:::-;:57;12893:66;;;;;;12970:5;;;:22;;-1:-1:-1;;;;;12970:5:0;;;;:22;;;;;12985:6;;12970:22;:5;:22;12985:6;12970:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12970:22:0;12798:202;:::o;11228:38::-;;;;;;;;;;;;;;;:::o;12589:114::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;-1:-1:-1;;;;;12668:16:0;;;;;;;;:6;:16;;;;;:27;;-1:-1:-1;;12668:27:0;;;;;;;;;;12589:114::o;13566:123::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13675:6;13659:22;13643:13;:38;13566:123::o;15613:105::-;-1:-1:-1;;;;;15697:13:0;;;15670:7;15697:13;;;:7;:13;;;;;;;15613:105;;;;:::o;13305:120::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13389:17;:28;;-1:-1:-1;;;;;;13389:28:0;-1:-1:-1;;;;;13389:28:0;;;;;;;;;;13305:120::o;12114:202::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;-1:-1:-1;;;;;12213:31:0;;12205:40;;;;;;12256:14;:52;;-1:-1:-1;;;;;;12256:52:0;-1:-1:-1;;;;;12256:52:0;;;;;;;;;;12114:202::o;15265:336::-;11426:10;11419:18;;;;:6;:18;;;;;;;;;:41;;-1:-1:-1;11455:5:0;;-1:-1:-1;;;;;11455:5:0;11441:10;:19;11419:41;11411:50;;;;;;15407:11;15444:26;;;15436:35;;;;;;15488:8;15484:110;15505:3;15501:1;:7;;;15484:110;;;15567:12;;15580:1;15567:15;;;;;;;;;;;;;;;15530:9;:25;15540:11;;15552:1;15540:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15540:14:0;15530:25;;-1:-1:-1;15530:25:0;;;;;;;;-1:-1:-1;15530:25:0;:34;;:52;15510:3;;15484:110;;;;11472:1;15265:336;;;;:::o;12711:36::-;;;;:::o;13008:289::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13131:3;13108:20;;:26;13104:98;;;13168:21;;13159:6;:30;13151:39;;;;;;13212:21;:30;13282:7;13276:3;:13;13253:20;:36;13008:289::o;10624:28::-;;;-1:-1:-1;;;;;10624:28:0;;:::o;13922:155::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;14038:5;-1:-1:-1;;;;;14027:26:0;;14054:6;14062;14027:42;;;;;;;;;;;;;-1:-1:-1;;;;;14027:42:0;-1:-1:-1;;;;;14027:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14027:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;10659:40:0;;;-1:-1:-1;;;;;10659:40:0;;:::o;13433:125::-;13496:17;;-1:-1:-1;;;;;13496:17:0;13482:10;:31;13474:40;;;;;;13533:17;;;13525:25;;-1:-1:-1;;;;;;13525:25:0;-1:-1:-1;;;;;13533:17:0;;;13525:25;;;;;;13433:125::o;12754:35::-;;;;:::o;14085:918::-;14399:13;;14141:18;;;;;;14358:21;;14141:18;;;;14423:24;;:::i;:::-;-1:-1:-1;;;;;;14450:19:0;;;;;;:9;:19;;;;;;;;;14423:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14518:14:0;;14514:244;;14586:81;14659:7;14586:68;14636:4;:17;;;14618:15;:35;14586:27;14609:3;14586:18;14601:2;14586:4;:10;;;:14;;:18;;;;:::i;:81::-;14565:18;;;;:102;;-1:-1:-1;14719:3:0;14714:2;14698:18;;:24;14682:40;;14514:244;14782:4;:16;;;14768:30;;14820:4;:13;;;14809:24;;14910:4;:24;;;14888:46;;14969:4;:26;;;14945:50;;14085:918;;;;;;;;;;:::o;15011:242::-;15070:19;15106:10;;;15102:143;;-1:-1:-1;15139:1:0;15132:8;;15102:143;15161:5;:10;;15170:1;15161:10;15157:88;;;-1:-1:-1;15193:1:0;15186:8;;15157:88;-1:-1:-1;15244:1:0;15237:8;;739:184;797:7;830:1;825;:6;;817:49;;;;;-1:-1:-1;;;817:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;889:5:0;;;739:184::o;10559:8479::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://35d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.