Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 31 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw All | 11769183 | 1414 days ago | IN | 0 ETH | 0.05112391 | ||||
Withdraw | 11619565 | 1437 days ago | IN | 0 ETH | 0.02952948 | ||||
Withdraw All | 11527233 | 1451 days ago | IN | 0 ETH | 0.0036137 | ||||
Withdraw All | 11527233 | 1451 days ago | IN | 0 ETH | 0.01712985 | ||||
Deposit | 11496449 | 1456 days ago | IN | 0 ETH | 0.05157724 | ||||
Deposit | 11456148 | 1462 days ago | IN | 0 ETH | 0.0256897 | ||||
Deposit | 11444755 | 1464 days ago | IN | 0 ETH | 0.00456305 | ||||
Withdraw All | 11359426 | 1477 days ago | IN | 0 ETH | 0.02586132 | ||||
Deposit | 11314906 | 1484 days ago | IN | 0 ETH | 0.05254713 | ||||
Deposit | 11305517 | 1485 days ago | IN | 0 ETH | 0.02326988 | ||||
Deposit | 11282638 | 1489 days ago | IN | 0 ETH | 0.03888412 | ||||
Deposit | 11281657 | 1489 days ago | IN | 0 ETH | 1.39817724 | ||||
Deposit | 11281546 | 1489 days ago | IN | 0 ETH | 0.0117443 | ||||
Withdraw All | 11229613 | 1497 days ago | IN | 0 ETH | 0.01025609 | ||||
Withdraw All | 11215608 | 1499 days ago | IN | 0 ETH | 0.00926714 | ||||
Deposit | 11215602 | 1499 days ago | IN | 0 ETH | 0.01012112 | ||||
Withdraw All | 11196946 | 1502 days ago | IN | 0 ETH | 0.01745655 | ||||
Deposit | 11189785 | 1503 days ago | IN | 0 ETH | 0.00933971 | ||||
Deposit | 11189585 | 1503 days ago | IN | 0 ETH | 0.01485436 | ||||
Deposit | 11184881 | 1504 days ago | IN | 0 ETH | 0.00628863 | ||||
Deposit | 11182702 | 1504 days ago | IN | 0 ETH | 0.00545966 | ||||
Withdraw All | 11181618 | 1504 days ago | IN | 0 ETH | 0.00365869 | ||||
Deposit | 11181469 | 1504 days ago | IN | 0 ETH | 0.00424907 | ||||
Withdraw | 11178784 | 1504 days ago | IN | 0 ETH | 0.00561214 | ||||
Deposit | 11178647 | 1505 days ago | IN | 0 ETH | 0.01301845 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
VaultUsdt
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-29 */ pragma solidity ^0.5.16; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Context { 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return _msgSender() == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance")); } } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } 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; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } 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"); } } library AddrArrayLib { using AddrArrayLib for Addresses; struct Addresses { address[] _items; } /** * @notice push an address to the array * @dev if the address already exists, it will not be added again * @param self Storage array containing address type variables * @param element the element to add in the array */ function pushAddress(Addresses storage self, address element) internal { if (!exists(self, element)) { self._items.push(element); } } /** * @notice remove an address from the array * @dev finds the element, swaps it with the last element, and then deletes it; * returns a boolean whether the element was found and deleted * @param self Storage array containing address type variables * @param element the element to remove from the array */ function removeAddress(Addresses storage self, address element) internal returns (bool) { for (uint i = 0; i < self.size(); i++) { if (self._items[i] == element) { self._items[i] = self._items[self.size() - 1]; self._items.pop(); return true; } } return false; } /** * @notice get the address at a specific index from array * @dev revert if the index is out of bounds * @param self Storage array containing address type variables * @param index the index in the array */ function getAddressAtIndex(Addresses storage self, uint256 index) internal view returns (address) { require(index < size(self), "the index is out of bounds"); return self._items[index]; } /** * @notice get the size of the array * @param self Storage array containing address type variables */ function size(Addresses storage self) internal view returns (uint256) { return self._items.length; } /** * @notice check if an element exist in the array * @param self Storage array containing address type variables * @param element the element to check if it exists in the array */ function exists(Addresses storage self, address element) internal view returns (bool) { for (uint i = 0; i < self.size(); i++) { if (self._items[i] == element) { return true; } } return false; } /** * @notice get the array * @param self Storage array containing address type variables */ function getAllAddresses(Addresses storage self) internal view returns(address[] memory) { return self._items; } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { 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(IERC20 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(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function callOptionalReturn(IERC20 token, bytes memory data) private { 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"); } } } interface Controller { function withdraw(address, uint) external; function balanceOf(address) external view returns (uint); function earn(address, uint) external; } contract VaultUsdt is ERC20, ERC20Detailed { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; using AddrArrayLib for AddrArrayLib.Addresses; IERC20 public token; uint public min = 9500; uint public constant max = 10000; uint public earnLowerlimit; //池内空余资金到这个值就自动earn address public governance; address public controller; AddrArrayLib.Addresses userList; constructor (address _token, uint _earnLowerlimit) public ERC20Detailed( string(abi.encodePacked("Farmland ", ERC20Detailed(_token).name())), string(abi.encodePacked("farm", ERC20Detailed(_token).symbol())), ERC20Detailed(_token).decimals() ) { token = IERC20(_token); governance = tx.origin; controller = 0x67D320cf7148D69058477B2b86991D2C1dE60E86; earnLowerlimit = _earnLowerlimit; } function balance() public view returns (uint) { return token.balanceOf(address(this)) .add(Controller(controller).balanceOf(address(token))); } function setMin(uint _min) external { require(msg.sender == governance, "!governance"); min = _min; } function setGovernance(address _governance) public { require(msg.sender == governance, "!governance"); governance = _governance; } function setController(address _controller) public { require(msg.sender == governance, "!governance"); controller = _controller; } function setEarnLowerlimit(uint256 _earnLowerlimit) public{ require(msg.sender == governance, "!governance"); earnLowerlimit = _earnLowerlimit; } // Custom logic in here for how much the vault allows to be borrowed // Sets minimum required on-hand to keep small withdrawals cheap function available() public view returns (uint) { return token.balanceOf(address(this)).mul(min).div(max); } function earn() public { uint _bal = available(); token.safeTransfer(controller, _bal); Controller(controller).earn(address(token), _bal); } function depositAll() external { deposit(token.balanceOf(msg.sender)); } function getUsers() public view returns (address[] memory) { return userList.getAllAddresses(); } function deposit(uint _amount) public { uint _pool = balance(); uint _before = token.balanceOf(address(this)); token.safeTransferFrom(msg.sender, address(this), _amount); uint _after = token.balanceOf(address(this)); _amount = _after.sub(_before); // Additional check for deflationary tokens uint shares = 0; if (totalSupply() == 0) { shares = _amount; } else { shares = (_amount.mul(totalSupply())).div(_pool); } _mint(msg.sender, shares); userList.pushAddress(msg.sender); if (token.balanceOf(address(this))>earnLowerlimit){ earn(); } } function withdrawAll() external { withdraw(balanceOf(msg.sender)); } // No rebalance implementation for lower fees and faster swaps function withdraw(uint _shares) public { uint _max = balanceOf(msg.sender); uint r = (balance().mul(_shares)).div(totalSupply()); _burn(msg.sender, _shares); // Check balance uint b = token.balanceOf(address(this)); if (b < r) { uint _withdraw = r.sub(b); Controller(controller).withdraw(address(token), _withdraw); uint _after = token.balanceOf(address(this)); uint _diff = _after.sub(b); if (_diff < _withdraw) { r = b.add(_diff); } } if (_shares == _max) { userList.removeAddress(msg.sender); } token.safeTransfer(msg.sender, r); } function getPricePerFullShare() public view returns (uint) { return balance().mul(1e18).div(totalSupply()); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_earnLowerlimit","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"depositAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"earn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"earnLowerlimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPricePerFullShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"min","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_earnLowerlimit","type":"uint256"}],"name":"setEarnLowerlimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_min","type":"uint256"}],"name":"setMin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_shares","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405261251c6006553480156200001757600080fd5b5060405162003a8f38038062003a8f833981810160405260408110156200003d57600080fd5b8101908080519060200190929190805190602001909291905050508173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200009f57600080fd5b505afa158015620000b4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620000df57600080fd5b81019080805160405193929190846401000000008211156200010057600080fd5b838201915060208201858111156200011757600080fd5b82518660018202830111640100000000821117156200013557600080fd5b8083526020830192505050908051906020019080838360005b838110156200016b5780820151818401526020810190506200014e565b50505050905090810190601f168015620001995780820380516001836020036101000a031916815260200191505b5060405250505060405160200180807f4661726d6c616e6420000000000000000000000000000000000000000000000081525060090182805190602001908083835b60208310620002005780518252602082019150602081019050602083039250620001db565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528273ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200027b57600080fd5b505afa15801562000290573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620002bb57600080fd5b8101908080516040519392919084640100000000821115620002dc57600080fd5b83820191506020820185811115620002f357600080fd5b82518660018202830111640100000000821117156200031157600080fd5b8083526020830192505050908051906020019080838360005b83811015620003475780820151818401526020810190506200032a565b50505050905090810190601f168015620003755780820380516001836020036101000a031916815260200191505b5060405250505060405160200180807f6661726d0000000000000000000000000000000000000000000000000000000081525060040182805190602001908083835b60208310620003dc5780518252602082019150602081019050602083039250620003b7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045757600080fd5b505afa1580156200046c573d6000803e3d6000fd5b505050506040513d60208110156200048357600080fd5b81019080805190602001909291905050508260039080519060200190620004ac929190620005ca565b508160049080519060200190620004c5929190620005ca565b5080600560006101000a81548160ff021916908360ff16021790555050505081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555032600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507367d320cf7148d69058477b2b86991d2c1de60e86600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600781905550505062000679565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200060d57805160ff19168380011785556200063e565b828001600101855582156200063e579182015b828111156200063d57825182559160200191906001019062000620565b5b5090506200064d919062000651565b5090565b6200067691905b808211156200067257600081600090555060010162000658565b5090565b90565b61340680620006896000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80638e087c7811610104578063b69ef8a8116100a2578063de5f626811610071578063de5f6268146108a7578063f77c4791146108b1578063f8897945146108fb578063fc0c546a14610919576101d9565b8063b69ef8a8146107d9578063b6b55f25146107f7578063d389800f14610825578063dd62ed3e1461082f576101d9565b806395d89b41116100de57806395d89b4114610646578063a457c2d7146106c9578063a9059cbb1461072f578063ab033ea914610795576101d9565b80638e087c78146105b6578063909d3f4c146105d457806392eefe9b14610602576101d9565b8063395093511161017c5780636ac5db191161014b5780636ac5db191461051857806370a082311461053657806377c7b8fc1461058e578063853828b6146105ac576101d9565b8063395093511461041c57806345dc3dd81461048257806348a0d754146104b05780635aa6e675146104ce576101d9565b806318160ddd116101b857806318160ddd1461032657806323b872dd146103445780632e1a7d4d146103ca578063313ce567146103f8576101d9565b8062ce8e3e146101de57806306fdde031461023d578063095ea7b3146102c0575b600080fd5b6101e6610963565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561022957808201518184015260208101905061020e565b505050509050019250505060405180910390f35b610245610974565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028557808201518184015260208101905061026a565b50505050905090810190601f1680156102b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c600480360360408110156102d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a16565b604051808215151515815260200191505060405180910390f35b61032e610a34565b6040518082815260200191505060405180910390f35b6103b06004803603606081101561035a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3e565b604051808215151515815260200191505060405180910390f35b6103f6600480360360208110156103e057600080fd5b8101908080359060200190929190505050610b17565b005b610400610ecd565b604051808260ff1660ff16815260200191505060405180910390f35b6104686004803603604081101561043257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee4565b604051808215151515815260200191505060405180910390f35b6104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050610f97565b005b6104b8611064565b6040518082815260200191505060405180910390f35b6104d661116d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610520611193565b6040518082815260200191505060405180910390f35b6105786004803603602081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611199565b6040518082815260200191505060405180910390f35b6105966111e1565b6040518082815260200191505060405180910390f35b6105b4611223565b005b6105be611236565b6040518082815260200191505060405180910390f35b610600600480360360208110156105ea57600080fd5b810190808035906020019092919050505061123c565b005b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611309565b005b61064e611410565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610715600480360360408110156106df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114b2565b604051808215151515815260200191505060405180910390f35b61077b6004803603604081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061157f565b604051808215151515815260200191505060405180910390f35b6107d7600480360360208110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061159d565b005b6107e16116a4565b6040518082815260200191505060405180910390f35b6108236004803603602081101561080d57600080fd5b8101908080359060200190929190505050611892565b005b61082d611c1b565b005b6108916004803603604081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d7c565b6040518082815260200191505060405180910390f35b6108af611e03565b005b6108b9611ee7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610903611f0d565b6040518082815260200191505060405180910390f35b610921611f13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606061096f600a611f39565b905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a0c5780601f106109e157610100808354040283529160200191610a0c565b820191906000526020600020905b8154815290600101906020018083116109ef57829003601f168201915b5050505050905090565b6000610a2a610a23611fcb565b8484611fd3565b6001905092915050565b6000600254905090565b6000610a4b8484846121ca565b610b0c84610a57611fcb565b610b07856040518060600160405280602881526020016132f160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abd611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b611fd3565b600190509392505050565b6000610b2233611199565b90506000610b59610b31610a34565b610b4b85610b3d6116a4565b61254090919063ffffffff16565b6125c690919063ffffffff16565b9050610b653384612610565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d6020811015610c3057600080fd5b8101908080519060200190929190505050905081811015610e5c576000610c6082846127c890919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3fef3a3600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b505050506000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610de657600080fd5b505afa158015610dfa573d6000803e3d6000fd5b505050506040513d6020811015610e1057600080fd5b810190808051906020019092919050505090506000610e3884836127c890919063ffffffff16565b905082811015610e5857610e55818561281290919063ffffffff16565b94505b5050505b82841415610e7a57610e7833600a61289a90919063ffffffff16565b505b610ec73383600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a209092919063ffffffff16565b50505050565b6000600560009054906101000a900460ff16905090565b6000610f8d610ef1611fcb565b84610f888560016000610f02611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b611fd3565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060068190555050565b600061116861271061115a600654600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561111157600080fd5b505afa158015611125573d6000803e3d6000fd5b505050506040513d602081101561113b57600080fd5b810190808051906020019092919050505061254090919063ffffffff16565b6125c690919063ffffffff16565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061121e6111ee610a34565b611210670de0b6b3a76400006112026116a4565b61254090919063ffffffff16565b6125c690919063ffffffff16565b905090565b61123461122f33611199565b610b17565b565b60075481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114a85780601f1061147d576101008083540402835291602001916114a8565b820191906000526020600020905b81548152906001019060200180831161148b57829003601f168201915b5050505050905090565b60006115756114bf611fcb565b84611570856040518060600160405280602581526020016133ad60259139600160006114e9611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b611fd3565b6001905092915050565b600061159361158c611fcb565b84846121ca565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061188d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561176a57600080fd5b505afa15801561177e573d6000803e3d6000fd5b505050506040513d602081101561179457600080fd5b8101908080519060200190929190505050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b810190808051906020019092919050505061281290919063ffffffff16565b905090565b600061189c6116a4565b90506000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561193f57600080fd5b505afa158015611953573d6000803e3d6000fd5b505050506040513d602081101561196957600080fd5b810190808051906020019092919050505090506119cb333085600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af1909392919063ffffffff16565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a6c57600080fd5b505afa158015611a80573d6000803e3d6000fd5b505050506040513d6020811015611a9657600080fd5b81019080805190602001909291905050509050611abc82826127c890919063ffffffff16565b935060008090506000611acd610a34565b1415611adb57849050611b0a565b611b0784611af9611aea610a34565b8861254090919063ffffffff16565b6125c690919063ffffffff16565b90505b611b143382612bf7565b611b2833600a612db290919063ffffffff16565b600754600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bca57600080fd5b505afa158015611bde573d6000803e3d6000fd5b505050506040513d6020811015611bf457600080fd5b81019080805190602001909291905050501115611c1457611c13611c1b565b5b5050505050565b6000611c25611064565b9050611c96600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a209092919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b02bf4b9600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611d6157600080fd5b505af1158015611d75573d6000803e3d6000fd5b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ee5600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b8101908080519060200190929190505050611892565b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606081600001805480602002602001604051908101604052809291908181526020018280548015611fbf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611f75575b50505050509050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061335f6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132886022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061333a6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806132436023913960400191505060405180910390fd5b612341816040518060600160405280602681526020016132aa602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124f25780820151818401526020810190506124d7565b50505050905090810190601f16801561251f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083141561255357600090506125c0565b600082840290508284828161256457fe5b04146125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132d06021913960400191505060405180910390fd5b809150505b92915050565b600061260883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e2d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806133196021913960400191505060405180910390fd5b61270181604051806060016040528060228152602001613266602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612758816002546127c890919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061280a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612480565b905092915050565b600080828401905083811015612890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600090505b6128ab84612ef3565b811015612a14578273ffffffffffffffffffffffffffffffffffffffff168460000182815481106128d857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a075783600001600161292e86612ef3565b038154811061293957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600001828154811061297357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000018054806129c857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556001915050612a1a565b80806001019150506128a2565b50600090505b92915050565b612aec838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f04565b505050565b612bf1848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f04565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612caf8160025461281290919063ffffffff16565b600281905550612d06816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612dbc828261314f565b612e2957816000018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b60008083118290612ed9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e9e578082015181840152602081019050612e83565b50505050905090810190601f168015612ecb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612ee557fe5b049050809150509392505050565b600081600001805490509050919050565b612f238273ffffffffffffffffffffffffffffffffffffffff166131f7565b612f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612fe45780518252602082019150602081019050602083039250612fc1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613046576040519150601f19603f3d011682016040523d82523d6000602084013e61304b565b606091505b5091509150816130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115613149578080602001905160208110156130e257600080fd5b8101908080519060200190929190505050613148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613383602a913960400191505060405180910390fd5b5b50505050565b600080600090505b61316084612ef3565b8110156131eb578273ffffffffffffffffffffffffffffffffffffffff1684600001828154811061318d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156131de5760019150506131f1565b8080600101915050613157565b50600090505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156132395750808214155b9250505091905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582020fed383079c9335eff9a2f00d7c753867ff0dc92fe99ff952aa475739abe5d864736f6c63430005110032000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000989680
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80638e087c7811610104578063b69ef8a8116100a2578063de5f626811610071578063de5f6268146108a7578063f77c4791146108b1578063f8897945146108fb578063fc0c546a14610919576101d9565b8063b69ef8a8146107d9578063b6b55f25146107f7578063d389800f14610825578063dd62ed3e1461082f576101d9565b806395d89b41116100de57806395d89b4114610646578063a457c2d7146106c9578063a9059cbb1461072f578063ab033ea914610795576101d9565b80638e087c78146105b6578063909d3f4c146105d457806392eefe9b14610602576101d9565b8063395093511161017c5780636ac5db191161014b5780636ac5db191461051857806370a082311461053657806377c7b8fc1461058e578063853828b6146105ac576101d9565b8063395093511461041c57806345dc3dd81461048257806348a0d754146104b05780635aa6e675146104ce576101d9565b806318160ddd116101b857806318160ddd1461032657806323b872dd146103445780632e1a7d4d146103ca578063313ce567146103f8576101d9565b8062ce8e3e146101de57806306fdde031461023d578063095ea7b3146102c0575b600080fd5b6101e6610963565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561022957808201518184015260208101905061020e565b505050509050019250505060405180910390f35b610245610974565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028557808201518184015260208101905061026a565b50505050905090810190601f1680156102b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c600480360360408110156102d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a16565b604051808215151515815260200191505060405180910390f35b61032e610a34565b6040518082815260200191505060405180910390f35b6103b06004803603606081101561035a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3e565b604051808215151515815260200191505060405180910390f35b6103f6600480360360208110156103e057600080fd5b8101908080359060200190929190505050610b17565b005b610400610ecd565b604051808260ff1660ff16815260200191505060405180910390f35b6104686004803603604081101561043257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee4565b604051808215151515815260200191505060405180910390f35b6104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050610f97565b005b6104b8611064565b6040518082815260200191505060405180910390f35b6104d661116d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610520611193565b6040518082815260200191505060405180910390f35b6105786004803603602081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611199565b6040518082815260200191505060405180910390f35b6105966111e1565b6040518082815260200191505060405180910390f35b6105b4611223565b005b6105be611236565b6040518082815260200191505060405180910390f35b610600600480360360208110156105ea57600080fd5b810190808035906020019092919050505061123c565b005b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611309565b005b61064e611410565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610715600480360360408110156106df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114b2565b604051808215151515815260200191505060405180910390f35b61077b6004803603604081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061157f565b604051808215151515815260200191505060405180910390f35b6107d7600480360360208110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061159d565b005b6107e16116a4565b6040518082815260200191505060405180910390f35b6108236004803603602081101561080d57600080fd5b8101908080359060200190929190505050611892565b005b61082d611c1b565b005b6108916004803603604081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d7c565b6040518082815260200191505060405180910390f35b6108af611e03565b005b6108b9611ee7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610903611f0d565b6040518082815260200191505060405180910390f35b610921611f13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606061096f600a611f39565b905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a0c5780601f106109e157610100808354040283529160200191610a0c565b820191906000526020600020905b8154815290600101906020018083116109ef57829003601f168201915b5050505050905090565b6000610a2a610a23611fcb565b8484611fd3565b6001905092915050565b6000600254905090565b6000610a4b8484846121ca565b610b0c84610a57611fcb565b610b07856040518060600160405280602881526020016132f160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abd611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b611fd3565b600190509392505050565b6000610b2233611199565b90506000610b59610b31610a34565b610b4b85610b3d6116a4565b61254090919063ffffffff16565b6125c690919063ffffffff16565b9050610b653384612610565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d6020811015610c3057600080fd5b8101908080519060200190929190505050905081811015610e5c576000610c6082846127c890919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3fef3a3600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b505050506000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610de657600080fd5b505afa158015610dfa573d6000803e3d6000fd5b505050506040513d6020811015610e1057600080fd5b810190808051906020019092919050505090506000610e3884836127c890919063ffffffff16565b905082811015610e5857610e55818561281290919063ffffffff16565b94505b5050505b82841415610e7a57610e7833600a61289a90919063ffffffff16565b505b610ec73383600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a209092919063ffffffff16565b50505050565b6000600560009054906101000a900460ff16905090565b6000610f8d610ef1611fcb565b84610f888560016000610f02611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b611fd3565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060068190555050565b600061116861271061115a600654600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561111157600080fd5b505afa158015611125573d6000803e3d6000fd5b505050506040513d602081101561113b57600080fd5b810190808051906020019092919050505061254090919063ffffffff16565b6125c690919063ffffffff16565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61271081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061121e6111ee610a34565b611210670de0b6b3a76400006112026116a4565b61254090919063ffffffff16565b6125c690919063ffffffff16565b905090565b61123461122f33611199565b610b17565b565b60075481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114a85780601f1061147d576101008083540402835291602001916114a8565b820191906000526020600020905b81548152906001019060200180831161148b57829003601f168201915b5050505050905090565b60006115756114bf611fcb565b84611570856040518060600160405280602581526020016133ad60259139600160006114e9611fcb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b611fd3565b6001905092915050565b600061159361158c611fcb565b84846121ca565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061188d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561176a57600080fd5b505afa15801561177e573d6000803e3d6000fd5b505050506040513d602081101561179457600080fd5b8101908080519060200190929190505050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b810190808051906020019092919050505061281290919063ffffffff16565b905090565b600061189c6116a4565b90506000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561193f57600080fd5b505afa158015611953573d6000803e3d6000fd5b505050506040513d602081101561196957600080fd5b810190808051906020019092919050505090506119cb333085600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af1909392919063ffffffff16565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a6c57600080fd5b505afa158015611a80573d6000803e3d6000fd5b505050506040513d6020811015611a9657600080fd5b81019080805190602001909291905050509050611abc82826127c890919063ffffffff16565b935060008090506000611acd610a34565b1415611adb57849050611b0a565b611b0784611af9611aea610a34565b8861254090919063ffffffff16565b6125c690919063ffffffff16565b90505b611b143382612bf7565b611b2833600a612db290919063ffffffff16565b600754600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bca57600080fd5b505afa158015611bde573d6000803e3d6000fd5b505050506040513d6020811015611bf457600080fd5b81019080805190602001909291905050501115611c1457611c13611c1b565b5b5050505050565b6000611c25611064565b9050611c96600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a209092919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b02bf4b9600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611d6157600080fd5b505af1158015611d75573d6000803e3d6000fd5b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ee5600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ea557600080fd5b505afa158015611eb9573d6000803e3d6000fd5b505050506040513d6020811015611ecf57600080fd5b8101908080519060200190929190505050611892565b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606081600001805480602002602001604051908101604052809291908181526020018280548015611fbf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611f75575b50505050509050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061335f6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132886022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061333a6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806132436023913960400191505060405180910390fd5b612341816040518060600160405280602681526020016132aa602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124f25780820151818401526020810190506124d7565b50505050905090810190601f16801561251f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083141561255357600090506125c0565b600082840290508284828161256457fe5b04146125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132d06021913960400191505060405180910390fd5b809150505b92915050565b600061260883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e2d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806133196021913960400191505060405180910390fd5b61270181604051806060016040528060228152602001613266602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124809092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612758816002546127c890919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061280a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612480565b905092915050565b600080828401905083811015612890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600090505b6128ab84612ef3565b811015612a14578273ffffffffffffffffffffffffffffffffffffffff168460000182815481106128d857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a075783600001600161292e86612ef3565b038154811061293957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600001828154811061297357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000018054806129c857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556001915050612a1a565b80806001019150506128a2565b50600090505b92915050565b612aec838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f04565b505050565b612bf1848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f04565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612caf8160025461281290919063ffffffff16565b600281905550612d06816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612dbc828261314f565b612e2957816000018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b60008083118290612ed9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e9e578082015181840152602081019050612e83565b50505050905090810190601f168015612ecb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612ee557fe5b049050809150509392505050565b600081600001805490509050919050565b612f238273ffffffffffffffffffffffffffffffffffffffff166131f7565b612f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612fe45780518252602082019150602081019050602083039250612fc1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613046576040519150601f19603f3d011682016040523d82523d6000602084013e61304b565b606091505b5091509150816130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115613149578080602001905160208110156130e257600080fd5b8101908080519060200190929190505050613148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613383602a913960400191505060405180910390fd5b5b50505050565b600080600090505b61316084612ef3565b8110156131eb578273ffffffffffffffffffffffffffffffffffffffff1684600001828154811061318d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156131de5760019150506131f1565b8080600101915050613157565b50600090505b92915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156132395750808214155b9250505091905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582020fed383079c9335eff9a2f00d7c753867ff0dc92fe99ff952aa475739abe5d864736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000989680
-----Decoded View---------------
Arg [0] : _token (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7
Arg [1] : _earnLowerlimit (uint256): 10000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [1] : 0000000000000000000000000000000000000000000000000000000000989680
Deployed Bytecode Sourcemap
13672:4234:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13672:4234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16021:111;;;:::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;16021:111:0;;;;;;;;;;;;;;;;;5973:83;;;:::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;5973:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2993:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2993:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2476:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3151:304;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3151:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17011:757;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17011:757:0;;;;;;;;;;;;;;;;;:::i;:::-;;6155:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3461:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3461:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14827:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14827:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;15605:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14063:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13939:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2573:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2573:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17780:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16849:82;;;:::i;:::-;;13978:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15287:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15287:162:0;;;;;;;;;;;;;;;;;:::i;:::-;;15128:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15128:153:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6062:87;;;:::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;6062:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:261;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3677:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2689:158;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2689:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14963:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14963:153:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14641:174;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16140:697;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16140:697:0;;;;;;;;;;;;;;;;;:::i;:::-;;15739:172;;;:::i;:::-;;2853:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2853:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15923:86;;;:::i;:::-;;14095:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13910:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13878:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16021:111;16062:16;16098:26;:8;:24;:26::i;:::-;16091:33;;16021:111;:::o;5973:83::-;6010:13;6043:5;6036:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:83;:::o;2993:152::-;3059:4;3076:39;3085:12;:10;:12::i;:::-;3099:7;3108:6;3076:8;:39::i;:::-;3133:4;3126:11;;2993:152;;;;:::o;2476:91::-;2520:7;2547:12;;2540:19;;2476:91;:::o;3151:304::-;3240:4;3257:36;3267:6;3275:9;3286:6;3257:9;:36::i;:::-;3304:121;3313:6;3321:12;:10;:12::i;:::-;3335:89;3373:6;3335:89;;;;;;;;;;;;;;;;;:11;:19;3347:6;3335:19;;;;;;;;;;;;;;;:33;3355:12;:10;:12::i;:::-;3335:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3304:8;:121::i;:::-;3443:4;3436:11;;3151:304;;;;;:::o;17011:757::-;17061:9;17073:21;17083:10;17073:9;:21::i;:::-;17061:33;;17105:6;17114:43;17143:13;:11;:13::i;:::-;17115:22;17129:7;17115:9;:7;:9::i;:::-;:13;;:22;;;;:::i;:::-;17114:28;;:43;;;;:::i;:::-;17105:52;;17168:26;17174:10;17186:7;17168:5;:26::i;:::-;17241:6;17250:5;;;;;;;;;;;:15;;;17274:4;17250:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17250:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17250:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17250:30:0;;;;;;;;;;;;;;;;17241:39;;17299:1;17295;:5;17291:324;;;17317:14;17334:8;17340:1;17334;:5;;:8;;;;:::i;:::-;17317:25;;17368:10;;;;;;;;;;;17357:31;;;17397:5;;;;;;;;;;;17405:9;17357:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17357:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17357:58:0;;;;17430:11;17444:5;;;;;;;;;;;:15;;;17468:4;17444:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17444:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17444:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17444:30:0;;;;;;;;;;;;;;;;17430:44;;17489:10;17502:13;17513:1;17502:6;:10;;:13;;;;:::i;:::-;17489:26;;17542:9;17534:5;:17;17530:74;;;17576:12;17582:5;17576:1;:5;;:12;;;;:::i;:::-;17572:16;;17530:74;17291:324;;;;17650:4;17639:7;:15;17635:82;;;17671:34;17694:10;17671:8;:22;;:34;;;;:::i;:::-;;17635:82;17727:33;17746:10;17758:1;17727:5;;;;;;;;;;;:18;;;;:33;;;;;:::i;:::-;17011:757;;;;:::o;6155:83::-;6196:5;6221:9;;;;;;;;;;;6214:16;;6155:83;:::o;3461:210::-;3541:4;3558:83;3567:12;:10;:12::i;:::-;3581:7;3590:50;3629:10;3590:11;:25;3602:12;:10;:12::i;:::-;3590:25;;;;;;;;;;;;;;;:34;3616:7;3590:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3558:8;:83::i;:::-;3659:4;3652:11;;3461:210;;;;:::o;14827:124::-;14896:10;;;;;;;;;;;14882:24;;:10;:24;;;14874:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14939:4;14933:3;:10;;;;14827:124;:::o;15605:122::-;15647:4;15671:48;13966:5;15671:39;15706:3;;15671:5;;;;;;;;;;;:15;;;15695:4;15671:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15671:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15671:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15671:30:0;;;;;;;;;;;;;;;;:34;;:39;;;;:::i;:::-;:43;;:48;;;;:::i;:::-;15664:55;;15605:122;:::o;14063:25::-;;;;;;;;;;;;;:::o;13939:32::-;13966:5;13939:32;:::o;2573:110::-;2630:7;2657:9;:18;2667:7;2657:18;;;;;;;;;;;;;;;;2650:25;;2573:110;;;:::o;17780:123::-;17833:4;17857:38;17881:13;:11;:13::i;:::-;17857:19;17871:4;17857:9;:7;:9::i;:::-;:13;;:19;;;;:::i;:::-;:23;;:38;;;;:::i;:::-;17850:45;;17780:123;:::o;16849:82::-;16892:31;16901:21;16911:10;16901:9;:21::i;:::-;16892:8;:31::i;:::-;16849:82::o;13978:26::-;;;;:::o;15287:162::-;15376:10;;;;;;;;;;;15362:24;;:10;:24;;;15354:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15428:15;15411:14;:32;;;;15287:162;:::o;15128:153::-;15212:10;;;;;;;;;;;15198:24;;:10;:24;;;15190:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15262:11;15249:10;;:24;;;;;;;;;;;;;;;;;;15128:153;:::o;6062:87::-;6101:13;6134:7;6127:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6062:87;:::o;3677:261::-;3762:4;3779:129;3788:12;:10;:12::i;:::-;3802:7;3811:96;3850:15;3811:96;;;;;;;;;;;;;;;;;:11;:25;3823:12;:10;:12::i;:::-;3811:25;;;;;;;;;;;;;;;:34;3837:7;3811:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;3779:8;:129::i;:::-;3926:4;3919:11;;3677:261;;;;:::o;2689:158::-;2758:4;2775:42;2785:12;:10;:12::i;:::-;2799:9;2810:6;2775:9;:42::i;:::-;2835:4;2828:11;;2689:158;;;;:::o;14963:153::-;15047:10;;;;;;;;;;;15033:24;;:10;:24;;;15025:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15097:11;15084:10;;:24;;;;;;;;;;;;;;;;;;14963:153;:::o;14641:174::-;14681:4;14705:102;14769:10;;;;;;;;;;;14758:32;;;14799:5;;;;;;;;;;;14758:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14758:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14758:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14758:48:0;;;;;;;;;;;;;;;;14705:5;;;;;;;;;;;:15;;;14729:4;14705:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14705:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14705:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14705:30:0;;;;;;;;;;;;;;;;:52;;:102;;;;:::i;:::-;14698:109;;14641:174;:::o;16140:697::-;16189:10;16202:9;:7;:9::i;:::-;16189:22;;16222:12;16237:5;;;;;;;;;;;:15;;;16261:4;16237:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16237:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16237:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16237:30:0;;;;;;;;;;;;;;;;16222:45;;16278:58;16301:10;16321:4;16328:7;16278:5;;;;;;;;;;;:22;;;;:58;;;;;;:::i;:::-;16347:11;16361:5;;;;;;;;;;;:15;;;16385:4;16361:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16361:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16361:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16361:30:0;;;;;;;;;;;;;;;;16347:44;;16412:19;16423:7;16412:6;:10;;:19;;;;:::i;:::-;16402:29;;16486:11;16500:1;16486:15;;16533:1;16516:13;:11;:13::i;:::-;:18;16512:148;;;16560:7;16551:16;;16512:148;;;16609:39;16642:5;16610:26;16622:13;:11;:13::i;:::-;16610:7;:11;;:26;;;;:::i;:::-;16609:32;;:39;;;;:::i;:::-;16600:48;;16512:148;16670:25;16676:10;16688:6;16670:5;:25::i;:::-;16706:32;16727:10;16706:8;:20;;:32;;;;:::i;:::-;16784:14;;16753:5;;;;;;;;;;;:15;;;16777:4;16753:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16753:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16753:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16753:30:0;;;;;;;;;;;;;;;;:45;16749:81;;;16812:6;:4;:6::i;:::-;16749:81;16140:697;;;;;:::o;15739:172::-;15773:9;15785:11;:9;:11::i;:::-;15773:23;;15807:36;15826:10;;;;;;;;;;;15838:4;15807:5;;;;;;;;;;;:18;;;;:36;;;;;:::i;:::-;15865:10;;;;;;;;;;;15854:27;;;15890:5;;;;;;;;;;;15898:4;15854:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15854:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15854:49:0;;;;15739:172;:::o;2853:134::-;2925:7;2952:11;:18;2964:5;2952:18;;;;;;;;;;;;;;;:27;2971:7;2952:27;;;;;;;;;;;;;;;;2945:34;;2853:134;;;;:::o;15923:86::-;15965:36;15973:5;;;;;;;;;;;:15;;;15989:10;15973:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15973:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15973:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15973:27:0;;;;;;;;;;;;;;;;15965:7;:36::i;:::-;15923:86::o;14095:25::-;;;;;;;;;;;;;:::o;13910:22::-;;;;:::o;13878:19::-;;;;;;;;;;;;;:::o;11276:126::-;11347:16;11383:4;:11;;11376:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11276:126;;;:::o;818:98::-;863:15;898:10;891:17;;818:98;:::o;5089:338::-;5200:1;5183:19;;:5;:19;;;;5175:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5281:1;5262:21;;:7;:21;;;;5254:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5365:6;5335:11;:18;5347:5;5335:18;;;;;;;;;;;;;;;:27;5354:7;5335:27;;;;;;;;;;;;;;;:36;;;;5403:7;5387:32;;5396:5;5387:32;;;5412:6;5387:32;;;;;;;;;;;;;;;;;;5089:338;;;:::o;3944:471::-;4060:1;4042:20;;:6;:20;;;;4034:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4144:1;4123:23;;:9;:23;;;;4115:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4219;4241:6;4219:71;;;;;;;;;;;;;;;;;:9;:17;4229:6;4219:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;4199:9;:17;4209:6;4199:17;;;;;;;;;;;;;;;:91;;;;4324:32;4349:6;4324:9;:20;4334:9;4324:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4301:9;:20;4311:9;4301:20;;;;;;;;;;;;;;;:55;;;;4389:9;4372:35;;4381:6;4372:35;;;4400:6;4372:35;;;;;;;;;;;;;;;;;;3944:471;;;:::o;6598:192::-;6684:7;6717:1;6712;:6;;6720:12;6704:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6704:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6744:9;6760:1;6756;:5;6744:17;;6781:1;6774:8;;;6598:192;;;;;:::o;6796:250::-;6854:7;6883:1;6878;:6;6874:47;;;6908:1;6901:8;;;;6874:47;6933:9;6949:1;6945;:5;6933:17;;6978:1;6973;6969;:5;;;;;;:10;6961:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7037:1;7030:8;;;6796:250;;;;;:::o;7052:132::-;7110:7;7137:39;7141:1;7144;7137:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7130:46;;7052:132;;;;:::o;4735:348::-;4830:1;4811:21;;:7;:21;;;;4803:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4904:68;4927:6;4904:68;;;;;;;;;;;;;;;;;:9;:18;4914:7;4904:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;4883:9;:18;4893:7;4883:18;;;;;;;;;;;;;;;:89;;;;4998:24;5015:6;4998:12;;:16;;:24;;;;:::i;:::-;4983:12;:39;;;;5064:1;5038:37;;5047:7;5038:37;;;5068:6;5038:37;;;;;;;;;;;;;;;;;;4735:348;;:::o;6456:136::-;6514:7;6541:43;6545:1;6548;6541:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6534:50;;6456:136;;;;:::o;6269:181::-;6327:7;6347:9;6363:1;6359;:5;6347:17;;6388:1;6383;:6;;6375:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6441:1;6434:8;;;6269:181;;;;:::o;9584:371::-;9666:4;9688:6;9697:1;9688:10;;9683:242;9704:11;:4;:9;:11::i;:::-;9700:1;:15;9683:242;;;9759:7;9741:25;;:4;:11;;9753:1;9741:14;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;9737:177;;;9804:4;:11;;9830:1;9816:11;:4;:9;:11::i;:::-;:15;9804:28;;;;;;;;;;;;;;;;;;;;;;;;;9787:4;:11;;9799:1;9787:14;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;9851:4;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:4;9887:11;;;;;9737:177;9717:3;;;;;;;9683:242;;;;9942:5;9935:12;;9584:371;;;;;:::o;11503:176::-;11586:85;11605:5;11635;:14;;;:23;;;;11660:2;11664:5;11612:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11612:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;11612:58:0;11586:18;:85::i;:::-;11503:176;;;:::o;11687:204::-;11788:95;11807:5;11837;:18;;;:27;;;;11866:4;11872:2;11876:5;11814:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11814:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;11814:68:0;11788:18;:95::i;:::-;11687:204;;;;:::o;4421:308::-;4516:1;4497:21;;:7;:21;;;;4489:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4582:24;4599:6;4582:12;;:16;;:24;;;;:::i;:::-;4567:12;:39;;;;4638:30;4661:6;4638:9;:18;4648:7;4638:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;4617:9;:18;4627:7;4617:18;;;;;;;;;;;;;;;:51;;;;4705:7;4684:37;;4701:1;4684:37;;;4714:6;4684:37;;;;;;;;;;;;;;;;;;4421:308;;:::o;9062:161::-;9147:21;9154:4;9160:7;9147:6;:21::i;:::-;9142:74;;9181:4;:11;;9198:7;9181:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9181:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9142:74;9062:161;;:::o;7190:258::-;7276:7;7375:1;7371;:5;7378:12;7363:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7363:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7402:9;7418:1;7414;:5;;;;;;7402:17;;7439:1;7432:8;;;7190:258;;;;;:::o;10552:112::-;10613:7;10638:4;:11;;:18;;;;10631:25;;10552:112;;;:::o;12883:598::-;12971:27;12979:5;12971:25;;;:27::i;:::-;12963:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13108:12;13122:23;13157:5;13149:19;;13169:4;13149:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13149:25:0;;;;;;;;;;;;;;;;;;;;;;;;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;;13107:67:0;;;;13193:7;13185:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13274:1;13254:10;:17;:21;13250:224;;;13396:10;13385:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13385:30:0;;;;;;;;;;;;;;;;13377:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13250:224;12883:598;;;;:::o;10883:269::-;10963:4;10985:6;10994:1;10985:10;;10980:142;11001:11;:4;:9;:11::i;:::-;10997:1;:15;10980:142;;;11056:7;11038:25;;:4;:11;;11050:1;11038:14;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;11034:77;;;11091:4;11084:11;;;;;11034:77;11014:3;;;;;;;10980:142;;;;11139:5;11132:12;;10883:269;;;;;:::o;7786:374::-;7846:4;7863:16;7890:19;7912:66;7890:88;;;;8081:7;8069:20;8057:32;;8121:3;8109:15;;:8;:15;;:42;;;;;8140:11;8128:8;:23;;8109:42;8101:51;;;;7786:374;;;:::o
Swarm Source
bzzr://20fed383079c9335eff9a2f00d7c753867ff0dc92fe99ff952aa475739abe5d8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.