ETH Price: $3,125.65 (+5.32%)

Token

SOCCER COIN (SOCCER)
 

Overview

Max Total Supply

20,000,000,000 SOCCER

Holders

9,767

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 16 Decimals)

Balance
60,000 SOCCER

Value
$0.00
0x9a2e02c5dee8a649038cc6e627ad2b345ded850f
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:
SOCCERCOIN

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-24
*/

pragma solidity ^0.4.23;

// SafeMath
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

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

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


// Ownable
contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}


// ERC223
contract ERC223 {
    uint public totalSupply;

    function balanceOf(address who) public view returns (uint);
    function totalSupply() public view returns (uint256 _supply);
    function transfer(address to, uint value) public returns (bool ok);
    function transfer(address to, uint value, bytes data) public returns (bool ok);
    function transfer(address to, uint value, bytes data, string customFallback) public returns (bool ok);
    event Transfer(address indexed from, address indexed to, uint value, bytes indexed data);

    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    function decimals() public view returns (uint8 _decimals);

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}


 // ContractReceiver
 contract ContractReceiver {

    struct TKN {
        address sender;
        uint value;
        bytes data;
        bytes4 sig;
    }

    function tokenFallback(address _from, uint _value, bytes _data) public pure {
        TKN memory tkn;
        tkn.sender = _from;
        tkn.value = _value;
        tkn.data = _data;
        uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24);
        tkn.sig = bytes4(u);

        /*
         * tkn variable is analogue of msg variable of Ether transaction
         * tkn.sender is person who initiated this token transaction   (analogue of msg.sender)
         * tkn.value the number of tokens that were sent   (analogue of msg.value)
         * tkn.data is data of token transaction   (analogue of msg.data)
         * tkn.sig is 4 bytes signature of function if data of token transaction is a function execution
         */
    }
}


