ETH Price: $3,132.84 (-0.12%)

Token

FNKOSToken (FNKOS)
 

Overview

Max Total Supply

1,000,000,000 FNKOS

Holders

104,827

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 FNKOS

Value
$0.00
0x924c0f9a9889f703a9220ecf322342b9d6bdb32d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FNKOSToken

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-13
*/

pragma solidity ^0.4.18;
//
// FogLink OS Token
// Author: FNK
// Contact: [email protected]
// Telegram community: https://t.me/fnkofficial
//
contract FNKOSToken {   
    string public constant name         = "FNKOSToken";
    string public constant symbol       = "FNKOS";
    uint public constant decimals       = 18;
    
    uint256 fnkEthRate                  = 10 ** decimals;
    uint256 fnkSupply                   = 1000000000;
    uint256 public totalSupply          = fnkSupply * fnkEthRate;
    uint256 public minInvEth            = 0.1 ether;
    uint256 public maxInvEth            = 100.0 ether;
    uint256 public sellStartTime        = 1524240000;           // 2018/4/21
    uint256 public sellDeadline1        = sellStartTime + 30 days;
    uint256 public sellDeadline2        = sellDeadline1 + 30 days;
    uint256 public freezeDuration       = 30 days;
    uint256 public ethFnkRate1          = 3600;
    uint256 public ethFnkRate2          = 3600;

    bool public running                 = true;
    bool public buyable                 = true;
    
    address owner;
    mapping (address => mapping (address => uint256)) allowed;
    mapping (address => bool) public whitelist;
    mapping (address =>  uint256) whitelistLimit;

    struct BalanceInfo {
        uint256 balance;
        uint256[] freezeAmount;
        uint256[] releaseTime;
    }
    mapping (address => BalanceInfo) balances;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event BeginRunning();
    event PauseRunning();
    event BeginSell();
    event PauseSell();
    event Burn(address indexed burner, uint256 val);
    event Freeze(address indexed from, uint256 value);
    
    function FNKOSToken () public{
        owner = msg.sender;
        balances[owner].balance = totalSupply;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    modifier onlyWhitelist() {
        require(whitelist[msg.sender] == true);
        _;
    }
    
    modifier isRunning(){
        require(running);
        _;
    }
    modifier isNotRunning(){
        require(!running);
        _;
    }
    modifier isBuyable(){
        require(buyable && now >= sellStartTime && now <= sellDeadline2);
        _;
    }
    modifier isNotBuyable(){
        require(!buyable || now < sellStartTime || now > sellDeadline2);
        _;
    }
    // mitigates the ERC20 short address attack
    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    }

    function safeMul(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

    // 1eth = newRate tokens
    function setPbulicOfferingPrice(uint256 _rate1, uint256 _rate2) onlyOwner public {
        ethFnkRate1 = _rate1;
        ethFnkRate2 = _rate2;       
    }

    //
    function setPublicOfferingLimit(uint256 _minVal, uint256 _maxVal) onlyOwner public {
        minInvEth   = _minVal;
        maxInvEth   = _maxVal;
    }
    
    function setPublicOfferingDate(uint256 _startTime, uint256 _deadLine1, uint256 _deadLine2) onlyOwner public {
        sellStartTime = _startTime;
        sellDeadline1   = _deadLine1;
        sellDeadline2   = _deadLine2;
    }
        
    function transferOwnership(address _newOwner) onlyOwner public {
        if (_newOwner !=    address(0)) {
            owner = _newOwner;
        }
    }
    
    function pause() onlyOwner isRunning    public   {
        running = false;
        PauseRunning();
    }
    
    function start() onlyOwner isNotRunning public   {
        running = true;
        BeginRunning();
    }

    function pauseSell() onlyOwner  isBuyable isRunning public{
        buyable = false;
        PauseSell();
    }
    
    function beginSell() onlyOwner  isNotBuyable isRunning  public{
        buyable = true;
        BeginSell();
    }

    //
    // _amount in FNK, 
    //
    function airDeliver(address _to,    uint256 _amount)  onlyOwner public {
        require(owner != _to);
        require(_amount > 0);
        require(balances[owner].balance >= _amount);
        
        // take big number as wei
        if(_amount < fnkSupply){
            _amount = _amount * fnkEthRate;
        }
        balances[owner].balance = safeSub(balances[owner].balance, _amount);
        balances[_to].balance = safeAdd(balances[_to].balance, _amount);
        Transfer(owner, _to, _amount);
    }
    
    
    function airDeliverMulti(address[]  _addrs, uint256 _amount) onlyOwner public {
        require(_addrs.length <=  255);
        
        for (uint8 i = 0; i < _addrs.length; i++)   {
            airDeliver(_addrs[i],   _amount);
        }
    }
    
    function airDeliverStandalone(address[] _addrs, uint256[] _amounts) onlyOwner public {
        require(_addrs.length <=  255);
        require(_addrs.length ==     _amounts.length);
        
        for (uint8 i = 0; i < _addrs.length;    i++) {
            airDeliver(_addrs[i],   _amounts[i]);
        }
    }

    //
    // _amount, _freezeAmount in FNK
    //
    function  freezeDeliver(address _to, uint _amount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(owner != _to);
        require(_freezeMonth > 0);
        
        uint average = _freezeAmount / _freezeMonth;
        BalanceInfo storage bi = balances[_to];
        uint[] memory fa = new uint[](_freezeMonth);
        uint[] memory rt = new uint[](_freezeMonth);

        if(_amount < fnkSupply){
            _amount = _amount * fnkEthRate;
            average = average * fnkEthRate;
            _freezeAmount = _freezeAmount * fnkEthRate;
        }
        require(balances[owner].balance > _amount);
        uint remainAmount = _freezeAmount;
        
        if(_unfreezeBeginTime == 0)
            _unfreezeBeginTime = now + freezeDuration;
        for(uint i=0;i<_freezeMonth-1;i++){
            fa[i] = average;
            rt[i] = _unfreezeBeginTime;
            _unfreezeBeginTime += freezeDuration;
            remainAmount = safeSub(remainAmount, average);
        }
        fa[i] = remainAmount;
        rt[i] = _unfreezeBeginTime;
        
        bi.balance = safeAdd(bi.balance, _amount);
        bi.freezeAmount = fa;
        bi.releaseTime = rt;
        balances[owner].balance = safeSub(balances[owner].balance, _amount);
        Transfer(owner, _to, _amount);
        Freeze(_to, _freezeAmount);
    }
    
    function  freezeDeliverMuti(address[] _addrs, uint _deliverAmount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(_addrs.length <=  255);
        
        for(uint i=0;i< _addrs.length;i++){
            freezeDeliver(_addrs[i], _deliverAmount, _freezeAmount, _freezeMonth, _unfreezeBeginTime);
        }
    }

    function  freezeDeliverMultiStandalone(address[] _addrs, uint[] _deliverAmounts, uint[] _freezeAmounts, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(_addrs.length <=  255);
        require(_addrs.length == _deliverAmounts.length);
        require(_addrs.length == _freezeAmounts.length);
        
        for(uint i=0;i< _addrs.length;i++){
            freezeDeliver(_addrs[i], _deliverAmounts[i], _freezeAmounts[i], _freezeMonth, _unfreezeBeginTime);
        }
    }
    
    // buy tokens directly
    function () external payable {
        buyTokens();
    }

    //
    function buyTokens() payable isRunning isBuyable onlyWhitelist  public {
        uint256 weiVal = msg.value;
        address investor = msg.sender;
        require(investor != address(0) && weiVal >= minInvEth && weiVal <= maxInvEth);
        require(safeAdd(weiVal,whitelistLimit[investor]) <= maxInvEth);
        
        uint256 amount = 0;
        if(now > sellDeadline1)
            amount = safeMul(msg.value, ethFnkRate2);
        else
            amount = safeMul(msg.value, ethFnkRate1);   

        whitelistLimit[investor] = safeAdd(weiVal, whitelistLimit[investor]);
        
        balances[owner].balance = safeSub(balances[owner].balance, amount);
        balances[investor].balance = safeAdd(balances[investor].balance, amount);
        Transfer(owner, investor, amount);
    }

    function addWhitelist(address[] _addrs) public onlyOwner {
        require(_addrs.length <=  255);

        for (uint8 i = 0; i < _addrs.length; i++) {
            if (!whitelist[_addrs[i]]){
                whitelist[_addrs[i]] = true;
            }
        }
    }

    function balanceOf(address _owner) constant public returns (uint256) {
        return balances[_owner].balance;
    }
    
    function freezeOf(address _owner) constant  public returns (uint256) {
        BalanceInfo storage bi = balances[_owner];
        uint freezeAmount = 0;
        uint t = now;
        
        for(uint i=0;i< bi.freezeAmount.length;i++){
            if(t < bi.releaseTime[i])
                freezeAmount += bi.freezeAmount[i];
        }
        return freezeAmount;
    }
    
    function transfer(address _to, uint256 _amount)  isRunning onlyPayloadSize(2 *  32) public returns (bool success) {
        require(_to != address(0));
        uint freezeAmount = freezeOf(msg.sender);
        uint256 _balance = safeSub(balances[msg.sender].balance, freezeAmount);
        require(_amount <= _balance);
        
        balances[msg.sender].balance = safeSub(balances[msg.sender].balance,_amount);
        balances[_to].balance = safeAdd(balances[_to].balance,_amount);
        Transfer(msg.sender, _to, _amount);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) isRunning onlyPayloadSize(3 * 32) public returns (bool   success) {
        require(_from   != address(0) && _to != address(0));
        require(_amount <= allowed[_from][msg.sender]);
        uint freezeAmount = freezeOf(_from);
        uint256 _balance = safeSub(balances[_from].balance, freezeAmount);
        require(_amount <= _balance);
        
        balances[_from].balance = safeSub(balances[_from].balance,_amount);
        allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender],_amount);
        balances[_to].balance = safeAdd(balances[_to].balance,_amount);
        Transfer(_from, _to, _amount);
        return true;
    }

    function approve(address _spender, uint256 _value) isRunning public returns (bool   success) {
        if (_value != 0 && allowed[msg.sender][_spender] != 0) { 
            return  false; 
        }
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return allowed[_owner][_spender];
    }
    
    function withdraw() onlyOwner public {
        require(this.balance > 0);
        owner.transfer(this.balance);
        Transfer(this, owner, this.balance);    
    }
    
    function burn(address burner, uint256 _value) onlyOwner public {
        require(_value <= balances[msg.sender].balance);

        balances[burner].balance = safeSub(balances[burner].balance, _value);
        totalSupply = safeSub(totalSupply, _value);
        fnkSupply = totalSupply / fnkEthRate;
        Burn(burner, _value);
    }
    
    function mint(address _target, uint256 _amount) onlyOwner public {
        if(_target  == address(0))
            _target = owner;
        
        balances[_target].balance = safeAdd(balances[_target].balance, _amount);
        totalSupply = safeAdd(totalSupply,_amount);
        fnkSupply = totalSupply / fnkEthRate;
        Transfer(0, this, _amount);
        Transfer(this, _target, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"airDeliverMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"airDeliver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_deliverAmount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMuti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"freezeDuration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"beginSell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate1","type":"uint256"},{"name":"_rate2","type":"uint256"}],"name":"setPbulicOfferingPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_deliverAmounts","type":"uint256[]"},{"name":"_freezeAmounts","type":"uint256[]"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMultiStandalone","outputs":[],"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":true,"inputs":[],"name":"ethFnkRate1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxInvEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyable","outputs":[{"name":"","type":"bool"}],"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":"pauseSell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minVal","type":"uint256"},{"name":"_maxVal","type":"uint256"}],"name":"setPublicOfferingLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellDeadline2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"burner","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"airDeliverStandalone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"freezeOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minInvEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"running","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"sellDeadline1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_deadLine1","type":"uint256"},{"name":"_deadLine2","type":"uint256"}],"name":"setPublicOfferingDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"}],"name":"addWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ethFnkRate2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginSell","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"val","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Freeze","type":"event"}]

