Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
500,000,000 AIM
Holders
2,087
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
83,697,929 AIMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AIMToken
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-22 */ // File: ..\openzeppelin-contracts-1.12.0\contracts\token\ERC20\ERC20Basic.sol pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: ..\openzeppelin-contracts-1.12.0\contracts\math\SafeMath.sol pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } } // File: ..\openzeppelin-contracts-1.12.0\contracts\token\ERC20\BasicToken.sol pragma solidity ^0.4.24; /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) internal balances; uint256 internal totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_value <= balances[msg.sender]); require(_to != address(0)); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } // File: ..\openzeppelin-contracts-1.12.0\contracts\token\ERC20\ERC20.sol pragma solidity ^0.4.24; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } // File: openzeppelin-contracts-1.12.0\contracts\token\ERC20\StandardToken.sol pragma solidity ^0.4.24; /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://github.com/ethereum/EIPs/issues/20 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(_to != address(0)); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance( address _owner, address _spender ) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval( address _spender, uint256 _addedValue ) public returns (bool) { allowed[msg.sender][_spender] = ( allowed[msg.sender][_spender].add(_addedValue)); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval( address _spender, uint256 _subtractedValue ) public returns (bool) { uint256 oldValue = allowed[msg.sender][_spender]; if (_subtractedValue >= oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } // File: openzeppelin-contracts-1.12.0\contracts\ownership\Ownable.sol pragma solidity ^0.4.24; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: contracts\ERC1132.sol pragma solidity ^0.4.24; /** * @title ERC1132 interface * @dev see https://github.com/ethereum/EIPs/issues/1132 */ contract ERC1132 { /** * @dev Reasons why a user's tokens have been locked */ mapping(address => bytes32[]) public lockReason; /** * @dev locked token structure */ struct lockToken { uint256 amount; uint256 validity; bool claimed; } /** * @dev Holds number & validity of tokens locked for a given reason for * a specified address */ mapping(address => mapping(bytes32 => lockToken)) public locked; /** * @dev Records data of all the tokens Locked */ event Locked( address indexed _of, bytes32 indexed _reason, uint256 _amount, uint256 _validity ); /** * @dev Records data of all the tokens unlocked */ event Unlocked( address indexed _of, bytes32 indexed _reason, uint256 _amount ); /** * @dev Locks a specified amount of tokens against an address, * for a specified reason and time * @param _reason The reason to lock tokens * @param _amount Number of tokens to be locked * @param _time Lock time in seconds * @param _of address to be locked // 추가 */ function lock(bytes32 _reason, uint256 _amount, uint256 _time, address _of) public returns (bool); /** * @dev Returns tokens locked for a specified address for a * specified reason * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for */ function tokensLocked(address _of, bytes32 _reason) public view returns (uint256 amount); /** * @dev Returns tokens locked for a specified address for a * specified reason at a specific time * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for * @param _time The timestamp to query the lock tokens for */ function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) public view returns (uint256 amount); /** * @dev Returns total tokens held by an address (locked + transferable) * @param _of The address to query the total balance of */ function totalBalanceOf(address _of) public view returns (uint256 amount); /** * @dev Extends lock for a specified reason and time * @param _reason The reason to lock tokens * @param _time Lock extension time in seconds */ function extendLock(bytes32 _reason, uint256 _time) public returns (bool); /** * @dev Increase number of tokens locked for a specified reason * @param _reason The reason to lock tokens * @param _amount Number of tokens to be increased */ function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool); /** * @dev Returns unlockable tokens for a specified address for a specified reason * @param _of The address to query the the unlockable token count of * @param _reason The reason to query the unlockable tokens for */ function tokensUnlockable(address _of, bytes32 _reason) public view returns (uint256 amount); /** * @dev Unlocks the unlockable tokens of a specified address * @param _of Address of user, claiming back unlockable tokens */ function unlock(address _of) public returns (uint256 unlockableTokens); /** * @dev Gets the unlockable tokens of a specified address * @param _of The address to query the the unlockable token count of */ function getUnlockableTokens(address _of) public view returns (uint256 unlockableTokens); } // File: contracts\AIMToken.sol pragma solidity 0.4.24; contract AIMToken is StandardToken, Ownable, ERC1132 { // Define constants string private constant INIT_TOKEN_NAME = "AInomics Token"; string private constant INIT_TOKEN_SYMBOL = "AIM"; uint256 private constant INIT_TOKEN_DECIMALS = 18; uint256 private constant INITIAL_SUPPLY = 500000000 * (10 ** INIT_TOKEN_DECIMALS); string public name; string public symbol; uint8 public decimals; event Mint(address minter, uint256 value); event Burn(address burner, uint256 value); event NameChanged(string newName, address by); /** * @dev Error messages for require statements */ string internal constant INVALID_TOKEN_VALUES = 'Invalid token values'; string internal constant NOT_ENOUGH_TOKENS = 'Not enough tokens'; string internal constant ALREADY_LOCKED = 'Tokens already locked'; string internal constant NOT_LOCKED = 'No tokens locked'; string internal constant AMOUNT_ZERO = 'Amount can not be 0'; constructor() public { name = INIT_TOKEN_NAME; symbol = INIT_TOKEN_SYMBOL; decimals = uint8(INIT_TOKEN_DECIMALS); totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; } /* Change Token Name */ function changeName(string memory _name) public onlyOwner{ name = _name; emit NameChanged(name, msg.sender); } /** * @dev Locks a specified amount of tokens against an address, * for a specified reason and time * @param _reason The reason to lock tokens * @param _amount Number of tokens to be locked * @param _time Lock time in seconds * @param _of address to be locked // 추가 */ function lock(bytes32 _reason, uint256 _amount, uint256 _time, address _of) public onlyOwner returns (bool) { uint256 validUntil = now.add(_time); //solhint-disable-line // If tokens are already locked, then functions extendLock or // increaseLockAmount should be used to make any changes require(_amount <= balances[_of], NOT_ENOUGH_TOKENS); // 추가 require(tokensLocked(_of, _reason) == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); if (locked[_of][_reason].amount == 0) lockReason[_of].push(_reason); // transfer(address(this), _amount); // 수정 balances[address(this)] = balances[address(this)].add(_amount); balances[_of] = balances[_of].sub(_amount); locked[_of][_reason] = lockToken(_amount, validUntil, false); // 수정 emit Transfer(_of, address(this), _amount); emit Locked(_of, _reason, _amount, validUntil); return true; } /** * @dev Transfers and Locks a specified amount of tokens, * for a specified reason and time * @param _to adress to which tokens are to be transfered * @param _reason The reason to lock tokens * @param _amount Number of tokens to be transfered and locked * @param _time Lock time in seconds */ function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool) { uint256 validUntil = now.add(_time); //solhint-disable-line require(tokensLocked(_to, _reason) == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); if (locked[_to][_reason].amount == 0) lockReason[_to].push(_reason); transfer(address(this), _amount); locked[_to][_reason] = lockToken(_amount, validUntil, false); emit Locked(_to, _reason, _amount, validUntil); return true; } /** * @dev Returns tokens locked for a specified address for a * specified reason * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for */ function tokensLocked(address _of, bytes32 _reason) public view returns (uint256 amount) { if (!locked[_of][_reason].claimed) amount = locked[_of][_reason].amount; } /** * @dev Returns tokens locked for a specified address for a * specified reason at a specific time * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for * @param _time The timestamp to query the lock tokens for */ function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) public view returns (uint256 amount) { if (locked[_of][_reason].validity > _time) amount = locked[_of][_reason].amount; } /** * @dev Returns total tokens held by an address (locked + transferable) * @param _of The address to query the total balance of */ function totalBalanceOf(address _of) public view returns (uint256 amount) { amount = balances[_of]; for (uint256 i = 0; i < lockReason[_of].length; i++) { amount = amount.add(tokensLocked(_of, lockReason[_of][i])); } } /** * @dev Extends lock for a specified reason and time * @param _reason The reason to lock tokens * @param _time Lock extension time in seconds */ function extendLock(bytes32 _reason, uint256 _time) public returns (bool) { require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED); locked[msg.sender][_reason].validity = locked[msg.sender][_reason].validity.add(_time); emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity); return true; } /** * @dev Increase number of tokens locked for a specified reason * @param _reason The reason to lock tokens * @param _amount Number of tokens to be increased */ function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool) { require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED); transfer(address(this), _amount); locked[msg.sender][_reason].amount = locked[msg.sender][_reason].amount.add(_amount); emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity); return true; } /** * @dev Returns unlockable tokens for a specified address for a specified reason * @param _of The address to query the the unlockable token count of * @param _reason The reason to query the unlockable tokens for */ function tokensUnlockable(address _of, bytes32 _reason) public view returns (uint256 amount) { if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) //solhint-disable-line amount = locked[_of][_reason].amount; } /** * @dev Unlocks the unlockable tokens of a specified address * @param _of Address of user, claiming back unlockable tokens */ function unlock(address _of) public returns (uint256 unlockableTokens) { uint256 lockedTokens; for (uint256 i = 0; i < lockReason[_of].length; i++) { lockedTokens = tokensUnlockable(_of, lockReason[_of][i]); if (lockedTokens > 0) { unlockableTokens = unlockableTokens.add(lockedTokens); locked[_of][lockReason[_of][i]].claimed = true; emit Unlocked(_of, lockReason[_of][i], lockedTokens); } } if (unlockableTokens > 0) this.transfer(_of, unlockableTokens); } /** * @dev Gets the unlockable tokens of a specified address * @param _of The address to query the the unlockable token count of */ function getUnlockableTokens(address _of) public view returns (uint256 unlockableTokens) { for (uint256 i = 0; i < lockReason[_of].length; i++) { unlockableTokens = unlockableTokens.add(tokensUnlockable(_of, lockReason[_of][i])); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"name":"amount","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":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"},{"name":"_of","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_of","type":"address"}],"name":"unlock","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"changeName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockReason","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"}],"name":"increaseLockAmount","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":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"locked","outputs":[{"name":"amount","type":"uint256"},{"name":"validity","type":"uint256"},{"name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","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":"_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":"minter","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newName","type":"string"},{"indexed":false,"name":"by","type":"address"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600e81526020017f41496e6f6d69637320546f6b656e00000000000000000000000000000000000081525060069080519060200190620000a09291906200016f565b506040805190810160405280600381526020017f41494d000000000000000000000000000000000000000000000000000000000081525060079080519060200190620000ee9291906200016f565b506012600860006101000a81548160ff021916908360ff1602179055506012600a0a631dcd6500026001819055506012600a0a631dcd6500026000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200021e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b257805160ff1916838001178555620001e3565b82800160010185558215620001e3579182015b82811115620001e2578251825591602001919060010190620001c5565b5b509050620001f29190620001f6565b5090565b6200021b91905b8082111562000217576000816000905550600101620001fd565b5090565b90565b613710806200022e6000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610164578063095ea7b3146101f4578063179e91f11461025957806318160ddd146102c85780631a69dc5c146102f357806323b872dd146103705780632f6c493c146103f5578063313ce5671461044c5780634b0ee02a1461047d5780634cb5465f146104d45780635294d0e8146105515780635353a2d8146105b65780635ca48d8c1461061f578063661884631461068457806370a08231146106e9578063715018a61461074057806371d66f001461075757806381fc4d90146107c05780638da5cb5b1461081357806395d89b411461086a578063a9059cbb146108fa578063a9dab1671461095f578063ab4a2eb3146109b2578063d71be8db14610a09578063d73dd62314610a80578063dd62ed3e14610ae5578063f2fde38b14610b5c575b600080fd5b34801561017057600080fd5b50610179610b9f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b957808201518184015260208101905061019e565b50505050905090810190601f1680156101e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3d565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b506102b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610d2f565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102dd610dfa565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b5061035660048036038101908080356000191690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e04565b604051808215151515815260200191505060405180910390f35b34801561037c57600080fd5b506103db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b34801561040157600080fd5b50610436600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611899565b6040518082815260200191505060405180910390f35b34801561045857600080fd5b50610461611bdd565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048957600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf0565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050611d0a565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506120e7565b6040518082815260200191505060405180910390f35b3480156105c257600080fd5b5061061d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612224565b005b34801561062b57600080fd5b5061066e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612388565b6040518082815260200191505060405180910390f35b34801561069057600080fd5b506106cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061245e565b604051808215151515815260200191505060405180910390f35b3480156106f557600080fd5b5061072a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f0565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755612738565b005b34801561076357600080fd5b506107a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061283d565b60405180826000191660001916815260200191505060405180910390f35b3480156107cc57600080fd5b506107f960048036038101908080356000191690602001909291908035906020019092919050505061286d565b604051808215151515815260200191505060405180910390f35b34801561081f57600080fd5b50610828612b4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087657600080fd5b5061087f612b73565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108bf5780820151818401526020810190506108a4565b50505050905090810190601f1680156108ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090657600080fd5b50610945600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c11565b604051808215151515815260200191505060405180910390f35b34801561096b57600080fd5b50610998600480360381019080803560001916906020019092919080359060200190929190505050612e31565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b506109f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613106565b6040518082815260200191505060405180910390f35b348015610a1557600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506131df565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b348015610a8c57600080fd5b50610acb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613223565b604051808215151515815260200191505060405180910390f35b348015610af157600080fd5b50610b46600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061341f565b6040518082815260200191505060405180910390f35b348015610b6857600080fd5b50610b9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134a6565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560001916600019168152602001908152602001600020600101541115610df357600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600019166000191681526020019081526020016000206000015490505b9392505050565b6000600154905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6357600080fd5b610e76844261350e90919063ffffffff16565b90506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156040805190810160405280601181526020017f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000815250901515610f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f5d578082015181840152602081019050610f42565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000610fa58488612388565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561104957808201518184015260208101905061102e565b50505050905090810190601f1680156110765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611168576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561112d578082015181840152602081019050611112565b50505050905090810190601f16801561115a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060000154141561123d57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208690806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b61128e856000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611321856000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060606040519081016040528086815260200182815260200160001515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008860001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a385600019168373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8784604051808381526020018281526020019250505060405180910390a36001915050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561152d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156115b857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b611645826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116d8826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060008090505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611aed5761194c84600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561193c57fe5b90600052602060002001546120e7565b91506000821115611ae05761196a828461350e90919063ffffffff16565b92506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156119fb57fe5b90600052602060002001546000191660001916815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611a8257fe5b9060005260206000200154600019168473ffffffffffffffffffffffffffffffffffffffff167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b80806001019150506118a2565b6000831115611bd6573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d6020811015611bc357600080fd5b8101908080519060200190929190505050505b5050919050565b600860009054906101000a900460ff1681565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611d0457611cf5611ce684600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611cd657fe5b9060005260206000200154612388565b8361350e90919063ffffffff16565b91508080600101915050611c39565b50919050565b600080611d20834261350e90919063ffffffff16565b90506000611d2e8787612388565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611e0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dd2578082015181840152602081019050611db7565b50505050905090810190601f168015611dff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611ef1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611eb6578082015181840152602081019050611e9b565b50505050905090810190601f168015611ee35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600001541415611fc657600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b611fd03085612c11565b5060606040519081016040528085815260200182815260200160001515815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019168673ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b600042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000191660001916815260200190815260200160002060010154111580156121ba5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16155b1561221e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228057600080fd5b806006908051906020019061229692919061363f565b507f1e3652b21ef1bd2c76130610ad0be2b8ab01fbea80964c84c54473bf090dc8a460063360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156123765780601f1061234b57610100808354040283529160200191612376565b820191906000526020600020905b81548152906001019060200180831161235957829003601f168201915b5050935050505060405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16151561245857600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515612570576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612604565b612583838261352a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528160005260406000208181548110151561285857fe5b90600052602060002001600091509150505481565b60008061287a3385612388565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612959576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561291e578082015181840152602081019050612903565b50505050905090810190601f16801561294b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506129643083612c11565b506129d382600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086600019166000191681526020019081526020016000206000015461350e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206000018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c095780601f10612bde57610100808354040283529160200191612c09565b820191906000526020600020905b815481529060010190602001808311612bec57829003601f168201915b505050505081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612c6057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612c9c57600080fd5b612ced826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080612e3e3385612388565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ee2578082015181840152602081019050612ec7565b50505050905090810190601f168015612f0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612f8c82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086600019166000191681526020019081526020016000206001015461350e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206001018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600080600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156131d9576131ca6131bb84600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156131ab57fe5b90600052602060002001546120e7565b8361350e90919063ffffffff16565b9150808060010191505061310e565b50919050565b6005602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b60006132b482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561350257600080fd5b61350b81613543565b50565b6000818301905082811015151561352157fe5b80905092915050565b600082821115151561353857fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561357f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061368057805160ff19168380011785556136ae565b828001600101855582156136ae579182015b828111156136ad578251825591602001919060010190613692565b5b5090506136bb91906136bf565b5090565b6136e191905b808211156136dd5760008160009055506001016136c5565b5090565b905600a165627a7a7230582030e5889af58700c292a0ac957196de89158cf50d8e1844745f23a238b159b6f90029
Deployed Bytecode
0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610164578063095ea7b3146101f4578063179e91f11461025957806318160ddd146102c85780631a69dc5c146102f357806323b872dd146103705780632f6c493c146103f5578063313ce5671461044c5780634b0ee02a1461047d5780634cb5465f146104d45780635294d0e8146105515780635353a2d8146105b65780635ca48d8c1461061f578063661884631461068457806370a08231146106e9578063715018a61461074057806371d66f001461075757806381fc4d90146107c05780638da5cb5b1461081357806395d89b411461086a578063a9059cbb146108fa578063a9dab1671461095f578063ab4a2eb3146109b2578063d71be8db14610a09578063d73dd62314610a80578063dd62ed3e14610ae5578063f2fde38b14610b5c575b600080fd5b34801561017057600080fd5b50610179610b9f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b957808201518184015260208101905061019e565b50505050905090810190601f1680156101e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3d565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b506102b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610d2f565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102dd610dfa565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b5061035660048036038101908080356000191690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e04565b604051808215151515815260200191505060405180910390f35b34801561037c57600080fd5b506103db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b34801561040157600080fd5b50610436600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611899565b6040518082815260200191505060405180910390f35b34801561045857600080fd5b50610461611bdd565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048957600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf0565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050611d0a565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506120e7565b6040518082815260200191505060405180910390f35b3480156105c257600080fd5b5061061d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612224565b005b34801561062b57600080fd5b5061066e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612388565b6040518082815260200191505060405180910390f35b34801561069057600080fd5b506106cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061245e565b604051808215151515815260200191505060405180910390f35b3480156106f557600080fd5b5061072a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f0565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755612738565b005b34801561076357600080fd5b506107a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061283d565b60405180826000191660001916815260200191505060405180910390f35b3480156107cc57600080fd5b506107f960048036038101908080356000191690602001909291908035906020019092919050505061286d565b604051808215151515815260200191505060405180910390f35b34801561081f57600080fd5b50610828612b4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087657600080fd5b5061087f612b73565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108bf5780820151818401526020810190506108a4565b50505050905090810190601f1680156108ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090657600080fd5b50610945600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c11565b604051808215151515815260200191505060405180910390f35b34801561096b57600080fd5b50610998600480360381019080803560001916906020019092919080359060200190929190505050612e31565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b506109f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613106565b6040518082815260200191505060405180910390f35b348015610a1557600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506131df565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b348015610a8c57600080fd5b50610acb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613223565b604051808215151515815260200191505060405180910390f35b348015610af157600080fd5b50610b46600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061341f565b6040518082815260200191505060405180910390f35b348015610b6857600080fd5b50610b9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134a6565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560001916600019168152602001908152602001600020600101541115610df357600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600019166000191681526020019081526020016000206000015490505b9392505050565b6000600154905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6357600080fd5b610e76844261350e90919063ffffffff16565b90506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156040805190810160405280601181526020017f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000815250901515610f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f5d578082015181840152602081019050610f42565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000610fa58488612388565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561104957808201518184015260208101905061102e565b50505050905090810190601f1680156110765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611168576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561112d578082015181840152602081019050611112565b50505050905090810190601f16801561115a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060000154141561123d57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208690806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b61128e856000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611321856000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060606040519081016040528086815260200182815260200160001515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008860001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a385600019168373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8784604051808381526020018281526020019250505060405180910390a36001915050949350505050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561152d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156115b857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b611645826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116d8826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060008090505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611aed5761194c84600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561193c57fe5b90600052602060002001546120e7565b91506000821115611ae05761196a828461350e90919063ffffffff16565b92506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156119fb57fe5b90600052602060002001546000191660001916815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611a8257fe5b9060005260206000200154600019168473ffffffffffffffffffffffffffffffffffffffff167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b80806001019150506118a2565b6000831115611bd6573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d6020811015611bc357600080fd5b8101908080519060200190929190505050505b5050919050565b600860009054906101000a900460ff1681565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611d0457611cf5611ce684600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611cd657fe5b9060005260206000200154612388565b8361350e90919063ffffffff16565b91508080600101915050611c39565b50919050565b600080611d20834261350e90919063ffffffff16565b90506000611d2e8787612388565b146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611e0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dd2578082015181840152602081019050611db7565b50505050905090810190601f168015611dff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611ef1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611eb6578082015181840152602081019050611e9b565b50505050905090810190601f168015611ee35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600001541415611fc657600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b611fd03085612c11565b5060606040519081016040528085815260200182815260200160001515815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019168673ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b600042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000191660001916815260200190815260200160002060010154111580156121ba5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16155b1561221e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228057600080fd5b806006908051906020019061229692919061363f565b507f1e3652b21ef1bd2c76130610ad0be2b8ab01fbea80964c84c54473bf090dc8a460063360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156123765780601f1061234b57610100808354040283529160200191612376565b820191906000526020600020905b81548152906001019060200180831161235957829003601f168201915b5050935050505060405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16151561245857600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515612570576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612604565b612583838261352a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528160005260406000208181548110151561285857fe5b90600052602060002001600091509150505481565b60008061287a3385612388565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612959576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561291e578082015181840152602081019050612903565b50505050905090810190601f16801561294b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506129643083612c11565b506129d382600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086600019166000191681526020019081526020016000206000015461350e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206000018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c095780601f10612bde57610100808354040283529160200191612c09565b820191906000526020600020905b815481529060010190602001808311612bec57829003601f168201915b505050505081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612c6057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612c9c57600080fd5b612ced826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352a90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080612e3e3385612388565b116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ee2578082015181840152602081019050612ec7565b50505050905090810190601f168015612f0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612f8c82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086600019166000191681526020019081526020016000206001015461350e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600019166000191681526020019081526020016000206001018190555082600019163373ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000886000191660001916815260200190815260200160002060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600080600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156131d9576131ca6131bb84600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156131ab57fe5b90600052602060002001546120e7565b8361350e90919063ffffffff16565b9150808060010191505061310e565b50919050565b6005602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b60006132b482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461350e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561350257600080fd5b61350b81613543565b50565b6000818301905082811015151561352157fe5b80905092915050565b600082821115151561353857fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561357f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061368057805160ff19168380011785556136ae565b828001600101855582156136ae579182015b828111156136ad578251825591602001919060010190613692565b5b5090506136bb91906136bf565b5090565b6136e191905b808211156136dd5760008160009055506001016136c5565b5090565b905600a165627a7a7230582030e5889af58700c292a0ac957196de89158cf50d8e1844745f23a238b159b6f90029
Deployed Bytecode Sourcemap
14121:8154:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14461:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14461:18: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;14461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5870:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5870:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18476:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18476:253:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2466:85:0;;;;;;;;;;;;;;;;;;;;;;;15777:910;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15777:910:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4754:487;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4754:487:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21175:631;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21175:631:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14507:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14507:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18893:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18893:300:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:624;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17047:624:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20724:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20724:291:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15335:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15335:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17918:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17918:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7789:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7789:447:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3250:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9361:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9361:114:0;;;;;;10332:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10332:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20004:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20004:465:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8566:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8566:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14483;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14483:20: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;14483:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19386:414;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19386:414:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21969:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21969:303:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10678:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10678:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7014:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7014:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6389:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6389:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9643:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9643:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14461:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5870:192::-;5937:4;5982:6;5950:7;:19;5958:10;5950:19;;;;;;;;;;;;;;;:29;5970:8;5950:29;;;;;;;;;;;;;;;:38;;;;6021:8;6000:38;;6009:10;6000:38;;;6031:6;6000:38;;;;;;;;;;;;;;;;;;6052:4;6045:11;;5870:192;;;;:::o;18476:253::-;18597:14;18665:5;18633:6;:11;18640:3;18633:11;;;;;;;;;;;;;;;:20;18645:7;18633:20;;;;;;;;;;;;;;;;;:29;;;:37;18629:92;;;18694:6;:11;18701:3;18694:11;;;;;;;;;;;;;;;:20;18706:7;18694:20;;;;;;;;;;;;;;;;;:27;;;18685:36;;18629:92;18476:253;;;;;:::o;2466:85::-;2510:7;2533:12;;2526:19;;2466:85;:::o;15777:910::-;15879:4;15890:18;9069:5;;;;;;;;;;;9055:19;;:10;:19;;;9047:28;;;;;;;;15911:14;15919:5;15911:3;:7;;:14;;;;:::i;:::-;15890:35;;16099:8;:13;16108:3;16099:13;;;;;;;;;;;;;;;;16088:7;:24;;16114:17;;;;;;;;;;;;;;;;;;16080:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;16080:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16185:1;16155:26;16168:3;16173:7;16155:12;:26::i;:::-;:31;16188:14;;;;;;;;;;;;;;;;;;16147:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;16147:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16227:1;16216:7;:12;;16230:11;;;;;;;;;;;;;;;;;;16208:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;16208:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16284:1;16253:6;:11;16260:3;16253:11;;;;;;;;;;;;;;;:20;16265:7;16253:20;;;;;;;;;;;;;;;;;:27;;;:32;16249:71;;;16291:10;:15;16302:3;16291:15;;;;;;;;;;;;;;;16312:7;16291:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16291:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:71;16403:36;16431:7;16403:8;:23;16420:4;16403:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;16377:8;:23;16394:4;16377:23;;;;;;;;;;;;;;;:62;;;;16460:26;16478:7;16460:8;:13;16469:3;16460:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;16444:8;:13;16453:3;16444:13;;;;;;;;;;;;;;;:42;;;;16516:37;;;;;;;;;16526:7;16516:37;;;;16535:10;16516:37;;;;16547:5;16516:37;;;;;16493:6;:11;16500:3;16493:11;;;;;;;;;;;;;;;:20;16505:7;16493:20;;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16600:4;16578:37;;16587:3;16578:37;;;16607:7;16578:37;;;;;;;;;;;;;;;;;;16637:7;16625:41;;;16632:3;16625:41;;;16646:7;16655:10;16625:41;;;;;;;;;;;;;;;;;;;;;;;;16678:4;16671:11;;15777:910;;;;;;;:::o;4754:487::-;4866:4;4900:8;:15;4909:5;4900:15;;;;;;;;;;;;;;;;4890:6;:25;;4882:34;;;;;;;;4941:7;:14;4949:5;4941:14;;;;;;;;;;;;;;;:26;4956:10;4941:26;;;;;;;;;;;;;;;;4931:6;:36;;4923:45;;;;;;;;4998:1;4983:17;;:3;:17;;;;4975:26;;;;;;;;5028:27;5048:6;5028:8;:15;5037:5;5028:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5010:8;:15;5019:5;5010:15;;;;;;;;;;;;;;;:45;;;;5078:25;5096:6;5078:8;:13;5087:3;5078:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5062:8;:13;5071:3;5062:13;;;;;;;;;;;;;;;:41;;;;5139:38;5170:6;5139:7;:14;5147:5;5139:14;;;;;;;;;;;;;;;:26;5154:10;5139:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;5110:7;:14;5118:5;5110:14;;;;;;;;;;;;;;;:26;5125:10;5110:26;;;;;;;;;;;;;;;:67;;;;5205:3;5189:28;;5198:5;5189:28;;;5210:6;5189:28;;;;;;;;;;;;;;;;;;5231:4;5224:11;;4754:487;;;;;:::o;21175:631::-;21238:24;21280:20;21318:9;21330:1;21318:13;;21313:396;21337:10;:15;21348:3;21337:15;;;;;;;;;;;;;;;:22;;;;21333:1;:26;21313:396;;;21396:41;21413:3;21418:10;:15;21429:3;21418:15;;;;;;;;;;;;;;;21434:1;21418:18;;;;;;;;;;;;;;;;;;21396:16;:41::i;:::-;21381:56;;21471:1;21456:12;:16;21452:246;;;21512:34;21533:12;21512:16;:20;;:34;;;;:::i;:::-;21493:53;;21607:4;21565:6;:11;21572:3;21565:11;;;;;;;;;;;;;;;:31;21577:10;:15;21588:3;21577:15;;;;;;;;;;;;;;;21593:1;21577:18;;;;;;;;;;;;;;;;;;21565:31;;;;;;;;;;;;;;;;;:39;;;:46;;;;;;;;;;;;;;;;;;21649:10;:15;21660:3;21649:15;;;;;;;;;;;;;;;21665:1;21649:18;;;;;;;;;;;;;;;;;;21635:47;;;21644:3;21635:47;;;21669:12;21635:47;;;;;;;;;;;;;;;;;;21452:246;21361:3;;;;;;;21313:396;;;21746:1;21727:16;:20;21723:75;;;21762:4;:13;;;21776:3;21781:16;21762:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21762:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21762:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21762:36:0;;;;;;;;;;;;;;;;;21723:75;21175:631;;;;;:::o;14507:21::-;;;;;;;;;;;;;:::o;18893:300::-;18978:14;19050:9;19019:8;:13;19028:3;19019:13;;;;;;;;;;;;;;;;19010:22;;19062:1;19050:13;;19045:138;19069:10;:15;19080:3;19069:15;;;;;;;;;;;;;;;:22;;;;19065:1;:26;19045:138;;;19122:49;19133:37;19146:3;19151:10;:15;19162:3;19151:15;;;;;;;;;;;;;;;19167:1;19151:18;;;;;;;;;;;;;;;;;;19133:12;:37::i;:::-;19122:6;:10;;:49;;;;:::i;:::-;19113:58;;19093:3;;;;;;;19045:138;;;18893:300;;;;:::o;17047:624::-;17169:4;17191:18;17212:14;17220:5;17212:3;:7;;:14;;;;:::i;:::-;17191:35;;17300:1;17270:26;17283:3;17288:7;17270:12;:26::i;:::-;:31;17303:14;;;;;;;;;;;;;;;;;;17262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17262:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17348:1;17337:7;:12;;17351:11;;;;;;;;;;;;;;;;;;17329:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17329:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17411:1;17380:6;:11;17387:3;17380:11;;;;;;;;;;;;;;;:20;17392:7;17380:20;;;;;;;;;;;;;;;;;:27;;;:32;17376:80;;;17427:10;:15;17438:3;17427:15;;;;;;;;;;;;;;;17448:7;17427:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;17427:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17376:80;17469:32;17486:4;17493:7;17469:8;:32::i;:::-;;17537:37;;;;;;;;;17547:7;17537:37;;;;17556:10;17537:37;;;;17568:5;17537:37;;;;;17514:6;:11;17521:3;17514:11;;;;;;;;;;;;;;;:20;17526:7;17514:20;;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17612:7;17600:41;;;17607:3;17600:41;;;17621:7;17630:10;17600:41;;;;;;;;;;;;;;;;;;;;;;;;17659:4;17652:11;;17047:624;;;;;;;:::o;20724:291::-;20828:14;20897:3;20864:6;:11;20871:3;20864:11;;;;;;;;;;;;;;;:20;20876:7;20864:20;;;;;;;;;;;;;;;;;:29;;;:36;;:69;;;;;20905:6;:11;20912:3;20905:11;;;;;;;;;;;;;;;:20;20917:7;20905:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;20904:29;20864:69;20860:147;;;20980:6;:11;20987:3;20980:11;;;;;;;;;;;;;;;:20;20992:7;20980:20;;;;;;;;;;;;;;;;;:27;;;20971:36;;20860:147;20724:291;;;;:::o;15335:133::-;9069:5;;;;;;;;;;;9055:19;;:10;:19;;;9047:28;;;;;;;;15410:5;15403:4;:12;;;;;;;;;;;;:::i;:::-;;15431:29;15443:4;15449:10;15431:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15335:133;:::o;17918:224::-;18018:14;18055:6;:11;18062:3;18055:11;;;;;;;;;;;;;;;:20;18067:7;18055:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;18054:29;18050:84;;;18107:6;:11;18114:3;18107:11;;;;;;;;;;;;;;;:20;18119:7;18107:20;;;;;;;;;;;;;;;;;:27;;;18098:36;;18050:84;17918:224;;;;:::o;7789:447::-;7900:4;7916:16;7935:7;:19;7943:10;7935:19;;;;;;;;;;;;;;;:29;7955:8;7935:29;;;;;;;;;;;;;;;;7916:48;;7995:8;7975:16;:28;;7971:169;;;8046:1;8014:7;:19;8022:10;8014:19;;;;;;;;;;;;;;;:29;8034:8;8014:29;;;;;;;;;;;;;;;:33;;;;7971:169;;;8102:30;8115:16;8102:8;:12;;:30;;;;:::i;:::-;8070:7;:19;8078:10;8070:19;;;;;;;;;;;;;;;:29;8090:8;8070:29;;;;;;;;;;;;;;;:62;;;;7971:169;8172:8;8151:61;;8160:10;8151:61;;;8182:7;:19;8190:10;8182:19;;;;;;;;;;;;;;;:29;8202:8;8182:29;;;;;;;;;;;;;;;;8151:61;;;;;;;;;;;;;;;;;;8226:4;8219:11;;7789:447;;;;;:::o;3250:101::-;3306:7;3329:8;:16;3338:6;3329:16;;;;;;;;;;;;;;;;3322:23;;3250:101;;;:::o;9361:114::-;9069:5;;;;;;;;;;;9055:19;;:10;:19;;;9047:28;;;;;;;;9438:5;;;;;;;;;;;9419:25;;;;;;;;;;;;9467:1;9451:5;;:18;;;;;;;;;;;;;;;;;;9361:114::o;10332:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20004:465::-;20100:4;20166:1;20130:33;20143:10;20155:7;20130:12;:33::i;:::-;:37;20169:10;;;;;;;;;;;;;;;;;;20122:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20122:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20191:32;20208:4;20215:7;20191:8;:32::i;:::-;;20273:47;20312:7;20273:6;:18;20280:10;20273:18;;;;;;;;;;;;;;;:27;20292:7;20273:27;;;;;;;;;;;;;;;;;:34;;;:38;;:47;;;;:::i;:::-;20236:6;:18;20243:10;20236:18;;;;;;;;;;;;;;;:27;20255:7;20236:27;;;;;;;;;;;;;;;;;:34;;:84;;;;20357:7;20338:101;;;20345:10;20338:101;;;20366:6;:18;20373:10;20366:18;;;;;;;;;;;;;;;:27;20385:7;20366:27;;;;;;;;;;;;;;;;;:34;;;20402:6;:18;20409:10;20402:18;;;;;;;;;;;;;;;:27;20421:7;20402:27;;;;;;;;;;;;;;;;;:36;;;20338:101;;;;;;;;;;;;;;;;;;;;;;;;20457:4;20450:11;;20004:465;;;;:::o;8566:20::-;;;;;;;;;;;;;:::o;14483:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2712:329::-;2775:4;2806:8;:20;2815:10;2806:20;;;;;;;;;;;;;;;;2796:6;:30;;2788:39;;;;;;;;2857:1;2842:17;;:3;:17;;;;2834:26;;;;;;;;2892:32;2917:6;2892:8;:20;2901:10;2892:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;2869:8;:20;2878:10;2869:20;;;;;;;;;;;;;;;:55;;;;2947:25;2965:6;2947:8;:13;2956:3;2947:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2931:8;:13;2940:3;2931:13;;;;;;;;;;;;;;;:41;;;;3005:3;2984:33;;2993:10;2984:33;;;3010:6;2984:33;;;;;;;;;;;;;;;;;;3031:4;3024:11;;2712:329;;;;:::o;19386:414::-;19472:4;19538:1;19502:33;19515:10;19527:7;19502:12;:33::i;:::-;:37;19541:10;;;;;;;;;;;;;;;;;;19494:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;19494:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19604:47;19645:5;19604:6;:18;19611:10;19604:18;;;;;;;;;;;;;;;:27;19623:7;19604:27;;;;;;;;;;;;;;;;;:36;;;:40;;:47;;;;:::i;:::-;19565:6;:18;19572:10;19565:18;;;;;;;;;;;;;;;:27;19584:7;19565:27;;;;;;;;;;;;;;;;;:36;;:86;;;;19688:7;19669:101;;;19676:10;19669:101;;;19697:6;:18;19704:10;19697:18;;;;;;;;;;;;;;;:27;19716:7;19697:27;;;;;;;;;;;;;;;;;:34;;;19733:6;:18;19740:10;19733:18;;;;;;;;;;;;;;;:27;19752:7;19733:27;;;;;;;;;;;;;;;;;:36;;;19669:101;;;;;;;;;;;;;;;;;;;;;;;;19788:4;19781:11;;19386:414;;;;:::o;21969:303::-;22059:24;22106:9;22118:1;22106:13;;22101:162;22125:10;:15;22136:3;22125:15;;;;;;;;;;;;;;;:22;;;;22121:1;:26;22101:162;;;22188:63;22209:41;22226:3;22231:10;:15;22242:3;22231:15;;;;;;;;;;;;;;;22247:1;22231:18;;;;;;;;;;;;;;;;;;22209:16;:41::i;:::-;22188:16;:20;;:63;;;;:::i;:::-;22169:82;;22149:3;;;;;;;22101:162;;;21969:303;;;;:::o;10678:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7014:307::-;7120:4;7177:46;7211:11;7177:7;:19;7185:10;7177:19;;;;;;;;;;;;;;;:29;7197:8;7177:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7136:7;:19;7144:10;7136:19;;;;;;;;;;;;;;;:29;7156:8;7136:29;;;;;;;;;;;;;;;:88;;;;7257:8;7236:61;;7245:10;7236:61;;;7267:7;:19;7275:10;7267:19;;;;;;;;;;;;;;;:29;7287:8;7267:29;;;;;;;;;;;;;;;;7236:61;;;;;;;;;;;;;;;;;;7311:4;7304:11;;7014:307;;;;:::o;6389:162::-;6494:7;6520;:15;6528:6;6520:15;;;;;;;;;;;;;;;:25;6536:8;6520:25;;;;;;;;;;;;;;;;6513:32;;6389:162;;;;:::o;9643:105::-;9069:5;;;;;;;;;;;9055:19;;:10;:19;;;9047:28;;;;;;;;9713:29;9732:9;9713:18;:29::i;:::-;9643:105;:::o;1898:132::-;1958:9;1985:2;1980;:7;1976:11;;2006:2;2001:1;:7;;1994:15;;;;;;2023:1;2016:8;;1898:132;;;;:::o;1712:119::-;1772:7;1801:2;1795;:8;;1788:16;;;;;;1823:2;1818;:7;1811:14;;1712:119;;;;:::o;9889:175::-;9981:1;9960:23;;:9;:23;;;;9952:32;;;;;;;;10024:9;9996:38;;10017:5;;;;;;;;;;;9996:38;;;;;;;;;;;;10049:9;10041:5;;:17;;;;;;;;;;;;;;;;;;9889:175;:::o;14121:8154::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://30e5889af58700c292a0ac957196de89158cf50d8e1844745f23a238b159b6f9
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.