// SOCCERCOIN
contract SOCCERCOIN is ERC223, Ownable {
    using SafeMath for uint256;

    string public name = "SOCCER COIN";
    string public symbol = "SOCCER";
    uint8 public decimals = 16;
    uint256 public totalSupply;

    uint public chainStartTime; //chain start time
    uint public chainStartBlockNumber; //chain start block number
    uint public stakeStartTime; //stake start time
    uint public stakeMinAge = 3 days; // minimum age for coin age: 3D
    uint public stakeMaxAge = 90 days; // stake age of full weight: 90D

    uint256 public maxTotalSupply = 45e9 * 1e16;
    uint256 public initialTotalSupply = 20e9 * 1e16;

    struct transferInStruct{
      uint256 amount;
      uint64 time;
    }

    address public admin = 0x166A52e2f21b36522Bfcf6e940AD17E2649424b0;
    address public presale = 0x652b861c0021D854f1A1240d4Ff468f4EE14B89E;
    address public develop = 0x6C0689664E1c9f228EEb87088c4F3eA6244d6Cc3;
    address public pr = 0xFB432Ac2F5fb98312264df7965E2Ca062C856150;
    address public manage = 0x282117F44Be63192Fc05C6Ccce748E3618aceCD8;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping (address => uint256)) public allowance;
    mapping(address => transferInStruct[]) public transferIns;

    event Burn(address indexed burner, uint256 value);
    event PosMint(address indexed _address, uint _reward);

    constructor () public {
        owner = admin;
        totalSupply = initialTotalSupply;
        balanceOf[owner] = totalSupply;

        chainStartTime = now;
        chainStartBlockNumber = block.number;
    }

    function name() public view returns (string _name) {
        return name;
    }

    function symbol() public view returns (string _symbol) {
        return symbol;
    }

    function decimals() public view returns (uint8 _decimals) {
        return decimals;
    }

    function totalSupply() public view returns (uint256 _totalSupply) {
        return totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balanceOf[_owner];
    }

    // transfer
    function transfer(address _to, uint _value) public returns (bool success) {
        require(_value > 0);

        bytes memory empty;
        if (isContract(_to)) {
            return transferToContract(_to, _value, empty);
        } else {
            return transferToAddress(_to, _value, empty);
        }
    }

    function transfer(address _to, uint _value, bytes _data) public  returns (bool success) {
        require(_value > 0);

        if (isContract(_to)) {
            return transferToContract(_to, _value, _data);
        } else {
            return transferToAddress(_to, _value, _data);
        }
    }

    function transfer(address _to, uint _value, bytes _data, string _custom_fallback) public returns (bool success) {
        require(_value > 0);

        if (isContract(_to)) {
            require(balanceOf[msg.sender] >= _value);
            balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
            balanceOf[_to] = balanceOf[_to].add(_value);
            assert(_to.call.value(0)(bytes4(keccak256(_custom_fallback)), msg.sender, _value, _data));
            emit Transfer(msg.sender, _to, _value, _data);
            emit Transfer(msg.sender, _to, _value);

            if(transferIns[msg.sender].length > 0) delete transferIns[msg.sender];
            uint64 _now = uint64(now);
            transferIns[msg.sender].push(transferInStruct(uint256(balanceOf[msg.sender]),_now));
            transferIns[_to].push(transferInStruct(uint256(_value),_now));

            return true;
        } else {
            return transferToAddress(_to, _value, _data);
        }
    }

    // assemble the given address bytecode. If bytecode exists then the _addr is a contract.
    function isContract(address _addr) private view returns (bool is_contract) {
        uint length;
        assembly {
            //retrieve the size of the code on target address, this needs assembly
            length := extcodesize(_addr)
        }
        return (length > 0);
    }

    // function that is called when transaction target is an address
    function transferToAddress(address _to, uint _value, bytes _data) private returns (bool success) {
        require(balanceOf[msg.sender] >= _value);
        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
        balanceOf[_to] = balanceOf[_to].add(_value);
        emit Transfer(msg.sender, _to, _value, _data);
        emit Transfer(msg.sender, _to, _value);

        if(transferIns[msg.sender].length > 0) delete transferIns[msg.sender];
        uint64 _now = uint64(now);
        transferIns[msg.sender].push(transferInStruct(uint256(balanceOf[msg.sender]),_now));
        transferIns[_to].push(transferInStruct(uint256(_value),_now));

        return true;
    }

    // function that is called when transaction target is a contract
    function transferToContract(address _to, uint _value, bytes _data) private returns (bool success) {
        require(balanceOf[msg.sender] >= _value);
        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
        balanceOf[_to] = balanceOf[_to].add(_value);
        ContractReceiver receiver = ContractReceiver(_to);
        receiver.tokenFallback(msg.sender, _value, _data);
        emit Transfer(msg.sender, _to, _value, _data);
        emit Transfer(msg.sender, _to, _value);

        if(transferIns[msg.sender].length > 0) delete transferIns[msg.sender];
        uint64 _now = uint64(now);
        transferIns[msg.sender].push(transferInStruct(uint256(balanceOf[msg.sender]),_now));
        transferIns[_to].push(transferInStruct(uint256(_value),_now));

        return true;
    }

    // transferFrom
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_to != address(0)
                && _value > 0
                && balanceOf[_from] >= _value
                && allowance[_from][msg.sender] >= _value);

        balanceOf[_from] = balanceOf[_from].sub(_value);
        balanceOf[_to] = balanceOf[_to].add(_value);
        allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);

        if(transferIns[_from].length > 0) delete transferIns[_from];
        uint64 _now = uint64(now);
        transferIns[_from].push(transferInStruct(uint256(balanceOf[_from]),_now));
        transferIns[_to].push(transferInStruct(uint256(_value),_now));

        return true;
    }

    // approve
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // allowance
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowance[_owner][_spender];
    }

    // airdrop
    function airdrop(address[] addresses, uint[] amounts) public returns (bool) {
        require(addresses.length > 0
                && addresses.length == amounts.length);

        uint256 totalAmount = 0;

        for(uint j = 0; j < addresses.length; j++){
            require(amounts[j] > 0
                    && addresses[j] != 0x0);

            amounts[j] = amounts[j].mul(1e16);
            totalAmount = totalAmount.add(amounts[j]);
        }
        require(balanceOf[msg.sender] >= totalAmount);

        uint64 _now = uint64(now);
        for (j = 0; j < addresses.length; j++) {
            balanceOf[addresses[j]] = balanceOf[addresses[j]].add(amounts[j]);
            emit Transfer(msg.sender, addresses[j], amounts[j]);

            transferIns[addresses[j]].push(transferInStruct(uint256(amounts[j]),_now));
        }
        balanceOf[msg.sender] = balanceOf[msg.sender].sub(totalAmount);

        if(transferIns[msg.sender].length > 0) delete transferIns[msg.sender];
        if(balanceOf[msg.sender] > 0) transferIns[msg.sender].push(transferInStruct(uint256(balanceOf[msg.sender]),_now));

        return true;
    }

    function setStakeStartTime(uint timestamp) onlyOwner public {
        require((stakeStartTime <= 0) && (timestamp >= chainStartTime));
        stakeStartTime = timestamp;
    }

    function ownerBurnToken(uint _value) onlyOwner public {
        require(_value > 0);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
        delete transferIns[msg.sender];
        transferIns[msg.sender].push(transferInStruct(uint128(balanceOf[msg.sender]),uint64(now)));

        totalSupply = totalSupply.sub(_value);
        initialTotalSupply = initialTotalSupply.sub(_value);
        maxTotalSupply = maxTotalSupply.sub(_value*10);

        emit Burn(msg.sender, _value);
    }

    function getBlockNumber() constant public returns (uint blockNumber) {
        blockNumber = block.number.sub(chainStartBlockNumber);
    }

    modifier canPoSMint() {
        require(totalSupply < maxTotalSupply);
        _;
    }

    function posMint() canPoSMint public returns (bool) {
        if(balanceOf[msg.sender] <= 0) return false;
        if(transferIns[msg.sender].length <= 0) return false;

        uint reward = getReward(msg.sender);
        if(reward <= 0) return false;

        totalSupply = totalSupply.add(reward);
        balanceOf[msg.sender] = balanceOf[msg.sender].add(reward);
        delete transferIns[msg.sender];
        transferIns[msg.sender].push(transferInStruct(uint256(balanceOf[msg.sender]),uint64(now)));

        emit PosMint(msg.sender, reward);
        return true;
    }

    function coinAge() constant public returns (uint myCoinAge) {
        myCoinAge = getCoinAge(msg.sender,now);
    }

    function getCoinAge(address _address, uint _now) internal view returns (uint _coinAge) {
        if(transferIns[_address].length <= 0) return 0;

        for (uint i = 0; i < transferIns[_address].length; i++){
            if( _now < uint(transferIns[_address][i].time).add(stakeMinAge) ) continue;

            uint nCoinSeconds = _now.sub(uint(transferIns[_address][i].time));
            if( nCoinSeconds > stakeMaxAge ) nCoinSeconds = stakeMaxAge;

            _coinAge = _coinAge.add(uint(transferIns[_address][i].amount).mul(nCoinSeconds).div(1 days));
        }
    }

    function getReward(address _address) internal view returns (uint reward) {
        require( (now >= stakeStartTime) && (stakeStartTime > 0) );

        uint64 _now = uint64(now);
        uint _coinAge = getCoinAge(_address, _now);
        if(_coinAge <= 0) return 0;

        reward = _coinAge.mul(45).div(1000).div(365);
        return reward;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_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":true,"inputs":[],"name":"pr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coinAge","outputs":[{"name":"myCoinAge","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBlockNumber","outputs":[{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chainStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"transferIns","outputs":[{"name":"amount","type":"uint256"},{"name":"time","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"posMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakeStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"develop","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"ownerBurnToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"manage","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakeMinAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"timestamp","type":"uint256"}],"name":"setStakeStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"chainStartBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakeMaxAge","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"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"},{"name":"_custom_fallback","type":"string"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_reward","type":"uint256"}],"name":"PosMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60c0604052600b60808190527f534f4343455220434f494e00000000000000000000000000000000000000000060a0908152620000409160029190620001c5565b506040805180820190915260068082527f534f43434552000000000000000000000000000000000000000000000000000060209092019182526200008791600391620001c5565b506004805460ff191660109081179091556203f4806009556276a700600a556b01743b34e18439b502000000600b556aa56fa5b99019a5c8000000600c55600d8054600160a060020a031990811673166a52e2f21b36522bfcf6e940ad17e2649424b017909155600e8054821673652b861c0021d854f1a1240d4ff468f4ee14b89e179055600f80548216736c0689664e1c9f228eeb87088c4f3ea6244d6cc31790558154811673fb432ac2f5fb98312264df7965e2ca062c856150179091556011805490911673282117f44be63192fc05c6ccce748e3618acecd81790553480156200017357600080fd5b5060018054600d54600160a060020a03338116600160a060020a0319938416179092169082161791829055600c546005819055911660009081526012602052604090205542600655436007556200026a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020857805160ff191683800117855562000238565b8280016001018555821562000238579182015b82811115620002385782518255916020019190600101906200021b565b50620002469291506200024a565b5090565b6200026791905b8082111562000246576000815560010162000251565b90565b61214b806200027a6000396000f30060806040526004361061017c5763ffffffff60e060020a60003504166306fdde038114610181578063095ea7b31461020b5780631509c42a1461024357806318160ddd146102745780631e1b13c01461029b57806323b872dd146102b05780632ab4d052146102da578063311028af146102ef578063313ce5671461030457806342cbb15c1461032f5780635b054f9b1461034457806365476ea314610359578063672434821461039f5780636ac54eb01461042d57806370a08231146104425780637419f190146104635780638c0cf897146104785780638da5cb5b1461048d57806390762a8b146104a257806395d89b41146104bc578063a9059cbb146104d1578063ba2ee65c146104f5578063be45fd621461050a578063cbd8877e14610573578063cc1b63d514610588578063cd474b04146105a0578063dd62ed3e146105b5578063e1c3bac6146105dc578063f2fde38b146105f1578063f6368f8a14610612578063f851a440146106b9578063fdea8e0b146106ce575b600080fd5b34801561018d57600080fd5b506101966106e3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d05781810151838201526020016101b8565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021757600080fd5b5061022f600160a060020a0360043516602435610777565b604080519115158252519081900360200190f35b34801561024f57600080fd5b506102586107e1565b60408051600160a060020a039092168252519081900360200190f35b34801561028057600080fd5b506102896107f0565b60408051918252519081900360200190f35b3480156102a757600080fd5b506102896107f6565b3480156102bc57600080fd5b5061022f600160a060020a0360043581169060243516604435610807565b3480156102e657600080fd5b50610289610a7e565b3480156102fb57600080fd5b50610289610a84565b34801561031057600080fd5b50610319610a8a565b6040805160ff9092168252519081900360200190f35b34801561033b57600080fd5b50610289610a93565b34801561035057600080fd5b50610289610aaa565b34801561036557600080fd5b5061037d600160a060020a0360043516602435610ab0565b6040805192835267ffffffffffffffff90911660208301528051918290030190f35b3480156103ab57600080fd5b506040805160206004803580820135838102808601850190965280855261022f95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610af59650505050505050565b34801561043957600080fd5b5061022f610ef9565b34801561044e57600080fd5b50610289600160a060020a036004351661109a565b34801561046f57600080fd5b506102896110b5565b34801561048457600080fd5b506102586110bb565b34801561049957600080fd5b506102586110ca565b3480156104ae57600080fd5b506104ba6004356110d9565b005b3480156104c857600080fd5b50610196611262565b3480156104dd57600080fd5b5061022f600160a060020a03600435166024356112c3565b34801561050157600080fd5b50610258611305565b34801561051657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261022f948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506113149650505050505050565b34801561057f57600080fd5b50610289611354565b34801561059457600080fd5b506104ba60043561135a565b3480156105ac57600080fd5b5061028961139a565b3480156105c157600080fd5b50610289600160a060020a03600435811690602435166113a0565b3480156105e857600080fd5b506102896113cb565b3480156105fd57600080fd5b506104ba600160a060020a03600435166113d1565b34801561061e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261022f948235600160a060020a031694602480359536959460649492019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061146a9650505050505050565b3480156106c557600080fd5b50610258611828565b3480156106da57600080fd5b50610258611837565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561076c5780601f106107415761010080835404028352916020019161076c565b820191906000526020600020905b81548152906001019060200180831161074f57829003601f168201915b505050505090505b90565b600160a060020a03338116600081815260136020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b601054600160a060020a031681565b60055490565b60006108023342611846565b905090565b600080600160a060020a038416158015906108225750600083115b80156108465750600160a060020a0385166000908152601260205260409020548311155b80156108785750600160a060020a03808616600090815260136020908152604080832033909416835292905220548311155b151561088357600080fd5b600160a060020a0385166000908152601260205260409020546108ac908463ffffffff6119eb16565b600160a060020a0380871660009081526012602052604080822093909355908616815220546108e1908463ffffffff6119fd16565b600160a060020a03808616600090815260126020908152604080832094909455888316825260138152838220339093168252919091522054610929908463ffffffff6119eb16565b600160a060020a03808716600081815260136020908152604080832033861684528252918290209490945580518781529051928816939192600080516020612100833981519152929181900390910190a3600160a060020a03851660009081526014602052604081205411156109ba57600160a060020a03851660009081526014602052604081206109ba916120ae565b5050600160a060020a039283166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff428116828601818152845460018082018755958a52878a20945160029182029095019485559051938501805494841667ffffffffffffffff1995861617905599909a168752948452828620835180850190945296835282840198895286548083018855968652929094209051949095029094019283559351918101805492909416919092161790915590565b600b5481565b600c5481565b60045460ff1690565b6000610802600754436119eb90919063ffffffff16565b60065481565b601460205281600052604060002081815481101515610acb57fe5b60009182526020909120600290910201805460019091015490925067ffffffffffffffff16905082565b60008060008060008651118015610b0d575084518651145b1515610b1857600080fd5b60009250600091505b8551821015610bfa5760008583815181101515610b3a57fe5b90602001906020020151118015610b7257508582815181101515610b5a57fe5b90602001906020020151600160a060020a0316600014155b1515610b7d57600080fd5b610bac662386f26fc100008684815181101515610b9657fe5b602090810290910101519063ffffffff611a0c16565b8583815181101515610bba57fe5b602090810290910101528451610bed90869084908110610bd657fe5b60209081029091010151849063ffffffff6119fd16565b9250600190910190610b21565b600160a060020a033316600090815260126020526040902054831115610c1f57600080fd5b5060009050425b8551821015610de157610c8b8583815181101515610c4057fe5b90602001906020020151601260008986815181101515610c5c57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6119fd16565b601260008885815181101515610c9d57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110610cce57fe5b90602001906020020151600160a060020a031633600160a060020a03166000805160206121008339815191528785815181101515610d0857fe5b906020019060200201516040518082815260200191505060405180910390a3601460008784815181101515610d3957fe5b90602001906020020151600160a060020a0316600160a060020a0316815260200190815260200160002060408051908101604052808785815181101515610d7c57fe5b602090810291909101810151825267ffffffffffffffff858116928201929092528354600180820186556000958652948290208451600290920201908155920151918301805467ffffffffffffffff1916929091169190911790559190910190610c26565b600160a060020a033316600090815260126020526040902054610e0a908463ffffffff6119eb16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120541115610e5857600160a060020a0333166000908152601460205260408120610e58916120ae565b600160a060020a0333166000908152601260205260408120541115610eed5733600160a060020a03166000908152601460209081526040808320815180830183526012845291842054825267ffffffffffffffff8581168385019081528254600180820185559387529490952092516002909402909201928355925191909201805467ffffffffffffffff1916919092161790555b50600195945050505050565b600080600b54600554101515610f0e57600080fd5b600160a060020a03331660009081526012602052604081205411610f355760009150611096565b600160a060020a03331660009081526014602052604081205411610f5c5760009150611096565b610f6533611a37565b905060008111610f785760009150611096565b600554610f8b908263ffffffff6119fd16565b600555600160a060020a033316600090815260126020526040902054610fb7908263ffffffff6119fd16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120610fe6916120ae565b33600160a060020a0316600081815260146020908152604080832081518083018352601284528285205481524267ffffffffffffffff9081168286019081528354600180820186559488529686902092516002909702909201958655905194909101805467ffffffffffffffff19169490911693909317909255815184815291517f703ad90184e23a946a95d94712e3879bfb81c10b124ce10c7e21ceca77350da59281900390910190a2600191505b5090565b600160a060020a031660009081526012602052604090205490565b60085481565b600f54600160a060020a031681565b600154600160a060020a031681565b60015433600160a060020a039081169116146110f457600080fd5b6000811161110157600080fd5b600160a060020a03331660009081526012602052604090205461112a908263ffffffff6119eb16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120611159916120ae565b33600160a060020a031660009081526014602090815260408083208151808301835260128452918420546fffffffffffffffffffffffffffffffff1682524267ffffffffffffffff9081168385019081528254600180820185559387529490952092516002909402909201928355925191909201805467ffffffffffffffff1916919092161790556005546111ee90826119eb565b600555600c54611204908263ffffffff6119eb16565b600c55600b5461121d90600a830263ffffffff6119eb16565b600b55604080518281529051600160a060020a033316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561076c5780601f106107415761010080835404028352916020019161076c565b600060608183116112d357600080fd5b6112dc84611aaa565b156112f3576112ec848483611ab2565b91506112fe565b6112ec848483611e1b565b5092915050565b601154600160a060020a031681565b600080831161132257600080fd5b61132b84611aaa565b156113425761133b848484611ab2565b905061134d565b61133b848484611e1b565b9392505050565b60095481565b60015433600160a060020a0390811691161461137557600080fd5b60006008541115801561138a57506006548110155b151561139557600080fd5b600855565b60075481565b600160a060020a03918216600090815260136020908152604080832093909416825291909152205490565b600a5481565b60015433600160a060020a039081169116146113ec57600080fd5b600160a060020a038116151561140157600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080851161147957600080fd5b61148286611aaa565b1561181157600160a060020a0333166000908152601260205260409020548511156114ac57600080fd5b600160a060020a0333166000908152601260205260409020546114d5908663ffffffff6119eb16565b600160a060020a03338116600090815260126020526040808220939093559088168152205461150a908663ffffffff6119fd16565b600160a060020a038716600081815260126020908152604080832094909455925186519293919287928291908401908083835b6020831061155c5780518252601f19909201916020918201910161153d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060e060020a9004903388886040518563ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b838110156115ee5781810151838201526020016115d6565b50505050905090810190601f16801561161b5780820380516001836020036101000a031916815260200191505b50935050505060006040518083038185885af19350505050151561163b57fe5b836040518082805190602001908083835b6020831061166b5780518252601f19909201916020918201910161164c565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208b83529351939550600160a060020a038c811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a485600160a060020a031633600160a060020a0316600080516020612100833981519152876040518082815260200191505060405180910390a3600160a060020a033316600090815260146020526040812054111561174d57600160a060020a033316600090815260146020526040812061174d916120ae565b5050600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998e16895296865284882085518087019096528c86528587019788528054808601825590895295909720935194909702909201928355925191830180549290951691161790925561181f565b61181c868686611e1b565b91505b50949350505050565b600d54600160a060020a031681565b600e54600160a060020a031681565b600160a060020a03821660009081526014602052604081205481908190811061187257600092506119e3565b600091505b600160a060020a0385166000908152601460205260409020548210156119e357600954600160a060020a038616600090815260146020526040902080546118ee929190859081106118c457fe5b600091825260209091206001600290920201015467ffffffffffffffff169063ffffffff6119fd16565b8410156118fa576119d8565b600160a060020a0385166000908152601460205260409020805461194e91908490811061192357fe5b6000918252602090912060016002909202010154859067ffffffffffffffff1663ffffffff6119eb16565b9050600a5481111561195f5750600a545b6119d56119c8620151806119bc84601460008b600160a060020a0316600160a060020a031681526020019081526020016000208781548110151561199f57fe5b60009182526020909120600290910201549063ffffffff611a0c16565b9063ffffffff61209716565b849063ffffffff6119fd16565b92505b600190910190611877565b505092915050565b6000828211156119f757fe5b50900390565b60008282018381101561134d57fe5b600080831515611a1f57600091506112fe565b50828202828482811515611a2f57fe5b041461134d57fe5b60008060006008544210158015611a5057506000600854115b1515611a5b57600080fd5b429150611a72848367ffffffffffffffff16611846565b905060008111611a855760009250611aa3565b611aa061016d6119bc6103e88185602d63ffffffff611a0c16565b92505b5050919050565b6000903b1190565b600160a060020a03331660009081526012602052604081205481908190851115611adb57600080fd5b600160a060020a033316600090815260126020526040902054611b04908663ffffffff6119eb16565b600160a060020a033381166000908152601260205260408082209390935590881681522054611b39908663ffffffff6119fd16565b600160a060020a0380881660008181526012602090815260408083209590955593517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523393841660048201908152602482018b90526060604483019081528a5160648401528a518d9950949663c0ee0b8a96958d958d9560840192860191908190849084905b83811015611bd9578181015183820152602001611bc1565b50505050905090810190601f168015611c065780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b50505050836040518082805190602001908083835b60208310611c6f5780518252601f199092019160209182019101611c50565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208b83529351939550600160a060020a038c811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a485600160a060020a031633600160a060020a0316600080516020612100833981519152876040518082815260200191505060405180910390a3600160a060020a0333166000908152601460205260408120541115611d5157600160a060020a0333166000908152601460205260408120611d51916120ae565b50600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998f16895296865284882085518087019096528d86528587019788528054808601825590895295909720935194909702909201928355925191830180549290951691161790925590925050509392505050565b600160a060020a0333166000908152601260205260408120548190841115611e4257600080fd5b600160a060020a033316600090815260126020526040902054611e6b908563ffffffff6119eb16565b600160a060020a033381166000908152601260205260408082209390935590871681522054611ea0908563ffffffff6119fd16565b600160a060020a0386166000908152601260209081526040918290209290925551845185928291908401908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208a83529351939550600160a060020a038b811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a484600160a060020a031633600160a060020a0316600080516020612100833981519152866040518082815260200191505060405180910390a3600160a060020a0333166000908152601460205260408120541115611fd057600160a060020a0333166000908152601460205260408120611fd0916120ae565b5050600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998d16895296865284882085518087019096528b865285870197885280548086018255908952959097209351949097029092019283559251918301805492909516911617909255509392505050565b60008082848115156120a557fe5b04949350505050565b50805460008255600202906000526020600020908101906120cf91906120d2565b50565b61077491905b80821115611096576000815560018101805467ffffffffffffffff191690556002016120d85600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582081f719e75b6edabf1ef9bacb34d7a4b8d372d855dd5ca3f5bf42fdaa039859110029

Deployed Bytecode

0x60806040526004361061017c5763ffffffff60e060020a60003504166306fdde038114610181578063095ea7b31461020b5780631509c42a1461024357806318160ddd146102745780631e1b13c01461029b57806323b872dd146102b05780632ab4d052146102da578063311028af146102ef578063313ce5671461030457806342cbb15c1461032f5780635b054f9b1461034457806365476ea314610359578063672434821461039f5780636ac54eb01461042d57806370a08231146104425780637419f190146104635780638c0cf897146104785780638da5cb5b1461048d57806390762a8b146104a257806395d89b41146104bc578063a9059cbb146104d1578063ba2ee65c146104f5578063be45fd621461050a578063cbd8877e14610573578063cc1b63d514610588578063cd474b04146105a0578063dd62ed3e146105b5578063e1c3bac6146105dc578063f2fde38b146105f1578063f6368f8a14610612578063f851a440146106b9578063fdea8e0b146106ce575b600080fd5b34801561018d57600080fd5b506101966106e3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d05781810151838201526020016101b8565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021757600080fd5b5061022f600160a060020a0360043516602435610777565b604080519115158252519081900360200190f35b34801561024f57600080fd5b506102586107e1565b60408051600160a060020a039092168252519081900360200190f35b34801561028057600080fd5b506102896107f0565b60408051918252519081900360200190f35b3480156102a757600080fd5b506102896107f6565b3480156102bc57600080fd5b5061022f600160a060020a0360043581169060243516604435610807565b3480156102e657600080fd5b50610289610a7e565b3480156102fb57600080fd5b50610289610a84565b34801561031057600080fd5b50610319610a8a565b6040805160ff9092168252519081900360200190f35b34801561033b57600080fd5b50610289610a93565b34801561035057600080fd5b50610289610aaa565b34801561036557600080fd5b5061037d600160a060020a0360043516602435610ab0565b6040805192835267ffffffffffffffff90911660208301528051918290030190f35b3480156103ab57600080fd5b506040805160206004803580820135838102808601850190965280855261022f95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610af59650505050505050565b34801561043957600080fd5b5061022f610ef9565b34801561044e57600080fd5b50610289600160a060020a036004351661109a565b34801561046f57600080fd5b506102896110b5565b34801561048457600080fd5b506102586110bb565b34801561049957600080fd5b506102586110ca565b3480156104ae57600080fd5b506104ba6004356110d9565b005b3480156104c857600080fd5b50610196611262565b3480156104dd57600080fd5b5061022f600160a060020a03600435166024356112c3565b34801561050157600080fd5b50610258611305565b34801561051657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261022f948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506113149650505050505050565b34801561057f57600080fd5b50610289611354565b34801561059457600080fd5b506104ba60043561135a565b3480156105ac57600080fd5b5061028961139a565b3480156105c157600080fd5b50610289600160a060020a03600435811690602435166113a0565b3480156105e857600080fd5b506102896113cb565b3480156105fd57600080fd5b506104ba600160a060020a03600435166113d1565b34801561061e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261022f948235600160a060020a031694602480359536959460649492019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061146a9650505050505050565b3480156106c557600080fd5b50610258611828565b3480156106da57600080fd5b50610258611837565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561076c5780601f106107415761010080835404028352916020019161076c565b820191906000526020600020905b81548152906001019060200180831161074f57829003601f168201915b505050505090505b90565b600160a060020a03338116600081815260136020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b601054600160a060020a031681565b60055490565b60006108023342611846565b905090565b600080600160a060020a038416158015906108225750600083115b80156108465750600160a060020a0385166000908152601260205260409020548311155b80156108785750600160a060020a03808616600090815260136020908152604080832033909416835292905220548311155b151561088357600080fd5b600160a060020a0385166000908152601260205260409020546108ac908463ffffffff6119eb16565b600160a060020a0380871660009081526012602052604080822093909355908616815220546108e1908463ffffffff6119fd16565b600160a060020a03808616600090815260126020908152604080832094909455888316825260138152838220339093168252919091522054610929908463ffffffff6119eb16565b600160a060020a03808716600081815260136020908152604080832033861684528252918290209490945580518781529051928816939192600080516020612100833981519152929181900390910190a3600160a060020a03851660009081526014602052604081205411156109ba57600160a060020a03851660009081526014602052604081206109ba916120ae565b5050600160a060020a039283166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff428116828601818152845460018082018755958a52878a20945160029182029095019485559051938501805494841667ffffffffffffffff1995861617905599909a168752948452828620835180850190945296835282840198895286548083018855968652929094209051949095029094019283559351918101805492909416919092161790915590565b600b5481565b600c5481565b60045460ff1690565b6000610802600754436119eb90919063ffffffff16565b60065481565b601460205281600052604060002081815481101515610acb57fe5b60009182526020909120600290910201805460019091015490925067ffffffffffffffff16905082565b60008060008060008651118015610b0d575084518651145b1515610b1857600080fd5b60009250600091505b8551821015610bfa5760008583815181101515610b3a57fe5b90602001906020020151118015610b7257508582815181101515610b5a57fe5b90602001906020020151600160a060020a0316600014155b1515610b7d57600080fd5b610bac662386f26fc100008684815181101515610b9657fe5b602090810290910101519063ffffffff611a0c16565b8583815181101515610bba57fe5b602090810290910101528451610bed90869084908110610bd657fe5b60209081029091010151849063ffffffff6119fd16565b9250600190910190610b21565b600160a060020a033316600090815260126020526040902054831115610c1f57600080fd5b5060009050425b8551821015610de157610c8b8583815181101515610c4057fe5b90602001906020020151601260008986815181101515610c5c57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6119fd16565b601260008885815181101515610c9d57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110610cce57fe5b90602001906020020151600160a060020a031633600160a060020a03166000805160206121008339815191528785815181101515610d0857fe5b906020019060200201516040518082815260200191505060405180910390a3601460008784815181101515610d3957fe5b90602001906020020151600160a060020a0316600160a060020a0316815260200190815260200160002060408051908101604052808785815181101515610d7c57fe5b602090810291909101810151825267ffffffffffffffff858116928201929092528354600180820186556000958652948290208451600290920201908155920151918301805467ffffffffffffffff1916929091169190911790559190910190610c26565b600160a060020a033316600090815260126020526040902054610e0a908463ffffffff6119eb16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120541115610e5857600160a060020a0333166000908152601460205260408120610e58916120ae565b600160a060020a0333166000908152601260205260408120541115610eed5733600160a060020a03166000908152601460209081526040808320815180830183526012845291842054825267ffffffffffffffff8581168385019081528254600180820185559387529490952092516002909402909201928355925191909201805467ffffffffffffffff1916919092161790555b50600195945050505050565b600080600b54600554101515610f0e57600080fd5b600160a060020a03331660009081526012602052604081205411610f355760009150611096565b600160a060020a03331660009081526014602052604081205411610f5c5760009150611096565b610f6533611a37565b905060008111610f785760009150611096565b600554610f8b908263ffffffff6119fd16565b600555600160a060020a033316600090815260126020526040902054610fb7908263ffffffff6119fd16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120610fe6916120ae565b33600160a060020a0316600081815260146020908152604080832081518083018352601284528285205481524267ffffffffffffffff9081168286019081528354600180820186559488529686902092516002909702909201958655905194909101805467ffffffffffffffff19169490911693909317909255815184815291517f703ad90184e23a946a95d94712e3879bfb81c10b124ce10c7e21ceca77350da59281900390910190a2600191505b5090565b600160a060020a031660009081526012602052604090205490565b60085481565b600f54600160a060020a031681565b600154600160a060020a031681565b60015433600160a060020a039081169116146110f457600080fd5b6000811161110157600080fd5b600160a060020a03331660009081526012602052604090205461112a908263ffffffff6119eb16565b600160a060020a03331660009081526012602090815260408083209390935560149052908120611159916120ae565b33600160a060020a031660009081526014602090815260408083208151808301835260128452918420546fffffffffffffffffffffffffffffffff1682524267ffffffffffffffff9081168385019081528254600180820185559387529490952092516002909402909201928355925191909201805467ffffffffffffffff1916919092161790556005546111ee90826119eb565b600555600c54611204908263ffffffff6119eb16565b600c55600b5461121d90600a830263ffffffff6119eb16565b600b55604080518281529051600160a060020a033316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561076c5780601f106107415761010080835404028352916020019161076c565b600060608183116112d357600080fd5b6112dc84611aaa565b156112f3576112ec848483611ab2565b91506112fe565b6112ec848483611e1b565b5092915050565b601154600160a060020a031681565b600080831161132257600080fd5b61132b84611aaa565b156113425761133b848484611ab2565b905061134d565b61133b848484611e1b565b9392505050565b60095481565b60015433600160a060020a0390811691161461137557600080fd5b60006008541115801561138a57506006548110155b151561139557600080fd5b600855565b60075481565b600160a060020a03918216600090815260136020908152604080832093909416825291909152205490565b600a5481565b60015433600160a060020a039081169116146113ec57600080fd5b600160a060020a038116151561140157600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080851161147957600080fd5b61148286611aaa565b1561181157600160a060020a0333166000908152601260205260409020548511156114ac57600080fd5b600160a060020a0333166000908152601260205260409020546114d5908663ffffffff6119eb16565b600160a060020a03338116600090815260126020526040808220939093559088168152205461150a908663ffffffff6119fd16565b600160a060020a038716600081815260126020908152604080832094909455925186519293919287928291908401908083835b6020831061155c5780518252601f19909201916020918201910161153d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060e060020a9004903388886040518563ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b838110156115ee5781810151838201526020016115d6565b50505050905090810190601f16801561161b5780820380516001836020036101000a031916815260200191505b50935050505060006040518083038185885af19350505050151561163b57fe5b836040518082805190602001908083835b6020831061166b5780518252601f19909201916020918201910161164c565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208b83529351939550600160a060020a038c811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a485600160a060020a031633600160a060020a0316600080516020612100833981519152876040518082815260200191505060405180910390a3600160a060020a033316600090815260146020526040812054111561174d57600160a060020a033316600090815260146020526040812061174d916120ae565b5050600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998e16895296865284882085518087019096528c86528587019788528054808601825590895295909720935194909702909201928355925191830180549290951691161790925561181f565b61181c868686611e1b565b91505b50949350505050565b600d54600160a060020a031681565b600e54600160a060020a031681565b600160a060020a03821660009081526014602052604081205481908190811061187257600092506119e3565b600091505b600160a060020a0385166000908152601460205260409020548210156119e357600954600160a060020a038616600090815260146020526040902080546118ee929190859081106118c457fe5b600091825260209091206001600290920201015467ffffffffffffffff169063ffffffff6119fd16565b8410156118fa576119d8565b600160a060020a0385166000908152601460205260409020805461194e91908490811061192357fe5b6000918252602090912060016002909202010154859067ffffffffffffffff1663ffffffff6119eb16565b9050600a5481111561195f5750600a545b6119d56119c8620151806119bc84601460008b600160a060020a0316600160a060020a031681526020019081526020016000208781548110151561199f57fe5b60009182526020909120600290910201549063ffffffff611a0c16565b9063ffffffff61209716565b849063ffffffff6119fd16565b92505b600190910190611877565b505092915050565b6000828211156119f757fe5b50900390565b60008282018381101561134d57fe5b600080831515611a1f57600091506112fe565b50828202828482811515611a2f57fe5b041461134d57fe5b60008060006008544210158015611a5057506000600854115b1515611a5b57600080fd5b429150611a72848367ffffffffffffffff16611846565b905060008111611a855760009250611aa3565b611aa061016d6119bc6103e88185602d63ffffffff611a0c16565b92505b5050919050565b6000903b1190565b600160a060020a03331660009081526012602052604081205481908190851115611adb57600080fd5b600160a060020a033316600090815260126020526040902054611b04908663ffffffff6119eb16565b600160a060020a033381166000908152601260205260408082209390935590881681522054611b39908663ffffffff6119fd16565b600160a060020a0380881660008181526012602090815260408083209590955593517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523393841660048201908152602482018b90526060604483019081528a5160648401528a518d9950949663c0ee0b8a96958d958d9560840192860191908190849084905b83811015611bd9578181015183820152602001611bc1565b50505050905090810190601f168015611c065780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b50505050836040518082805190602001908083835b60208310611c6f5780518252601f199092019160209182019101611c50565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208b83529351939550600160a060020a038c811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a485600160a060020a031633600160a060020a0316600080516020612100833981519152876040518082815260200191505060405180910390a3600160a060020a0333166000908152601460205260408120541115611d5157600160a060020a0333166000908152601460205260408120611d51916120ae565b50600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998f16895296865284882085518087019096528d86528587019788528054808601825590895295909720935194909702909201928355925191830180549290951691161790925590925050509392505050565b600160a060020a0333166000908152601260205260408120548190841115611e4257600080fd5b600160a060020a033316600090815260126020526040902054611e6b908563ffffffff6119eb16565b600160a060020a033381166000908152601260205260408082209390935590871681522054611ea0908563ffffffff6119fd16565b600160a060020a0386166000908152601260209081526040918290209290925551845185928291908401908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208a83529351939550600160a060020a038b811695503316937fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c169350918290030190a484600160a060020a031633600160a060020a0316600080516020612100833981519152866040518082815260200191505060405180910390a3600160a060020a0333166000908152601460205260408120541115611fd057600160a060020a0333166000908152601460205260408120611fd0916120ae565b5050600160a060020a033381166000908152601460208181526040808420815180830183526012845282862054815267ffffffffffffffff42818116838701818152855460018181018855968b52888b20955160029182029096019586559051948601805495851667ffffffffffffffff19968716179055998d16895296865284882085518087019096528b865285870197885280548086018255908952959097209351949097029092019283559251918301805492909516911617909255509392505050565b60008082848115156120a557fe5b04949350505050565b50805460008255600202906000526020600020908101906120cf91906120d2565b50565b61077491905b80821115611096576000815560018101805467ffffffffffffffff191690556002016120d85600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582081f719e75b6edabf1ef9bacb34d7a4b8d372d855dd5ca3f5bf42fdaa039859110029

Swarm Source

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