6060604052670de0b6b3a7640000600055633b9aca0060019081556b033b2e3c9fd0803ce800000060025567016345785d8a000060035568056bc75e2d63100000600455635ada0e80600555635b019b80600655635b29288060075562278d00600855610e106009819055600a55600b805461ff001960ff1990911690921791909116610100179055341561009357600080fd5b600b80546201000060b060020a0319166201000033600160a060020a03908116820292909217928390556002549204166000908152600f6020526040812091909155611d2c9081906100e590396000f3006060604052600436106101ed5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101f7578063095ea7b3146102815780630c3e564a146102b75780630ea7c8cd1461030857806318160ddd1461032a5780632111c0f91461034f57806323b872dd146103b1578063313ce567146103d957806334d05b1f146103ec5780633ccfd60b1461041757806340c10f191461042a578063440991bd1461044c57806355d8bbd51461045f57806359287ce914610472578063679019ba1461048b57806370a082311461056157806377dd8ea7146105805780637d4ce874146105935780638456cb59146105a657806388c7e397146105b957806395d89b41146105cc5780639754a7d8146105df578063984809bf146105f25780639aea020b1461060b5780639b19251a1461061e5780639dc29fac1461063d578063a9059cbb1461065f578063b885d56014610681578063be9a655514610710578063cb60f8b414610723578063cd4217c114610736578063d0febe4c146101ed578063d70b634214610755578063d85bd52614610768578063dd62ed3e1461077b578063e28a5e63146107a0578063e73140c1146107b3578063edac985b146107cf578063f2fde38b1461081e578063fd12c1cb1461083d575b6101f5610850565b005b341561020257600080fd5b61020a610a4f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561024657808201518382015260200161022e565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57600080fd5b6102a3600160a060020a0360043516602435610a86565b604051901515815260200160405180910390f35b34156102c257600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610b4492505050565b341561031357600080fd5b6101f5600160a060020a0360043516602435610bb6565b341561033557600080fd5b61033d610cf9565b60405190815260200160405180910390f35b341561035a57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060408101359350606001359150610cff9050565b34156103bc57600080fd5b6102a3600160a060020a0360043581169060243516604435610d71565b34156103e457600080fd5b61033d610f24565b34156103f757600080fd5b6101f5600160a060020a0360043516602435604435606435608435610f29565b341561042257600080fd5b6101f56111ef565b341561043557600080fd5b6101f5600160a060020a03600435166024356112a1565b341561045757600080fd5b61033d6113ac565b341561046a57600080fd5b6101f56113b2565b341561047d57600080fd5b6101f5600435602435611450565b341561049657600080fd5b6101f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505084359460200135935061147c92505050565b341561056c57600080fd5b61033d600160a060020a036004351661152c565b341561058b57600080fd5b61033d611547565b341561059e57600080fd5b61033d61154d565b34156105b157600080fd5b6101f5611553565b34156105c457600080fd5b6102a36115bd565b34156105d757600080fd5b61020a6115cb565b34156105ea57600080fd5b6101f5611602565b34156105fd57600080fd5b6101f560043560243561169f565b341561061657600080fd5b61033d6116cb565b341561062957600080fd5b6102a3600160a060020a03600435166116d1565b341561064857600080fd5b6101f5600160a060020a03600435166024356116e6565b341561066a57600080fd5b6102a3600160a060020a03600435166024356117cc565b341561068c57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506118e895505050505050565b341561071b57600080fd5b6101f561197b565b341561072e57600080fd5b61033d6119e7565b341561074157600080fd5b61033d600160a060020a03600435166119ed565b341561076057600080fd5b61033d611a6b565b341561077357600080fd5b6102a3611a71565b341561078657600080fd5b61033d600160a060020a0360043581169060243516611a7a565b34156107ab57600080fd5b61033d611aa5565b34156107be57600080fd5b6101f5600435602435604435611aab565b34156107da57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611ada95505050505050565b341561082957600080fd5b6101f5600160a060020a0360043516611bb1565b341561084857600080fd5b61033d611c14565b600b546000908190819060ff16151561086857600080fd5b600b54610100900460ff16801561088157506005544210155b801561088f57506007544211155b151561089a57600080fd5b600160a060020a0333166000908152600d602052604090205460ff1615156001146108c457600080fd5b349250339150600160a060020a038216158015906108e457506003548310155b80156108f257506004548311155b15156108fd57600080fd5b600454600160a060020a0383166000908152600e6020526040902054610924908590611c1a565b111561092f57600080fd5b600090506006544211156109505761094934600a54611c30565b905061095f565b61095c34600954611c30565b90505b600160a060020a0382166000908152600e6020526040902054610983908490611c1a565b600160a060020a038084166000908152600e6020908152604080832094909455600b546201000090049092168152600f90915220546109c29082611c54565b600b54600160a060020a036201000090910481166000908152600f602052604080822093909355908416815220546109fa9082611c1a565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611ce18339815191529084905190815260200160405180910390a3505050565b60408051908101604052600a81527f464e4b4f53546f6b656e00000000000000000000000000000000000000000000602082015281565b600b5460009060ff161515610a9a57600080fd5b8115801590610acd5750600160a060020a033381166000908152600c602090815260408083209387168352929052205415155b15610ada57506000610b3e565b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600b5460009033600160a060020a03908116620100009092041614610b6857600080fd5b60ff83511115610b7757600080fd5b5060005b82518160ff161015610bb157610ba9838260ff1681518110610b9957fe5b9060200190602002015183610bb6565b600101610b7b565b505050565b600b5433600160a060020a03908116620100009092041614610bd757600080fd5b600b54600160a060020a0383811662010000909204161415610bf857600080fd5b60008111610c0557600080fd5b600b54620100009004600160a060020a03166000908152600f602052604090205481901015610c3357600080fd5b600154811015610c4257600054025b600b54620100009004600160a060020a03166000908152600f6020526040902054610c6d9082611c54565b600b54600160a060020a036201000090910481166000908152600f60205260408082209390935590841681522054610ca59082611c1a565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611ce18339815191529084905190815260200160405180910390a35050565b60025481565b600b5460009033600160a060020a03908116620100009092041614610d2357600080fd5b60ff86511115610d3257600080fd5b5060005b8551811015610d6957610d61868281518110610d4e57fe5b9060200190602002015186868686610f29565b600101610d36565b505050505050565b600b546000908190819060ff161515610d8957600080fd5b60606064361015610d9657fe5b600160a060020a03871615801590610db65750600160a060020a03861615155b1515610dc157600080fd5b600160a060020a038088166000908152600c602090815260408083203390941683529290522054851115610df457600080fd5b610dfd876119ed565b600160a060020a0388166000908152600f6020526040902054909350610e239084611c54565b915081851115610e3257600080fd5b600160a060020a0387166000908152600f6020526040902054610e559086611c54565b600160a060020a038089166000908152600f6020908152604080832094909455600c8152838220339093168252919091522054610e929086611c54565b600160a060020a038089166000908152600c6020908152604080832033851684528252808320949094559189168152600f9091522054610ed29086611c1a565b600160a060020a038088166000818152600f602052604090819020939093559190891690600080516020611ce18339815191529088905190815260200160405180910390a35060019695505050505050565b601281565b600080610f34611c66565b610f3c611c66565b600b54600090819033600160a060020a03908116620100009092041614610f6257600080fd5b600b54600160a060020a038c811662010000909204161415610f8357600080fd5b60008811610f9057600080fd5b8789811515610f9b57fe5b049550600f60008c600160a060020a0316600160a060020a03168152602001908152602001600020945087604051805910610fd35750595b9080825280602002602001820160405250935087604051805910610ff45750595b908082528060200260200182016040525092506001548a101561102257600054998a02999889029895909502945b600b54620100009004600160a060020a03166000908152600f60205260409020548a901161104f57600080fd5b88915086151561106157600854420196505b5060005b600188038110156110ba578584828151811061107d57fe5b602090810290910101528683828151811061109457fe5b6020908102909101015260085496909601956110b08287611c54565b9150600101611065565b818482815181106110c757fe5b60209081029091010152868382815181106110de57fe5b6020908102909101015284546110f4908b611c1a565b85556001850184805161110b929160200190611c78565b5060028501838051611121929160200190611c78565b50600b54620100009004600160a060020a03166000908152600f602052604090205461114d908b611c54565b600b8054600160a060020a03620100009182900481166000908152600f6020526040908190209490945591548e83169391900490911690600080516020611ce1833981519152908d905190815260200160405180910390a38a600160a060020a03167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a60405190815260200160405180910390a25050505050505050505050565b600b5433600160a060020a0390811662010000909204161461121057600080fd5b6000600160a060020a033016311161122757600080fd5b600b54600160a060020a036201000090910481169030163180156108fc0290604051600060405180830381858888f19350505050151561126657600080fd5b600b54600160a060020a03620100009091048116903016600080516020611ce1833981519152813160405190815260200160405180910390a3565b600b5433600160a060020a039081166201000090920416146112c257600080fd5b600160a060020a03821615156112e757600b54620100009004600160a060020a031691505b600160a060020a0382166000908152600f602052604090205461130a9082611c1a565b600160a060020a0383166000908152600f60205260409020556002546113309082611c1a565b60028190556000549081151561134257fe5b04600155600160a060020a0330166000600080516020611ce18339815191528360405190815260200160405180910390a381600160a060020a031630600160a060020a0316600080516020611ce18339815191528360405190815260200160405180910390a35050565b60085481565b600b5433600160a060020a039081166201000090920416146113d357600080fd5b600b54610100900460ff1615806113eb575060055442105b806113f7575060075442115b151561140257600080fd5b600b5460ff16151561141357600080fd5b600b805461ff0019166101001790557fd5b089eb0ec44264fc274d9a4adaafa6bfe78bdbeaf4b128d6871d5314057c5660405160405180910390a1565b600b5433600160a060020a0390811662010000909204161461147157600080fd5b600991909155600a55565b600b5460009033600160a060020a039081166201000090920416146114a057600080fd5b60ff865111156114af57600080fd5b84518651146114bd57600080fd5b83518651146114cb57600080fd5b5060005b8551811015610d69576115248682815181106114e757fe5b906020019060200201518683815181106114fd57fe5b9060200190602002015186848151811061151357fe5b906020019060200201518686610f29565b6001016114cf565b600160a060020a03166000908152600f602052604090205490565b60095481565b60045481565b600b5433600160a060020a0390811662010000909204161461157457600080fd5b600b5460ff16151561158557600080fd5b600b805460ff191690557f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b600b54610100900460ff1681565b60408051908101604052600581527f464e4b4f53000000000000000000000000000000000000000000000000000000602082015281565b600b5433600160a060020a0390811662010000909204161461162357600080fd5b600b54610100900460ff16801561163c57506005544210155b801561164a57506007544211155b151561165557600080fd5b600b5460ff16151561166657600080fd5b600b805461ff00191690557fb9248e98c8764c68b0d9dd60de677553b9c38a5a521bbb362bb6f5aab6937e8960405160405180910390a1565b600b5433600160a060020a039081166201000090920416146116c057600080fd5b600391909155600455565b60075481565b600d6020526000908152604090205460ff1681565b600b5433600160a060020a0390811662010000909204161461170757600080fd5b600160a060020a0333166000908152600f602052604090205481111561172c57600080fd5b600160a060020a0382166000908152600f602052604090205461174f9082611c54565b600160a060020a0383166000908152600f60205260409020556002546117759082611c54565b60028190556000549081151561178757fe5b04600155600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25050565b600b546000908190819060ff1615156117e457600080fd5b604060443610156117f157fe5b600160a060020a038616151561180657600080fd5b61180f336119ed565b600160a060020a0333166000908152600f60205260409020549093506118359084611c54565b91508185111561184457600080fd5b600160a060020a0333166000908152600f60205260409020546118679086611c54565b600160a060020a033381166000908152600f602052604080822093909355908816815220546118969086611c1a565b600160a060020a038088166000818152600f60205260409081902093909355913390911690600080516020611ce18339815191529088905190815260200160405180910390a350600195945050505050565b600b5460009033600160a060020a0390811662010000909204161461190c57600080fd5b60ff8351111561191b57600080fd5b815183511461192957600080fd5b5060005b82518160ff161015610bb157611973838260ff168151811061194b57fe5b90602001906020020151838360ff168151811061196457fe5b90602001906020020151610bb6565b60010161192d565b600b5433600160a060020a0390811662010000909204161461199c57600080fd5b600b5460ff16156119ac57600080fd5b600b805460ff191660011790557ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b60055481565b600160a060020a0381166000908152600f602052604081208142815b6001840154811015611a615760028401805482908110611a2557fe5b906000526020600020900154821015611a595760018401805482908110611a4857fe5b906000526020600020900154830192505b600101611a09565b5090949350505050565b60035481565b600b5460ff1681565b600160a060020a039182166000908152600c6020908152604080832093909416825291909152205490565b60065481565b600b5433600160a060020a03908116620100009092041614611acc57600080fd5b600592909255600655600755565b600b5460009033600160a060020a03908116620100009092041614611afe57600080fd5b60ff82511115611b0d57600080fd5b5060005b81518160ff161015611bad57600d6000838360ff1681518110611b3057fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff161515611ba5576001600d6000848460ff1681518110611b7257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b600101611b11565b5050565b600b5433600160a060020a03908116620100009092041614611bd257600080fd5b600160a060020a03811615611c1157600b805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b50565b600a5481565b600082820183811015611c2957fe5b9392505050565b6000828202831580611c4c5750828482811515611c4957fe5b04145b1515611c2957fe5b600082821115611c6057fe5b50900390565b60206040519081016040526000815290565b828054828255906000526020600020908101928215611cb3579160200282015b82811115611cb3578251825591602001919060010190611c98565b50611cbf929150611cc3565b5090565b611cdd91905b80821115611cbf5760008155600101611cc9565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c55d205f6bcdfb4a9bc0a54e3ae4b283eb82279cff31e6e69bf7b93379b26c830029

