Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Healthcare
Overview
Max Total Supply
12,000,000,000 CRDC
Holders
355 (0.00%)
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CardioCoin
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-08 */ pragma solidity ^0.4.24; /** * @dev SafeMath * Math operations with safety checks that throw on error * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function safeSub(uint256 a, uint256 b) internal pure returns (uint256) { if (b > a) return 0; return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } contract IERC20 is IERC165 { function totalSupply() public view returns (uint256); function balanceOf(address account) public view returns (uint256); function decimals() public view returns (uint8); function transfer(address recipient, uint256 amount) public returns (bool); function allowance(address owner, address spender) public view returns (uint256); function approve(address spender, uint256 amount) public returns (bool); function transferFrom(address sender, address recipient, uint256 amount) public returns (bool); function safeTransfer(address recipient, uint256 amount, bytes memory data) public; function safeTransfer(address recipient, uint256 amount) public; function safeTransferFrom(address sender, address recipient, uint256 amount, bytes memory data) public; function safeTransferFrom(address sender, address recipient, uint256 amount) public; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC165 is IERC165 { bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; mapping(bytes4 => bool) private _supportedInterfaces; constructor () internal { _registerInterface(_INTERFACE_ID_ERC165); } function supportsInterface(bytes4 interfaceId) external view returns (bool) { return _supportedInterfaces[interfaceId]; } function _registerInterface(bytes4 interfaceId) internal { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } } contract IERC20Receiver { function onERC20Received(address _operator, address _from, uint256 _amount, bytes memory _data) public returns (bytes4); } // ---------------------------------------------------------------------------- // @title Ownable // ---------------------------------------------------------------------------- contract Ownable { address public owner; event SetOwner(address owner); event SetMinter(address minter); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; emit SetOwner(msg.sender); emit SetMinter(msg.sender); } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) external onlyOwner { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // ---------------------------------------------------------------------------- // @title ERC20 // ---------------------------------------------------------------------------- contract ERC20 is ERC165, IERC20, Ownable { using SafeMath for uint256; event LockedInfo(address indexed from, address indexed to, uint256 value, uint8 tokenType, uint256 distributedTime, uint256 lockUpPeriodMonth, uint256 unlockAmountPerCount, uint256 remainUnLockCount, uint256 CONST_UNLOCKCOUNT); event ChangeListingTime(uint256 oldTime, uint256 newTime); event FinshedSetExchangeListingTime(); struct LockInfo { bool isLocked; uint8 tokenType; uint256 amount; uint256 distributedTime; uint256 lockUpPeriodMonth; uint256 lastUnlockTimestamp; uint256 unlockAmountPerCount; uint256 remainUnLockCount; uint256 CONST_UNLOCKCOUNT; uint256 CONST_AMOUNT; } uint256 internal _totalSupply; uint8 private _decimals = 18; uint256 internal _tokenCreatedTime; mapping(address => uint256) internal _balances; mapping(address => mapping (address => uint256)) internal _allowances; mapping(address => uint8) internal _cardioWallet; mapping(address => mapping (uint8 => LockInfo)) internal _lockedInfo; bytes4 private constant _ERC20_RECEIVED = 0x9d188c22; bytes4 private constant _INTERFACE_ID_ERC20 = 0x65787371; constructor() public { _tokenCreatedTime = now; // Crowd Sale Wallet _cardioWallet[0x9FC9675d6d1d2E583EbC6fdF7b30F1d1144523Cd] = 1; // Team & Advisors _cardioWallet[0xe39c6A20A55e6f88aF1B331F0E8529dcD4A02c10] = 2; // Ecosystem Activation _cardioWallet[0x588eaB2Fd73e381efFA8E4F084bF5a686eC9eD68] = 3; // Business Development _cardioWallet[0x461030be06272623f7135ba9926Ea9Afba00d8E3] = 4; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { uint256 totalBalances = _balances[account]; uint8 tokenType; for (tokenType = 1; tokenType <= 4; tokenType++) { LockInfo memory lockInfo = _lockedInfo[account][tokenType]; totalBalances = totalBalances.add(lockInfo.amount); } return totalBalances; } function unLockBalanceOf(address account) public view returns (uint256) { return _balances[account]; } function lockUpInfo(address account, uint8 tokenType) public view returns (bool, uint8, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) { LockInfo memory lockInfo = _lockedInfo[account][tokenType]; return (lockInfo.isLocked, lockInfo.tokenType, lockInfo.amount, lockInfo.distributedTime, lockInfo.lockUpPeriodMonth, lockInfo.lastUnlockTimestamp, lockInfo.unlockAmountPerCount, lockInfo.remainUnLockCount, lockInfo.CONST_UNLOCKCOUNT, lockInfo.CONST_AMOUNT); } function decimals() public view returns (uint8) { return _decimals; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(msg.sender, 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(msg.sender, spender, amount); return true; } function increaseApproval(address spender, uint256 amount) public returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].add(amount)); return true; } function decreaseApproval(address spender, uint256 amount) public returns (bool) { if (amount >= _allowances[msg.sender][spender]) { amount = 0; } else { amount = _allowances[msg.sender][spender].sub(amount); } _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount)); return true; } function safeTransfer(address recipient, uint256 amount) public { safeTransfer(recipient, amount, ""); } function safeTransfer(address recipient, uint256 amount, bytes memory data) public { transfer(recipient, amount); require(_checkOnERC20Received(msg.sender, recipient, amount, data), "ERC20: transfer to non ERC20Receiver implementer"); } function safeTransferFrom(address sender, address recipient, uint256 amount) public { safeTransferFrom(sender, recipient, amount, ""); } function safeTransferFrom(address sender, address recipient, uint256 amount, bytes memory data) public { transferFrom(sender, recipient, amount); require(_checkOnERC20Received(sender, recipient, amount, data), "ERC20: transfer to non ERC20Receiver implementer"); } 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 _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"); uint8 adminAccountType = _cardioWallet[sender]; // Crowd Sale Wallet, Team & Advisors from admin wallet Type 1, 2 if(adminAccountType >= 1 && adminAccountType <= 2) { _addLocker(sender, recipient, adminAccountType, amount); } else { // Check "From" LockUp Balance uint8 tokenType; for (tokenType = 1; tokenType <= 4; tokenType++) { LockInfo storage lockInfo = _lockedInfo[sender][tokenType]; if (lockInfo.isLocked) { _unLock(sender, tokenType); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); } emit Transfer(sender, recipient, amount); } function _addLocker(address sender, address recipient, uint8 adminAcountType, uint256 amount) internal { require(_lockedInfo[recipient][adminAcountType].isLocked == false, "Already Locked User"); uint256 distributedTime; uint256 lockUpPeriodMonth; uint256 unlockAmountPerCount; uint256 remainUnLockCount; uint256 CONST_UNLOCKCOUNT; uint256 CONST_AMOUNT; if(adminAcountType == 1) { // Crowd Sale distributedTime = now; lockUpPeriodMonth = 0; unlockAmountPerCount = amount.div(100); remainUnLockCount = 6; CONST_UNLOCKCOUNT = 5; CONST_AMOUNT = amount; } else { // Team & Advisors distributedTime = now; lockUpPeriodMonth = 6; unlockAmountPerCount = amount.div(20); remainUnLockCount = 20; CONST_UNLOCKCOUNT = 20; CONST_AMOUNT = amount; } LockInfo memory newLockInfo = LockInfo({ isLocked: true, tokenType : adminAcountType, amount: amount, distributedTime: distributedTime, lockUpPeriodMonth: lockUpPeriodMonth, lastUnlockTimestamp: 0, unlockAmountPerCount: unlockAmountPerCount, remainUnLockCount: remainUnLockCount, CONST_UNLOCKCOUNT: CONST_UNLOCKCOUNT, CONST_AMOUNT: CONST_AMOUNT }); _balances[sender] = _balances[sender].sub(amount); _lockedInfo[recipient][adminAcountType] = newLockInfo; } function _unLock(address sender, uint8 tokenType) internal { LockInfo storage lockInfo = _lockedInfo[sender][tokenType]; // Only Crowd Sale Type // 864000 = 10 Days if(tokenType == 1 && lockInfo.remainUnLockCount == 6 && lockInfo.distributedTime.add(864000) <= now) { // lockInfo update lockInfo.distributedTime = lockInfo.distributedTime.add(864000); lockInfo.remainUnLockCount = 5; // Fisrt Distribute 5% uint256 distributeAmount = lockInfo.unlockAmountPerCount.mul(5); lockInfo.amount = lockInfo.amount.sub(distributeAmount); _balances[sender] = _balances[sender].add(distributeAmount); } if(_isOverLockUpPeriodMonth((now.safeSub(lockInfo.distributedTime)), lockInfo.lockUpPeriodMonth) == false) { return; } uint256 blockTime = now; uint256 count = _getUnLockCount(blockTime, lockInfo); // None if(count == 0) return; uint256 unlockAmount; if(tokenType == 1) { uint256 remainCount = lockInfo.remainUnLockCount; for(uint8 i = 0; i < count; i++) { if(remainCount == 5) { remainCount = remainCount - 1; unlockAmount = unlockAmount.add(lockInfo.unlockAmountPerCount.mul(10)); continue; } if(remainCount >= 2 && remainCount <= 4) { remainCount = remainCount - 1; unlockAmount = unlockAmount.add(lockInfo.unlockAmountPerCount.mul(20)); continue; } if(remainCount == 1) { remainCount = remainCount - 1; unlockAmount = unlockAmount.add(lockInfo.unlockAmountPerCount.mul(25)); continue; } } } else { unlockAmount = count.mul(lockInfo.unlockAmountPerCount); } // Shortage due to burn token // or the last distribution uint256 remainUnLockCount = lockInfo.remainUnLockCount.safeSub(count); if (lockInfo.amount.safeSub(unlockAmount) == 0 || remainUnLockCount == 0) { unlockAmount = lockInfo.amount; lockInfo.isLocked = false; } // lockInfo update lockInfo.lastUnlockTimestamp = now; lockInfo.remainUnLockCount = remainUnLockCount; lockInfo.amount = lockInfo.amount.sub(unlockAmount); _balances[sender] = _balances[sender].add(unlockAmount); } function _getUnLockCount(uint256 curBlockTime, LockInfo lockInfo) internal pure returns (uint256) { // 1 Month = 30 Days uint256 lockUpTime = lockInfo.lockUpPeriodMonth * 30 * 24 * 60 * 60; uint256 startTime = lockInfo.distributedTime.add(lockUpTime); uint256 count = 0; if (lockInfo.lastUnlockTimestamp == 0) { count = _convertMSToMonth(curBlockTime - startTime); } else { uint256 unLockedCount = _convertMSToMonth(curBlockTime - startTime); uint256 alreadyUnLockCount = lockInfo.CONST_UNLOCKCOUNT - lockInfo.remainUnLockCount; count = unLockedCount.safeSub(alreadyUnLockCount); } return count; } function _isOverLockUpPeriodMonth(uint256 time, uint256 period) internal pure returns (bool) { return _convertMSToMonth(time) > period; } function _convertMSToMonth(uint256 time) internal pure returns (uint256) { return time.div(60).div(60).div(24).div(30); } function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function _checkOnERC20Received(address sender, address recipient, uint256 amount, bytes memory _data) internal returns (bool) { if (!isContract(recipient)) { return true; } bytes4 retval = IERC20Receiver(recipient).onERC20Received(msg.sender, sender, amount, _data); return (retval == _ERC20_RECEIVED); } } // ---------------------------------------------------------------------------- // @title Burnable Token // @dev Token that can be irreversibly burned (destroyed). // ---------------------------------------------------------------------------- contract BurnableToken is ERC20 { event BurnAdminAmount(address indexed burner, uint256 value); event BurnLockedToken(address indexed burner, uint256 value, uint8 tokenType); modifier onlyCardioWallet() { require(msg.sender == 0x588eaB2Fd73e381efFA8E4F084bF5a686eC9eD68 || msg.sender == 0x461030be06272623f7135ba9926Ea9Afba00d8E3 ); _; } function burnAdminAmount(uint256 _value) onlyOwner public { require(_value <= _balances[msg.sender]); _balances[msg.sender] = _balances[msg.sender].sub(_value); _totalSupply = _totalSupply.sub(_value); emit BurnAdminAmount(msg.sender, _value); emit Transfer(msg.sender, address(0), _value); } // Ecosystem Activation - 3 // 0x588eaB2Fd73e381efFA8E4F084bF5a686eC9eD68 // Business Development - 4 // 0x461030be06272623f7135ba9926Ea9Afba00d8E3 function burnTypeToken(uint256 _value) onlyCardioWallet public { uint8 adminAccountType = _cardioWallet[msg.sender]; LockInfo storage lockInfo = _lockedInfo[msg.sender][adminAccountType]; lockInfo.amount = lockInfo.amount.sub(_value); _totalSupply = _totalSupply.sub(_value); if(lockInfo.amount == 0) { lockInfo.isLocked = false; } emit BurnLockedToken(msg.sender, _value, adminAccountType); emit Transfer(msg.sender, address(0), _value); } } // ---------------------------------------------------------------------------- // @title Mintable token // @dev Simple ERC20 Token example, with mintable token creation // Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol // ---------------------------------------------------------------------------- contract MintableToken is ERC20 { event Mint(address indexed to, uint256 amount); event MintFinished(); uint256 ECOSYSTEM_AMOUNT = 7300000000 * (10**18); uint256 BUSINESS_AMOUNT = 1150000000 * (10**18); bool private _mintingFinished = false; modifier canMint() { require(!_mintingFinished); _; } function mintingFinished() public view returns (bool) { return _mintingFinished; } function mint(address _to, uint256 _amount, uint8 _tokenType) onlyOwner canMint public returns (bool) { require(_tokenType < 5, "Token Type NULL"); _totalSupply = _totalSupply.add(_amount); if(_tokenType >= 3) { uint256 lockUpPeriodMonth; uint256 unlockAmountPerCount; uint256 remainUnLockCount; uint256 CONST_UNLOCKCOUNT; uint256 CONST_AMOUNT; if(_tokenType == 3) { // Ecosystem Activation lockUpPeriodMonth = 0; unlockAmountPerCount = ECOSYSTEM_AMOUNT.div(100); remainUnLockCount = 99; CONST_UNLOCKCOUNT = 99; CONST_AMOUNT = ECOSYSTEM_AMOUNT; } else if(_tokenType == 4) { // Business Development lockUpPeriodMonth = 0; unlockAmountPerCount = BUSINESS_AMOUNT.div(100); remainUnLockCount = 85; CONST_UNLOCKCOUNT = 85; CONST_AMOUNT = BUSINESS_AMOUNT; } LockInfo memory newLockInfo = LockInfo({ isLocked: true, tokenType : _tokenType, amount: _amount, distributedTime: _tokenCreatedTime, lockUpPeriodMonth: lockUpPeriodMonth, lastUnlockTimestamp: 0, unlockAmountPerCount: unlockAmountPerCount, remainUnLockCount: remainUnLockCount, CONST_UNLOCKCOUNT: CONST_UNLOCKCOUNT, CONST_AMOUNT: CONST_AMOUNT }); _lockedInfo[_to][_tokenType] = newLockInfo; emit LockedInfo(address(0), _to, _amount, _tokenType, _tokenCreatedTime, lockUpPeriodMonth, unlockAmountPerCount, remainUnLockCount, CONST_UNLOCKCOUNT); } else { _balances[_to] = _balances[_to].add(_amount); } emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; } function finishMinting() onlyOwner canMint public returns (bool) { _mintingFinished = true; emit MintFinished(); return true; } } // ---------------------------------------------------------------------------- // @Project CardioCoin // ---------------------------------------------------------------------------- contract CardioCoin is MintableToken, BurnableToken { event SetTokenInfo(string name, string symbol); string private _name = ""; string private _symbol = ""; constructor() public { _name = "CardioCoin"; _symbol = "CRDC"; emit SetTokenInfo(_name, _symbol); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"unLockBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"tokenType","type":"uint8"}],"name":"lockUpInfo","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"safeTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_tokenType","type":"uint8"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnAdminAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnTypeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"symbol","type":"string"}],"name":"SetTokenInfo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"BurnAdminAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokenType","type":"uint8"}],"name":"BurnLockedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokenType","type":"uint8"},{"indexed":false,"name":"distributedTime","type":"uint256"},{"indexed":false,"name":"lockUpPeriodMonth","type":"uint256"},{"indexed":false,"name":"unlockAmountPerCount","type":"uint256"},{"indexed":false,"name":"remainUnLockCount","type":"uint256"},{"indexed":false,"name":"CONST_UNLOCKCOUNT","type":"uint256"}],"name":"LockedInfo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldTime","type":"uint256"},{"indexed":false,"name":"newTime","type":"uint256"}],"name":"ChangeListingTime","type":"event"},{"anonymous":false,"inputs":[],"name":"FinshedSetExchangeListingTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"}],"name":"SetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minter","type":"address"}],"name":"SetMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040526012600360006101000a81548160ff021916908360ff1602179055506b17966b20f50ba823040000006009556b03b741f8eafc93793e000000600a556000600b60006101000a81548160ff0219169083151502179055506020604051908101604052806000815250600c908051906020019062000083929190620006d0565b506020604051908101604052806000815250600d9080519060200190620000ac929190620006d0565b50348015620000ba57600080fd5b50620000f86301ffc9a77c010000000000000000000000000000000000000000000000000000000002620005a9640100000000026401000000009004565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb533604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a142600481905550600160076000739fc9675d6d1d2e583ebc6fdf7b30f1d1144523cd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060026007600073e39c6a20a55e6f88af1b331f0e8529dcd4a02c1073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060036007600073588eab2fd73e381effa8e4f084bf5a686ec9ed6873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060046007600073461030be06272623f7135ba9926ea9afba00d8e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506040805190810160405280600a81526020017f43617264696f436f696e00000000000000000000000000000000000000000000815250600c908051906020019062000407929190620006d0565b506040805190810160405280600481526020017f4352444300000000000000000000000000000000000000000000000000000000815250600d908051906020019062000455929190620006d0565b507f9a6645cd07452c704655abb8d3df1bb29cc145ac1bdd0cb6370469cf6bbc9a29600c600d6040518080602001806020018381038352858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156200050c5780601f10620004e0576101008083540402835291602001916200050c565b820191906000526020600020905b815481529060010190602001808311620004ee57829003601f168201915b5050838103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620005935780601f10620005675761010080835404028352916020019162000593565b820191906000526020600020905b8154815290600101906020018083116200057557829003601f168201915b505094505050505060405180910390a16200077f565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415151562000664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071357805160ff191683800117855562000744565b8280016001018555821562000744579182015b828111156200074357825182559160200191906001019062000726565b5b50905062000753919062000757565b5090565b6200077c91905b80821115620007785760008160009055506001016200075e565b5090565b90565b61339c806200078f6000396000f300608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461014e57806305d2035b146101b257806306fdde03146101e1578063095ea7b3146102715780630b5cc187146102d65780631764aeca1461032d57806318160ddd146103da57806323b872dd14610405578063313ce5671461048a578063423f6cef146104bb57806342842e0e146105085780636112e8ac1461057557806366188463146105e757806370a082311461064c57806376227f3b146106a35780637d64bcb4146106d05780638da5cb5b146106ff57806395d89b4114610756578063a9059cbb146107e6578063b88d4fde1461084b578063d73dd623146108fe578063dd62ed3e14610963578063e5230492146109da578063eb79554914610a07578063f2fde38b14610a9a575b600080fd5b34801561015a57600080fd5b5061019860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610add565b604051808215151515815260200191505060405180910390f35b3480156101be57600080fd5b506101c7610b44565b604051808215151515815260200191505060405180910390f35b3480156101ed57600080fd5b506101f6610b5b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023657808201518184015260208101905061021b565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027d57600080fd5b506102bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfd565b604051808215151515815260200191505060405180910390f35b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c14565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b5061037b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c5d565b604051808b1515151581526020018a60ff1660ff1681526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b3480156103e657600080fd5b506103ef610db9565b6040518082815260200191505060405180910390f35b34801561041157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dc3565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610e74565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c757600080fd5b50610506600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8b565b005b34801561051457600080fd5b50610573600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eaa565b005b34801561058157600080fd5b506105cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190505050610ecb565b604051808215151515815260200191505060405180910390f35b3480156105f357600080fd5b50610632600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113a5565b604051808215151515815260200191505060405180910390f35b34801561065857600080fd5b5061068d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114dc565b6040518082815260200191505060405180910390f35b3480156106af57600080fd5b506106ce6004803603810190808035906020019092919050505061165b565b005b3480156106dc57600080fd5b506106e561186c565b604051808215151515815260200191505060405180910390f35b34801561070b57600080fd5b50610714611934565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076257600080fd5b5061076b61195a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ab578082015181840152602081019050610790565b50505050905090810190601f1680156107d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107f257600080fd5b50610831600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119fc565b604051808215151515815260200191505060405180910390f35b34801561085757600080fd5b506108fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611a13565b005b34801561090a57600080fd5b50610949600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611acb565b604051808215151515815260200191505060405180910390f35b34801561096f57600080fd5b506109c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b70565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a0560048036038101908080359060200190929190505050611bf7565b005b348015610a1357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611e65565b005b348015610aa657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60009054906101000a900460ff16905090565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf35780601f10610bc857610100808354040283529160200191610bf3565b820191906000526020600020905b815481529060010190602001808311610bd657829003601f168201915b5050505050905090565b6000610c0a338484612073565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600080600080610c74613317565b600860008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d60ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509295989b9194979a5092959850565b6000600254905090565b6000610dd08484846122f4565b610e698433610e6485600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b612073565b600190509392505050565b6000600360009054906101000a900460ff16905090565b610ea682826020604051908101604052806000815250611e65565b5050565b610ec68383836020604051908101604052806000815250611a13565b505050565b600080600080600080610edc613317565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3857600080fd5b600b60009054906101000a900460ff16151515610f5457600080fd5b60058860ff16101515610fcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e2054797065204e554c4c000000000000000000000000000000000081525060200191505060405180910390fd5b610fe48960025461275590919063ffffffff16565b60028190555060038860ff1610151561124a5760038860ff161415611031576000955061101d606460095461277390919063ffffffff16565b945060639350606392506009549150611068565b60048860ff16141561106757600095506110576064600a5461277390919063ffffffff16565b94506055935060559250600a5491505b5b610140604051908101604052806001151581526020018960ff1681526020018a815260200160045481526020018781526020016000815260200186815260200185815260200184815260200183815250905080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8b8b6004548b8b8b8b604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a36112e0565b61129c89600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8973ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858a6040518082815260200191505060405180910390a28973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b6040518082815260200191505060405180910390a3600196505050505050509392505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561143557600091506114c7565b6114c482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b91505b6114d2338484612073565b6001905092915050565b60008060006114e9613317565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600191505b60048260ff1611151561165057600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905061164181604001518461275590919063ffffffff16565b92508180600101925050611530565b829350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116b757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561170557600080fd5b61175781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117af8160025461273c90919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa0f3dea10c8bf26d7f1b6b0cf33166195f48616c562c681b49eaaa2423894d00826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ca57600080fd5b600b60009054906101000a900460ff161515156118e657600080fd5b6001600b60006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119f25780601f106119c7576101008083540402835291602001916119f2565b820191906000526020600020905b8154815290600101906020018083116119d557829003601f168201915b5050505050905090565b6000611a093384846122f4565b6001905092915050565b611a1e848484610dc3565b50611a2b84848484612789565b1515611ac5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000611b663384611b6185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b612073565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073588eab2fd73e381effa8e4f084bf5a686ec9ed6873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c87575073461030be06272623f7135ba9926ea9afba00d8e373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c9257600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff1681526020019081526020016000209050611d5083826001015461273c90919063ffffffff16565b8160010181905550611d6d8360025461273c90919063ffffffff16565b600281905550600081600101541415611d9e5760008160000160006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f0f479e9cf02078816287022c7af2a876f12cedc867c479edbb08e5a57d4565558484604051808381526020018260ff1660ff1681526020019250505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b611e6f83836119fc565b50611e7c33848484612789565b1515611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fb357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561213e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561248e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16925060018360ff16101580156124f5575060028360ff1611155b1561250b5761250686868587612995565b6126cf565b600191505b60048260ff161115156125a457600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002090508060000160009054906101000a900460ff1615612597576125968683612cc9565b5b8180600101925050612510565b6125f684600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600082821115151561274a57fe5b818303905092915050565b600080828401905083811015151561276957fe5b8091505092915050565b6000818381151561278057fe5b04905092915050565b600080612795856131a9565b15156127a4576001915061298c565b8473ffffffffffffffffffffffffffffffffffffffff16634fc35859338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561289957808201518184015260208101905061287e565b50505050905090810190601f1680156128c65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b505050506040513d602081101561291257600080fd5b81019080805190602001909291905050509050639d188c227c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b6000806000806000806129a6613317565b60001515600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060000160009054906101000a900460ff161515141515612a88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c7265616479204c6f636b656420557365720000000000000000000000000081525060200191505060405180910390fd5b60018960ff161415612ac15742965060009550612aaf60648961277390919063ffffffff16565b94506006935060059250879150612aea565b42965060069550612adc60148961277390919063ffffffff16565b945060149350601492508791505b610140604051908101604052806001151581526020018a60ff16815260200189815260200188815260200187815260200160008152602001868152602001858152602001848152602001838152509050612b8c88600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050505050505050505050505050565b600080600080600080600080600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60ff1660ff168152602001908152602001600020975060018960ff16148015612d44575060068860060154145b8015612d69575042612d66620d2f008a6002015461275590919063ffffffff16565b11155b15612e6957612d88620d2f00896002015461275590919063ffffffff16565b886002018190555060058860060181905550612db2600589600501546131bc90919063ffffffff16565b9650612dcb87896001015461273c90919063ffffffff16565b8860010181905550612e2587600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60001515612e91612e878a60020154426131f790919063ffffffff16565b8a60030154613216565b15151415612e9e5761319d565b429550612f40868961014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505061322b565b94506000851415612f505761319d565b60018960ff1614156130545787600601549250600091505b848260ff16101561304f576005831415612fb357600183039250612fac612f9d600a8a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b60028310158015612fc5575060048311155b1561300157600183039250612ffa612feb60148a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b60018314156130415760018303925061303a61302b60198a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b5b8180600101925050612f68565b61306e565b61306b8860050154866131bc90919063ffffffff16565b93505b6130858589600601546131f790919063ffffffff16565b905060006130a0858a600101546131f790919063ffffffff16565b14806130ac5750600081145b156130d6578760010154935060008860000160006101000a81548160ff0219169083151502179055505b4288600401819055508088600601819055506130ff84896001015461273c90919063ffffffff16565b886001018190555061315984600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050505050505050565b600080823b905060008111915050919050565b60008060008414156131d157600091506131f0565b82840290508284828115156131e257fe5b041415156131ec57fe5b8091505b5092915050565b60008282111561320a5760009050613210565b81830390505b92915050565b600081613222846132c1565b11905092915050565b600080600080600080603c806018601e8a6080015102020202945061325d85886060015161275590919063ffffffff16565b93506000925060008760a0015114156132825761327b8489036132c1565b92506132b3565b61328d8489036132c1565b91508660e001518761010001510390506132b081836131f790919063ffffffff16565b92505b829550505050505092915050565b6000613310601e61330260186132f4603c6132e6603c8961277390919063ffffffff16565b61277390919063ffffffff16565b61277390919063ffffffff16565b61277390919063ffffffff16565b9050919050565b61014060405190810160405280600015158152602001600060ff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a7230582024fb9ce1cb2ee0851c285b637255da6109ef1fbff91d4e5c7464efa2c30e67820029
Deployed Bytecode
0x608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461014e57806305d2035b146101b257806306fdde03146101e1578063095ea7b3146102715780630b5cc187146102d65780631764aeca1461032d57806318160ddd146103da57806323b872dd14610405578063313ce5671461048a578063423f6cef146104bb57806342842e0e146105085780636112e8ac1461057557806366188463146105e757806370a082311461064c57806376227f3b146106a35780637d64bcb4146106d05780638da5cb5b146106ff57806395d89b4114610756578063a9059cbb146107e6578063b88d4fde1461084b578063d73dd623146108fe578063dd62ed3e14610963578063e5230492146109da578063eb79554914610a07578063f2fde38b14610a9a575b600080fd5b34801561015a57600080fd5b5061019860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610add565b604051808215151515815260200191505060405180910390f35b3480156101be57600080fd5b506101c7610b44565b604051808215151515815260200191505060405180910390f35b3480156101ed57600080fd5b506101f6610b5b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023657808201518184015260208101905061021b565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027d57600080fd5b506102bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfd565b604051808215151515815260200191505060405180910390f35b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c14565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b5061037b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c5d565b604051808b1515151581526020018a60ff1660ff1681526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b3480156103e657600080fd5b506103ef610db9565b6040518082815260200191505060405180910390f35b34801561041157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dc3565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610e74565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c757600080fd5b50610506600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8b565b005b34801561051457600080fd5b50610573600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eaa565b005b34801561058157600080fd5b506105cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190505050610ecb565b604051808215151515815260200191505060405180910390f35b3480156105f357600080fd5b50610632600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113a5565b604051808215151515815260200191505060405180910390f35b34801561065857600080fd5b5061068d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114dc565b6040518082815260200191505060405180910390f35b3480156106af57600080fd5b506106ce6004803603810190808035906020019092919050505061165b565b005b3480156106dc57600080fd5b506106e561186c565b604051808215151515815260200191505060405180910390f35b34801561070b57600080fd5b50610714611934565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076257600080fd5b5061076b61195a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ab578082015181840152602081019050610790565b50505050905090810190601f1680156107d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107f257600080fd5b50610831600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119fc565b604051808215151515815260200191505060405180910390f35b34801561085757600080fd5b506108fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611a13565b005b34801561090a57600080fd5b50610949600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611acb565b604051808215151515815260200191505060405180910390f35b34801561096f57600080fd5b506109c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b70565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a0560048036038101908080359060200190929190505050611bf7565b005b348015610a1357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611e65565b005b348015610aa657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60009054906101000a900460ff16905090565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf35780601f10610bc857610100808354040283529160200191610bf3565b820191906000526020600020905b815481529060010190602001808311610bd657829003601f168201915b5050505050905090565b6000610c0a338484612073565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600080600080610c74613317565b600860008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d60ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509295989b9194979a5092959850565b6000600254905090565b6000610dd08484846122f4565b610e698433610e6485600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b612073565b600190509392505050565b6000600360009054906101000a900460ff16905090565b610ea682826020604051908101604052806000815250611e65565b5050565b610ec68383836020604051908101604052806000815250611a13565b505050565b600080600080600080610edc613317565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3857600080fd5b600b60009054906101000a900460ff16151515610f5457600080fd5b60058860ff16101515610fcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e2054797065204e554c4c000000000000000000000000000000000081525060200191505060405180910390fd5b610fe48960025461275590919063ffffffff16565b60028190555060038860ff1610151561124a5760038860ff161415611031576000955061101d606460095461277390919063ffffffff16565b945060639350606392506009549150611068565b60048860ff16141561106757600095506110576064600a5461277390919063ffffffff16565b94506055935060559250600a5491505b5b610140604051908101604052806001151581526020018960ff1681526020018a815260200160045481526020018781526020016000815260200186815260200185815260200184815260200183815250905080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8b8b6004548b8b8b8b604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a36112e0565b61129c89600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8973ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858a6040518082815260200191505060405180910390a28973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b6040518082815260200191505060405180910390a3600196505050505050509392505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561143557600091506114c7565b6114c482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b91505b6114d2338484612073565b6001905092915050565b60008060006114e9613317565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600191505b60048260ff1611151561165057600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905061164181604001518461275590919063ffffffff16565b92508180600101925050611530565b829350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116b757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561170557600080fd5b61175781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117af8160025461273c90919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa0f3dea10c8bf26d7f1b6b0cf33166195f48616c562c681b49eaaa2423894d00826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ca57600080fd5b600b60009054906101000a900460ff161515156118e657600080fd5b6001600b60006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119f25780601f106119c7576101008083540402835291602001916119f2565b820191906000526020600020905b8154815290600101906020018083116119d557829003601f168201915b5050505050905090565b6000611a093384846122f4565b6001905092915050565b611a1e848484610dc3565b50611a2b84848484612789565b1515611ac5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000611b663384611b6185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b612073565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073588eab2fd73e381effa8e4f084bf5a686ec9ed6873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c87575073461030be06272623f7135ba9926ea9afba00d8e373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c9257600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff1681526020019081526020016000209050611d5083826001015461273c90919063ffffffff16565b8160010181905550611d6d8360025461273c90919063ffffffff16565b600281905550600081600101541415611d9e5760008160000160006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f0f479e9cf02078816287022c7af2a876f12cedc867c479edbb08e5a57d4565558484604051808381526020018260ff1660ff1681526020019250505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b611e6f83836119fc565b50611e7c33848484612789565b1515611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fb357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561213e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561248e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16925060018360ff16101580156124f5575060028360ff1611155b1561250b5761250686868587612995565b6126cf565b600191505b60048260ff161115156125a457600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002090508060000160009054906101000a900460ff1615612597576125968683612cc9565b5b8180600101925050612510565b6125f684600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600082821115151561274a57fe5b818303905092915050565b600080828401905083811015151561276957fe5b8091505092915050565b6000818381151561278057fe5b04905092915050565b600080612795856131a9565b15156127a4576001915061298c565b8473ffffffffffffffffffffffffffffffffffffffff16634fc35859338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561289957808201518184015260208101905061287e565b50505050905090810190601f1680156128c65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b505050506040513d602081101561291257600080fd5b81019080805190602001909291905050509050639d188c227c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b6000806000806000806129a6613317565b60001515600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060000160009054906101000a900460ff161515141515612a88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c7265616479204c6f636b656420557365720000000000000000000000000081525060200191505060405180910390fd5b60018960ff161415612ac15742965060009550612aaf60648961277390919063ffffffff16565b94506006935060059250879150612aea565b42965060069550612adc60148961277390919063ffffffff16565b945060149350601492508791505b610140604051908101604052806001151581526020018a60ff16815260200189815260200188815260200187815260200160008152602001868152602001858152602001848152602001838152509050612b8c88600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050505050505050505050505050565b600080600080600080600080600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60ff1660ff168152602001908152602001600020975060018960ff16148015612d44575060068860060154145b8015612d69575042612d66620d2f008a6002015461275590919063ffffffff16565b11155b15612e6957612d88620d2f00896002015461275590919063ffffffff16565b886002018190555060058860060181905550612db2600589600501546131bc90919063ffffffff16565b9650612dcb87896001015461273c90919063ffffffff16565b8860010181905550612e2587600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60001515612e91612e878a60020154426131f790919063ffffffff16565b8a60030154613216565b15151415612e9e5761319d565b429550612f40868961014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505061322b565b94506000851415612f505761319d565b60018960ff1614156130545787600601549250600091505b848260ff16101561304f576005831415612fb357600183039250612fac612f9d600a8a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b60028310158015612fc5575060048311155b1561300157600183039250612ffa612feb60148a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b60018314156130415760018303925061303a61302b60198a600501546131bc90919063ffffffff16565b8561275590919063ffffffff16565b9350613042565b5b8180600101925050612f68565b61306e565b61306b8860050154866131bc90919063ffffffff16565b93505b6130858589600601546131f790919063ffffffff16565b905060006130a0858a600101546131f790919063ffffffff16565b14806130ac5750600081145b156130d6578760010154935060008860000160006101000a81548160ff0219169083151502179055505b4288600401819055508088600601819055506130ff84896001015461273c90919063ffffffff16565b886001018190555061315984600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275590919063ffffffff16565b600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050505050505050565b600080823b905060008111915050919050565b60008060008414156131d157600091506131f0565b82840290508284828115156131e257fe5b041415156131ec57fe5b8091505b5092915050565b60008282111561320a5760009050613210565b81830390505b92915050565b600081613222846132c1565b11905092915050565b600080600080600080603c806018601e8a6080015102020202945061325d85886060015161275590919063ffffffff16565b93506000925060008760a0015114156132825761327b8489036132c1565b92506132b3565b61328d8489036132c1565b91508660e001518761010001510390506132b081836131f790919063ffffffff16565b92505b829550505050505092915050565b6000613310601e61330260186132f4603c6132e6603c8961277390919063ffffffff16565b61277390919063ffffffff16565b61277390919063ffffffff16565b61277390919063ffffffff16565b9050919050565b61014060405190810160405280600015158152602001600060ff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a7230582024fb9ce1cb2ee0851c285b637255da6109ef1fbff91d4e5c7464efa2c30e67820029
Deployed Bytecode Sourcemap
21409:502:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2427:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2427:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18866:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18866:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21730:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21730:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21730:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7245:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7245:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6211:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6211:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6335:505;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6335:505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5699:91:0;;;;;;;;;;;;;;;;;;;;;;;7958:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7958:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6848:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6848:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8226:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8226:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8623:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8623:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18970:2081;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18970:2081:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7608:342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:405;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5798:405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17087:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17087:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;21059:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21059:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3131:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21821:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21821:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21821:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6939:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6939:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8781:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8781:287:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7403:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7403:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7103:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17613:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17613:540:0;;;;;;;;;;;;;;;;;;;;;;;;;;8352:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8352:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3535:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3535:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2427:135;2497:4;2521:20;:33;2542:11;2521:33;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:40;;2427:135;;;:::o;18866:96::-;18914:4;18938:16;;;;;;;;;;;18931:23;;18866:96;:::o;21730:83::-;21767:6;21800:5;21793:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21730:83;:::o;7245:150::-;7311:4;7328:37;7337:10;7349:7;7358:6;7328:8;:37::i;:::-;7383:4;7376:11;;7245:150;;;;:::o;6211:116::-;6274:7;6301:9;:18;6311:7;6301:18;;;;;;;;;;;;;;;;6294:25;;6211:116;;;:::o;6335:505::-;6410:4;6416:5;6423:7;6432;6441;6450;6459;6468;6477;6486;6506:24;;:::i;:::-;6533:11;:20;6545:7;6533:20;;;;;;;;;;;;;;;:31;6554:9;6533:31;;;;;;;;;;;;;;;6506:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6583:8;:17;;;6602:8;:18;;;6622:8;:15;;;6639:8;:24;;;6665:8;:26;;;6693:8;:28;;;6723:8;:29;;;6754:8;:26;;;6782:8;:26;;;6810:8;:21;;;6575:257;;;;;;;;;;;;;;;;;;;;6335:505;;;;;;;;;;;;;;:::o;5699:91::-;5743:7;5770:12;;5763:19;;5699:91;:::o;7958:256::-;8047:4;8064:36;8074:6;8082:9;8093:6;8064:9;:36::i;:::-;8111:73;8120:6;8128:10;8140:43;8176:6;8140:11;:19;8152:6;8140:19;;;;;;;;;;;;;;;:31;8160:10;8140:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;8111:8;:73::i;:::-;8202:4;8195:11;;7958:256;;;;;:::o;6848:83::-;6889:5;6914:9;;;;;;;;;;;6907:16;;6848:83;:::o;8226:118::-;8301:35;8314:9;8325:6;8301:35;;;;;;;;;;;;;:12;:35::i;:::-;8226:118;;:::o;8623:150::-;8718:47;8735:6;8743:9;8754:6;8718:47;;;;;;;;;;;;;:16;:47::i;:::-;8623:150;;;:::o;18970:2081::-;19066:4;19224:25;19264:28;19307:25;19347;19387:20;20066:27;;:::i;:::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;18835:16;;;;;;;;;;;18834:17;18826:26;;;;;;;;19104:1;19091:10;:14;;;19083:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19151:25;19168:7;19151:12;;:16;;:25;;;;:::i;:::-;19136:12;:40;;;;19206:1;19192:10;:15;;;;19189:1745;;;19453:1;19439:10;:15;;;19436:602;;;19519:1;19499:21;;19562:25;19583:3;19562:16;;:20;;:25;;;;:::i;:::-;19539:48;;19626:2;19606:22;;19667:2;19647:22;;19703:16;;19688:31;;19436:602;;;19758:1;19744:10;:15;;;19741:297;;;19824:1;19804:21;;19867:24;19887:3;19867:15;;:19;;:24;;;;:::i;:::-;19844:47;;19930:2;19910:22;;19971:2;19951:22;;20007:15;;19992:30;;19741:297;19436:602;20096:498;;;;;;;;;20134:4;20096:498;;;;;;20169:10;20096:498;;;;;;20206:7;20096:498;;;;20249:17;;20096:498;;;;20304:17;20096:498;;;;20361:1;20096:498;;;;20403:20;20096:498;;;;20461:17;20096:498;;;;20516:17;20096:498;;;;20566:12;20096:498;;;20066:528;;20654:11;20623;:16;20635:3;20623:16;;;;;;;;;;;;;;;:28;20640:10;20623:28;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20722:3;20699:146;;20718:1;20699:146;;;20727:7;20736:10;20748:17;;20767;20786:20;20808:17;20827;20699:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19189:1745;;;20895:27;20914:7;20895:9;:14;20905:3;20895:14;;;;;;;;;;;;;;;;:18;;:27;;;;:::i;:::-;20878:9;:14;20888:3;20878:14;;;;;;;;;;;;;;;:44;;;;19189:1745;20956:3;20951:18;;;20961:7;20951:18;;;;;;;;;;;;;;;;;;21006:3;20985:34;;21002:1;20985:34;;;21011:7;20985:34;;;;;;;;;;;;;;;;;;21039:4;21032:11;;18970:2081;;;;;;;;;;;:::o;7608:342::-;7683:4;7714:11;:23;7726:10;7714:23;;;;;;;;;;;;;;;:32;7738:7;7714:32;;;;;;;;;;;;;;;;7704:6;:42;;7700:171;;;7772:1;7763:10;;7700:171;;;7815:44;7852:6;7815:11;:23;7827:10;7815:23;;;;;;;;;;;;;;;:32;7839:7;7815:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;7806:53;;7700:171;7883:37;7892:10;7904:7;7913:6;7883:8;:37::i;:::-;7938:4;7931:11;;7608:342;;;;:::o;5798:405::-;5855:7;5875:21;5928:15;6020:24;;:::i;:::-;5899:9;:18;5909:7;5899:18;;;;;;;;;;;;;;;;5875:42;;5973:1;5961:13;;5956:199;5989:1;5976:9;:14;;;;5956:199;;;6047:11;:20;6059:7;6047:20;;;;;;;;;;;;;;;:31;6068:9;6047:31;;;;;;;;;;;;;;;6020:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6109:34;6127:8;:15;;;6109:13;:17;;:34;;;;:::i;:::-;6093:50;;5992:11;;;;;;;5956:199;;;6182:13;6175:20;;5798:405;;;;;;:::o;17087:350::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;17174:9;:21;17184:10;17174:21;;;;;;;;;;;;;;;;17164:6;:31;;17156:40;;;;;;;;17233:33;17259:6;17233:9;:21;17243:10;17233:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;17209:9;:21;17219:10;17209:21;;;;;;;;;;;;;;;:57;;;;17292:24;17309:6;17292:12;;:16;;:24;;;;:::i;:::-;17277:12;:39;;;;17354:10;17338:35;;;17366:6;17338:35;;;;;;;;;;;;;;;;;;17418:1;17389:40;;17398:10;17389:40;;;17422:6;17389:40;;;;;;;;;;;;;;;;;;17087:350;:::o;21059:159::-;21118:4;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;18835:16;;;;;;;;;;;18834:17;18826:26;;;;;;;;21154:4;21135:16;;:23;;;;;;;;;;;;;;;;;;21174:14;;;;;;;;;;21206:4;21199:11;;21059:159;:::o;3131:20::-;;;;;;;;;;;;;:::o;21821:87::-;21860:6;21893:7;21886:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21821:87;:::o;6939:156::-;7008:4;7025:40;7035:10;7047:9;7058:6;7025:9;:40::i;:::-;7083:4;7076:11;;6939:156;;;;:::o;8781:287::-;8895:39;8908:6;8916:9;8927:6;8895:12;:39::i;:::-;;8953:54;8975:6;8983:9;8994:6;9002:4;8953:21;:54::i;:::-;8945:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8781:287;;;;:::o;7403:197::-;7478:4;7495:75;7504:10;7516:7;7525:44;7562:6;7525:11;:23;7537:10;7525:23;;;;;;;;;;;;;;;:32;7549:7;7525:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;7495:8;:75::i;:::-;7588:4;7581:11;;7403:197;;;;:::o;7103:134::-;7175:7;7202:11;:18;7214:5;7202:18;;;;;;;;;;;;;;;:27;7221:7;7202:27;;;;;;;;;;;;;;;;7195:34;;7103:134;;;;:::o;17613:540::-;17687:22;17748:25;16957:42;16943:56;;:10;:56;;;:123;;;;17024:42;17010:56;;:10;:56;;;16943:123;16935:138;;;;;;;;17712:13;:25;17726:10;17712:25;;;;;;;;;;;;;;;;;;;;;;;;;17687:50;;17776:11;:23;17788:10;17776:23;;;;;;;;;;;;;;;:41;17800:16;17776:41;;;;;;;;;;;;;;;17748:69;;17848:27;17868:6;17848:8;:15;;;:19;;:27;;;;:::i;:::-;17830:8;:15;;:45;;;;17901:24;17918:6;17901:12;;:16;;:24;;;;:::i;:::-;17886:12;:39;;;;17960:1;17941:8;:15;;;:20;17938:77;;;17998:5;17978:8;:17;;;:25;;;;;;;;;;;;;;;;;;17938:77;18052:10;18036:53;;;18064:6;18072:16;18036:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;18134:1;18105:40;;18114:10;18105:40;;;18138:6;18105:40;;;;;;;;;;;;;;;;;;17613:540;;;:::o;8352:259::-;8446:27;8455:9;8466:6;8446:8;:27::i;:::-;;8492:58;8514:10;8526:9;8537:6;8545:4;8492:21;:58::i;:::-;8484:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8352:259;;;:::o;3535:198::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;3640:1;3619:23;;:9;:23;;;;3611:32;;;;;;;;3687:9;3659:38;;3680:5;;;;;;;;;;;3659:38;;;;;;;;;;;;3716:9;3708:5;;:17;;;;;;;;;;;;;;;;;;3535:198;:::o;9076:338::-;9187:1;9170:19;;:5;:19;;;;9162:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9268:1;9249:21;;:7;:21;;;;9241:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9352:6;9322:11;:18;9334:5;9322:18;;;;;;;;;;;;;;;:27;9341:7;9322:27;;;;;;;;;;;;;;;:36;;;;9390:7;9374:32;;9383:5;9374:32;;;9399:6;9374:32;;;;;;;;;;;;;;;;;;9076:338;;;:::o;9422:1072::-;9677:22;10007:15;10105:25;9538:1;9520:20;;:6;:20;;;;9512:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9622:1;9601:23;;:9;:23;;;;9593:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9702:13;:21;9716:6;9702:21;;;;;;;;;;;;;;;;;;;;;;;;;9677:46;;9832:1;9812:16;:21;;;;:46;;;;;9857:1;9837:16;:21;;;;9812:46;9809:625;;;9875:55;9886:6;9894:9;9905:16;9923:6;9875:10;:55::i;:::-;9809:625;;;10054:1;10042:13;;10037:252;10070:1;10057:9;:14;;;;10037:252;;;10133:11;:19;10145:6;10133:19;;;;;;;;;;;;;;;:30;10153:9;10133:30;;;;;;;;;;;;;;;10105:58;;10186:8;:17;;;;;;;;;;;;10182:92;;;10228:26;10236:6;10244:9;10228:7;:26::i;:::-;10182:92;10073:11;;;;;;;10037:252;;;10323:29;10345:6;10323:9;:17;10333:6;10323:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;10303:9;:17;10313:6;10303:17;;;;;;;;;;;;;;;:49;;;;10390:32;10415:6;10390:9;:20;10400:9;10390:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10367:9;:20;10377:9;10367:20;;;;;;;;;;;;;;;:55;;;;9809:625;10468:9;10451:35;;10460:6;10451:35;;;10479:6;10451:35;;;;;;;;;;;;;;;;;;9422:1072;;;;;;:::o;555:123::-;613:7;645:1;640;:6;;633:14;;;;;;669:1;665;:5;658:12;;555:123;;;;:::o;826:147::-;884:7;904:9;920:1;916;:5;904:17;;944:1;939;:6;;932:14;;;;;;964:1;957:8;;826:147;;;;;:::o;449:98::-;507:7;538:1;534;:5;;;;;;;;527:12;;449:98;;;;:::o;16095:358::-;16215:4;16308:13;16237:21;16248:9;16237:10;:21::i;:::-;16236:22;16232:66;;;16282:4;16275:11;;;;16232:66;16339:9;16324:41;;;16366:10;16378:6;16386;16394:5;16324:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;16324:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16324:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16324:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16324:76:0;;;;;;;;;;;;;;;;16308:92;;5134:10;16429:15;;16419:25;;;:6;:25;;;;16411:34;;16095:358;;;;;;;;:::o;10502:1649::-;10726:23;10760:25;10796:28;10835:25;10871;10907:20;11523:27;;:::i;:::-;10676:5;10624:57;;:11;:22;10636:9;10624:22;;;;;;;;;;;;;;;:39;10647:15;10624:39;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:57;;;10616:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10970:1;10951:15;:20;;;10948:555;;;11020:3;11002:21;;11058:1;11038:21;;11097:15;11108:3;11097:6;:10;;:15;;;;:::i;:::-;11074:38;;11147:1;11127:21;;11183:1;11163:21;;11214:6;11199:21;;10948:555;;;11290:3;11272:21;;11328:1;11308:21;;11367:14;11378:2;11367:6;:10;;:14;;;;:::i;:::-;11344:37;;11416:2;11396:22;;11453:2;11433:22;;11485:6;11470:21;;10948:555;11553:456;;;;;;;;;11587:4;11553:456;;;;;;11618:15;11553:456;;;;;;11656:6;11553:456;;;;11694:15;11553:456;;;;11743:17;11553:456;;;;11796:1;11553:456;;;;11834:20;11553:456;;;;11888:17;11553:456;;;;11939:17;11553:456;;;;11985:12;11553:456;;;11523:486;;12050:29;12072:6;12050:9;:17;12060:6;12050:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12030:9;:17;12040:6;12030:17;;;;;;;;;;;;;;;:49;;;;12132:11;12090;:22;12102:9;12090:22;;;;;;;;;;;;;;;:39;12113:15;12090:39;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10502:1649;;;;;;;;;;;:::o;12163:2675::-;12233:25;12675:24;13058:17;13092:13;13206:20;13271:19;13338:7;14302:25;12261:11;:19;12273:6;12261:19;;;;;;;;;;;;;;;:30;12281:9;12261:30;;;;;;;;;;;;;;;12233:58;;12382:1;12369:9;:14;;;:49;;;;;12417:1;12387:8;:26;;;:31;12369:49;:96;;;;;12462:3;12422:36;12451:6;12422:8;:24;;;:28;;:36;;;;:::i;:::-;:43;;12369:96;12366:528;;;12541:36;12570:6;12541:8;:24;;;:28;;:36;;;;:::i;:::-;12514:8;:24;;:63;;;;12621:1;12592:8;:26;;:30;;;;12702:36;12736:1;12702:8;:29;;;:33;;:36;;;;:::i;:::-;12675:63;;12771:37;12791:16;12771:8;:15;;;:19;;:37;;;;:::i;:::-;12753:8;:15;;:55;;;;12843:39;12865:16;12843:9;:17;12853:6;12843:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;12823:9;:17;12833:6;12823:17;;;;;;;;;;;;;;;:59;;;;12366:528;13006:5;12909:102;;:93;12935:37;12947:8;:24;;;12935:3;:11;;:37;;;;:::i;:::-;12975:8;:26;;;12909:24;:93::i;:::-;:102;;;12906:140;;;13028:7;;12906:140;13078:3;13058:23;;13108:36;13124:9;13135:8;13108:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:36::i;:::-;13092:52;;13186:1;13177:5;:10;13174:22;;;13189:7;;13174:22;13253:1;13240:9;:14;;;13237:977;;;13293:8;:26;;;13271:48;;13348:1;13338:11;;13334:781;13355:5;13351:1;:9;;;13334:781;;;13404:1;13389:11;:16;13386:218;;;13458:1;13444:11;:15;13430:29;;13497:55;13514:37;13548:2;13514:8;:29;;;:33;;:37;;;;:::i;:::-;13497:12;:16;;:55;;;;:::i;:::-;13482:70;;13576:8;;13386:218;13642:1;13627:11;:16;;:36;;;;;13662:1;13647:11;:16;;13627:36;13624:238;;;13716:1;13702:11;:15;13688:29;;13755:55;13772:37;13806:2;13772:8;:29;;;:33;;:37;;;;:::i;:::-;13755:12;:16;;:55;;;;:::i;:::-;13740:70;;13834:8;;13624:238;13900:1;13885:11;:16;13882:218;;;13954:1;13940:11;:15;13926:29;;13993:55;14010:37;14044:2;14010:8;:29;;;:33;;:37;;;;:::i;:::-;13993:12;:16;;:55;;;;:::i;:::-;13978:70;;14072:8;;13882:218;13334:781;13362:3;;;;;;;13334:781;;;13237:977;;;14162:40;14172:8;:29;;;14162:5;:9;;:40;;;;:::i;:::-;14147:55;;13237:977;14330:41;14365:5;14330:8;:26;;;:34;;:41;;;;:::i;:::-;14302:69;;14427:1;14386:37;14410:12;14386:8;:15;;;:23;;:37;;;;:::i;:::-;:42;:68;;;;14453:1;14432:17;:22;14386:68;14382:171;;;14486:8;:15;;;14471:30;;14536:5;14516:8;:17;;;:25;;;;;;;;;;;;;;;;;;14382:171;14632:3;14601:8;:28;;:34;;;;14675:17;14646:8;:26;;:46;;;;14721:33;14741:12;14721:8;:15;;;:19;;:33;;;;:::i;:::-;14703:8;:15;;:51;;;;14795:35;14817:12;14795:9;:17;14805:6;14795:17;;;;;;;;;;;;;;;;:21;;:35;;;;:::i;:::-;14775:9;:17;14785:6;14775:17;;;;;;;;;;;;;;;:55;;;;12163:2675;;;;;;;;;;;:::o;15913:174::-;15973:4;15990:12;16044:7;16032:20;16024:28;;16078:1;16071:4;:8;16064:15;;15913:174;;;;:::o;233:208::-;291:7;368:9;320:1;315;:6;311:47;;;345:1;338:8;;;;311:47;384:1;380;:5;368:17;;412:1;407;403;:5;;;;;;;;:10;396:18;;;;;;432:1;425:8;;233:208;;;;;;:::o;686:132::-;748:7;776:1;772;:5;768:19;;;786:1;779:8;;;;768:19;809:1;805;:5;798:12;;686:132;;;;;:::o;15607:151::-;15694:4;15744:6;15718:23;15736:4;15718:17;:23::i;:::-;:32;15711:39;;15607:151;;;;:::o;14850:745::-;14939:7;14990:18;15070:17;15141:13;15309:21;15391:26;15055:2;15050;15045;15040;15011:8;:26;;;:31;:36;:41;:46;14990:67;;15090:40;15119:10;15090:8;:24;;;:28;;:40;;;;:::i;:::-;15070:60;;15157:1;15141:17;;15207:1;15175:8;:28;;;:33;15171:394;;;15233:43;15266:9;15251:12;:24;15233:17;:43::i;:::-;15225:51;;15171:394;;;15333:43;15366:9;15351:12;:24;15333:17;:43::i;:::-;15309:67;;15449:8;:26;;;15420:8;:26;;;:55;15391:84;;15512:41;15534:18;15512:13;:21;;:41;;;;:::i;:::-;15504:49;;15171:394;15582:5;15575:12;;14850:745;;;;;;;;;:::o;15770:135::-;15834:7;15861:36;15894:2;15861:28;15886:2;15861:20;15878:2;15861:12;15870:2;15861:4;:8;;:12;;;;:::i;:::-;:16;;:20;;;;:::i;:::-;:24;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;15854:43;;15770:135;;;:::o;21409:502::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://24fb9ce1cb2ee0851c285b637255da6109ef1fbff91d4e5c7464efa2c30e6782
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.