Deployed Bytecode

0x6060604052600436106101ed5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101f7578063095ea7b3146102815780630c3e564a146102b75780630ea7c8cd1461030857806318160ddd1461032a5780632111c0f91461034f57806323b872dd146103b1578063313ce567146103d957806334d05b1f146103ec5780633ccfd60b1461041757806340c10f191461042a578063440991bd1461044c57806355d8bbd51461045f57806359287ce914610472578063679019ba1461048b57806370a082311461056157806377dd8ea7146105805780637d4ce874146105935780638456cb59146105a657806388c7e397146105b957806395d89b41146105cc5780639754a7d8146105df578063984809bf146105f25780639aea020b1461060b5780639b19251a1461061e5780639dc29fac1461063d578063a9059cbb1461065f578063b885d56014610681578063be9a655514610710578063cb60f8b414610723578063cd4217c114610736578063d0febe4c146101ed578063d70b634214610755578063d85bd52614610768578063dd62ed3e1461077b578063e28a5e63146107a0578063e73140c1146107b3578063edac985b146107cf578063f2fde38b1461081e578063fd12c1cb1461083d575b6101f5610850565b005b341561020257600080fd5b61020a610a4f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561024657808201518382015260200161022e565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57600080fd5b6102a3600160a060020a0360043516602435610a86565b604051901515815260200160405180910390f35b34156102c257600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610b4492505050565b341561031357600080fd5b6101f5600160a060020a0360043516602435610bb6565b341561033557600080fd5b61033d610cf9565b60405190815260200160405180910390f35b341561035a57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060408101359350606001359150610cff9050565b34156103bc57600080fd5b6102a3600160a060020a0360043581169060243516604435610d71565b34156103e457600080fd5b61033d610f24565b34156103f757600080fd5b6101f5600160a060020a0360043516602435604435606435608435610f29565b341561042257600080fd5b6101f56111ef565b341561043557600080fd5b6101f5600160a060020a03600435166024356112a1565b341561045757600080fd5b61033d6113ac565b341561046a57600080fd5b6101f56113b2565b341561047d57600080fd5b6101f5600435602435611450565b341561049657600080fd5b6101f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505084359460200135935061147c92505050565b341561056c57600080fd5b61033d600160a060020a036004351661152c565b341561058b57600080fd5b61033d611547565b341561059e57600080fd5b61033d61154d565b34156105b157600080fd5b6101f5611553565b34156105c457600080fd5b6102a36115bd565b34156105d757600080fd5b61020a6115cb565b34156105ea57600080fd5b6101f5611602565b34156105fd57600080fd5b6101f560043560243561169f565b341561061657600080fd5b61033d6116cb565b341561062957600080fd5b6102a3600160a060020a03600435166116d1565b341561064857600080fd5b6101f5600160a060020a03600435166024356116e6565b341561066a57600080fd5b6102a3600160a060020a03600435166024356117cc565b341561068c57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506118e895505050505050565b341561071b57600080fd5b6101f561197b565b341561072e57600080fd5b61033d6119e7565b341561074157600080fd5b61033d600160a060020a03600435166119ed565b341561076057600080fd5b61033d611a6b565b341561077357600080fd5b6102a3611a71565b341561078657600080fd5b61033d600160a060020a0360043581169060243516611a7a565b34156107ab57600080fd5b61033d611aa5565b34156107be57600080fd5b6101f5600435602435604435611aab565b34156107da57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611ada95505050505050565b341561082957600080fd5b6101f5600160a060020a0360043516611bb1565b341561084857600080fd5b61033d611c14565b600b546000908190819060ff16151561086857600080fd5b600b54610100900460ff16801561088157506005544210155b801561088f57506007544211155b151561089a57600080fd5b600160a060020a0333166000908152600d602052604090205460ff1615156001146108c457600080fd5b349250339150600160a060020a038216158015906108e457506003548310155b80156108f257506004548311155b15156108fd57600080fd5b600454600160a060020a0383166000908152600e6020526040902054610924908590611c1a565b111561092f57600080fd5b600090506006544211156109505761094934600a54611c30565b905061095f565b61095c34600954611c30565b90505b600160a060020a0382166000908152600e6020526040902054610983908490611c1a565b600160a060020a038084166000908152600e6020908152604080832094909455600b546201000090049092168152600f90915220546109c29082611c54565b600b54600160a060020a036201000090910481166000908152600f602052604080822093909355908416815220546109fa9082611c1a565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611ce18339815191529084905190815260200160405180910390a3505050565b60408051908101604052600a81527f464e4b4f53546f6b656e00000000000000000000000000000000000000000000602082015281565b600b5460009060ff161515610a9a57600080fd5b8115801590610acd5750600160a060020a033381166000908152600c602090815260408083209387168352929052205415155b15610ada57506000610b3e565b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600b5460009033600160a060020a03908116620100009092041614610b6857600080fd5b60ff83511115610b7757600080fd5b5060005b82518160ff161015610bb157610ba9838260ff1681518110610b9957fe5b9060200190602002015183610bb6565b600101610b7b565b505050565b600b5433600160a060020a03908116620100009092041614610bd757600080fd5b600b54600160a060020a0383811662010000909204161415610bf857600080fd5b60008111610c0557600080fd5b600b54620100009004600160a060020a03166000908152600f602052604090205481901015610c3357600080fd5b600154811015610c4257600054025b600b54620100009004600160a060020a03166000908152600f6020526040902054610c6d9082611c54565b600b54600160a060020a036201000090910481166000908152600f60205260408082209390935590841681522054610ca59082611c1a565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611ce18339815191529084905190815260200160405180910390a35050565b60025481565b600b5460009033600160a060020a03908116620100009092041614610d2357600080fd5b60ff86511115610d3257600080fd5b5060005b8551811015610d6957610d61868281518110610d4e57fe5b9060200190602002015186868686610f29565b600101610d36565b505050505050565b600b546000908190819060ff161515610d8957600080fd5b60606064361015610d9657fe5b600160a060020a03871615801590610db65750600160a060020a03861615155b1515610dc157600080fd5b600160a060020a038088166000908152600c602090815260408083203390941683529290522054851115610df457600080fd5b610dfd876119ed565b600160a060020a0388166000908152600f6020526040902054909350610e239084611c54565b915081851115610e3257600080fd5b600160a060020a0387166000908152600f6020526040902054610e559086611c54565b600160a060020a038089166000908152600f6020908152604080832094909455600c8152838220339093168252919091522054610e929086611c54565b600160a060020a038089166000908152600c6020908152604080832033851684528252808320949094559189168152600f9091522054610ed29086611c1a565b600160a060020a038088166000818152600f602052604090819020939093559190891690600080516020611ce18339815191529088905190815260200160405180910390a35060019695505050505050565b601281565b600080610f34611c66565b610f3c611c66565b600b54600090819033600160a060020a03908116620100009092041614610f6257600080fd5b600b54600160a060020a038c811662010000909204161415610f8357600080fd5b60008811610f9057600080fd5b8789811515610f9b57fe5b049550600f60008c600160a060020a0316600160a060020a03168152602001908152602001600020945087604051805910610fd35750595b9080825280602002602001820160405250935087604051805910610ff45750595b908082528060200260200182016040525092506001548a101561102257600054998a02999889029895909502945b600b54620100009004600160a060020a03166000908152600f60205260409020548a901161104f57600080fd5b88915086151561106157600854420196505b5060005b600188038110156110ba578584828151811061107d57fe5b602090810290910101528683828151811061109457fe5b6020908102909101015260085496909601956110b08287611c54565b9150600101611065565b818482815181106110c757fe5b60209081029091010152868382815181106110de57fe5b6020908102909101015284546110f4908b611c1a565b85556001850184805161110b929160200190611c78565b5060028501838051611121929160200190611c78565b50600b54620100009004600160a060020a03166000908152600f602052604090205461114d908b611c54565b600b8054600160a060020a03620100009182900481166000908152600f6020526040908190209490945591548e83169391900490911690600080516020611ce1833981519152908d905190815260200160405180910390a38a600160a060020a03167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a60405190815260200160405180910390a25050505050505050505050565b600b5433600160a060020a0390811662010000909204161461121057600080fd5b6000600160a060020a033016311161122757600080fd5b600b54600160a060020a036201000090910481169030163180156108fc0290604051600060405180830381858888f19350505050151561126657600080fd5b600b54600160a060020a03620100009091048116903016600080516020611ce1833981519152813160405190815260200160405180910390a3565b600b5433600160a060020a039081166201000090920416146112c257600080fd5b600160a060020a03821615156112e757600b54620100009004600160a060020a031691505b600160a060020a0382166000908152600f602052604090205461130a9082611c1a565b600160a060020a0383166000908152600f60205260409020556002546113309082611c1a565b60028190556000549081151561134257fe5b04600155600160a060020a0330166000600080516020611ce18339815191528360405190815260200160405180910390a381600160a060020a031630600160a060020a0316600080516020611ce18339815191528360405190815260200160405180910390a35050565b60085481565b600b5433600160a060020a039081166201000090920416146113d357600080fd5b600b54610100900460ff1615806113eb575060055442105b806113f7575060075442115b151561140257600080fd5b600b5460ff16151561141357600080fd5b600b805461ff0019166101001790557fd5b089eb0ec44264fc274d9a4adaafa6bfe78bdbeaf4b128d6871d5314057c5660405160405180910390a1565b600b5433600160a060020a0390811662010000909204161461147157600080fd5b600991909155600a55565b600b5460009033600160a060020a039081166201000090920416146114a057600080fd5b60ff865111156114af57600080fd5b84518651146114bd57600080fd5b83518651146114cb57600080fd5b5060005b8551811015610d69576115248682815181106114e757fe5b906020019060200201518683815181106114fd57fe5b9060200190602002015186848151811061151357fe5b906020019060200201518686610f29565b6001016114cf565b600160a060020a03166000908152600f602052604090205490565b60095481565b60045481565b600b5433600160a060020a0390811662010000909204161461157457600080fd5b600b5460ff16151561158557600080fd5b600b805460ff191690557f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b600b54610100900460ff1681565b60408051908101604052600581527f464e4b4f53000000000000000000000000000000000000000000000000000000602082015281565b600b5433600160a060020a0390811662010000909204161461162357600080fd5b600b54610100900460ff16801561163c57506005544210155b801561164a57506007544211155b151561165557600080fd5b600b5460ff16151561166657600080fd5b600b805461ff00191690557fb9248e98c8764c68b0d9dd60de677553b9c38a5a521bbb362bb6f5aab6937e8960405160405180910390a1565b600b5433600160a060020a039081166201000090920416146116c057600080fd5b600391909155600455565b60075481565b600d6020526000908152604090205460ff1681565b600b5433600160a060020a0390811662010000909204161461170757600080fd5b600160a060020a0333166000908152600f602052604090205481111561172c57600080fd5b600160a060020a0382166000908152600f602052604090205461174f9082611c54565b600160a060020a0383166000908152600f60205260409020556002546117759082611c54565b60028190556000549081151561178757fe5b04600155600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25050565b600b546000908190819060ff1615156117e457600080fd5b604060443610156117f157fe5b600160a060020a038616151561180657600080fd5b61180f336119ed565b600160a060020a0333166000908152600f60205260409020549093506118359084611c54565b91508185111561184457600080fd5b600160a060020a0333166000908152600f60205260409020546118679086611c54565b600160a060020a033381166000908152600f602052604080822093909355908816815220546118969086611c1a565b600160a060020a038088166000818152600f60205260409081902093909355913390911690600080516020611ce18339815191529088905190815260200160405180910390a350600195945050505050565b600b5460009033600160a060020a0390811662010000909204161461190c57600080fd5b60ff8351111561191b57600080fd5b815183511461192957600080fd5b5060005b82518160ff161015610bb157611973838260ff168151811061194b57fe5b90602001906020020151838360ff168151811061196457fe5b90602001906020020151610bb6565b60010161192d565b600b5433600160a060020a0390811662010000909204161461199c57600080fd5b600b5460ff16156119ac57600080fd5b600b805460ff191660011790557ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b60055481565b600160a060020a0381166000908152600f602052604081208142815b6001840154811015611a615760028401805482908110611a2557fe5b906000526020600020900154821015611a595760018401805482908110611a4857fe5b906000526020600020900154830192505b600101611a09565b5090949350505050565b60035481565b600b5460ff1681565b600160a060020a039182166000908152600c6020908152604080832093909416825291909152205490565b60065481565b600b5433600160a060020a03908116620100009092041614611acc57600080fd5b600592909255600655600755565b600b5460009033600160a060020a03908116620100009092041614611afe57600080fd5b60ff82511115611b0d57600080fd5b5060005b81518160ff161015611bad57600d6000838360ff1681518110611b3057fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff161515611ba5576001600d6000848460ff1681518110611b7257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b600101611b11565b5050565b600b5433600160a060020a03908116620100009092041614611bd257600080fd5b600160a060020a03811615611c1157600b805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b50565b600a5481565b600082820183811015611c2957fe5b9392505050565b6000828202831580611c4c5750828482811515611c4957fe5b04145b1515611c2957fe5b600082821115611c6057fe5b50900390565b60206040519081016040526000815290565b828054828255906000526020600020908101928215611cb3579160200282015b82811115611cb3578251825591602001919060010190611c98565b50611cbf929150611cc3565b5090565b611cdd91905b80821115611cbf5760008155600101611cc9565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c55d205f6bcdfb4a9bc0a54e3ae4b283eb82279cff31e6e69bf7b93379b26c830029

Swarm Source

bzzr://c55d205f6bcdfb4a9bc0a54e3ae4b283eb82279cff31e6e69bf7b93379b26c83
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.