ETH Price: $3,455.20 (+1.66%)

Token

XWallet Token (XAL)
 

Overview

Max Total Supply

9,874,597,500 XAL

Holders

231

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
60,000 XAL

Value
$0.00
0x0e3c7363decabfe24637caad9e6432c6ab750648
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:
XAL

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-26
*/

/**
 *Submitted for verification at Etherscan.io on 2020-07-26
*/

pragma solidity ^0.5.16;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor () public {
        owner = msg.sender;
    }

    /**
      * @dev Throws if called by any account other than the owner.
      */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * See https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) balances;

    uint256 totalSupply_;

    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    /**
    * @dev Transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0), "Address must not be zero.");
        require(_value <= balances[msg.sender], "There is no enough balance.");

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender)
        public view returns (uint256);

    function transferFrom(address from, address to, uint256 value)
        public returns (bool);

    function approve(address spender, uint256 value) public returns (bool);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/issues/20
 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
    * @dev Transfer tokens from one address to another
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint256 the amount of tokens to be transferred
    */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
        public
        returns (bool)
    {
        require(_to != address(0), "Address must not be zero.");
        require(_value <= balances[_from], "There is no enough balance.");
        require(_value <= allowed[_from][msg.sender], "There is no enough allowed balance.");

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * Beware that changing an allowance with this method brings the risk that someone may use both the old
    * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
    * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
    * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return A uint256 specifying the amount of tokens still available for the spender.
    */
    function allowance(
        address _owner,
        address _spender
    )
        public
        view
        returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    /**
    * @dev Increase the amount of tokens that an owner allowed to a spender.
    * approve should be called when allowed[_spender] == 0. To increment
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * @param _spender The address which will spend the funds.
    * @param _addedValue The amount of tokens to increase the allowance by.
    */
    function increaseApproval(
        address _spender,
        uint256 _addedValue
    )
        public
        returns (bool)
    {
        allowed[msg.sender][_spender] = (
        allowed[msg.sender][_spender].add(_addedValue));
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
    * @dev Decrease the amount of tokens that an owner allowed to a spender.
    * approve should be called when allowed[_spender] == 0. To decrement
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * @param _spender The address which will spend the funds.
    * @param _subtractedValue The amount of tokens to decrease the allowance by.
    */
    function decreaseApproval(
        address _spender,
        uint256 _subtractedValue
    )
        public
        returns (bool)
    {
        uint256 oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}

contract UpgradedStandardToken is StandardToken{
    // those methods are called by the legacy contract
    // and they must ensure msg.sender to be the contract address
    function transferByLegacy(address from, address to, uint256 value) public returns (bool);
    function transferFromByLegacy(address sender, address from, address spender, uint256 value) public returns (bool);
    function approveByLegacy(address from, address spender, uint256 value) public returns (bool);
}

contract BlackList is Ownable, BasicToken {

    /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////
    function getBlackListStatus(address _maker) external view returns (bool) {
        return isBlackListed[_maker];
    }

    function getOwner() external view returns (address) {
        return owner;
    }

    mapping (address => bool) public isBlackListed;

    function addBlackList (address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
        emit AddedBlackList(_evilUser);
    }

    function removeBlackList (address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
        emit RemovedBlackList(_clearedUser);
    }

    function destroyBlackFunds (address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint256 dirtyFunds = balanceOf(_blackListedUser);
        balances[_blackListedUser] = 0;
        totalSupply_ -= dirtyFunds;
        emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }

    event DestroyedBlackFunds(address _blackListedUser, uint256 _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

contract XAL is Pausable, StandardToken, BlackList {
    string public name = "XWallet Token";
    string public symbol = "XAL";
    uint8 public decimals = 18;
    uint256 public init_Supply = 10000000000 * (10 ** uint256(decimals));
    address public upgradedAddress;
    bool public deprecated;

    constructor() public {
        totalSupply_ = init_Supply;
        balances[msg.sender] = totalSupply_;
        deprecated = false;
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        require(!isBlackListed[msg.sender]);
        require(!isBlackListed[_to]);
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
        } else {
            return super.transfer(_to, _value);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        require(!isBlackListed[msg.sender]);
        require(!isBlackListed[_from]);
        require(!isBlackListed[_to]);
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
        } else {
            return super.transferFrom(_from, _to, _value);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function approve(address _spender, uint256 _value) public returns (bool) {
        require(!isBlackListed[msg.sender]);
        require(!isBlackListed[_spender]);
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
        } else {
            return super.approve(_spender, _value);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) public view  returns (uint256) {
        if (deprecated) {
            return StandardToken(upgradedAddress).allowance(_owner, _spender);
        } else {
            return super.allowance(_owner, _spender);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) {
        if (deprecated) {
            return StandardToken(upgradedAddress).increaseApproval(_spender, _addedValue);
        } else {
            return super.increaseApproval(_spender, _addedValue);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) {
        if (deprecated) {
            return StandardToken(upgradedAddress).increaseApproval(_spender, _subtractedValue);
        } else {
            return super.decreaseApproval(_spender, _subtractedValue);
        }
    }

    // deprecate current contract in favour of a new one
    function deprecate(address _upgradedAddress) public onlyOwner {
        deprecated = true;
        upgradedAddress = _upgradedAddress;
        emit Deprecate(_upgradedAddress);
    }

    // Called when contract is deprecated
    event Deprecate(address newAddress);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_blackListedUser","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"init_Supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

6000805460ff60a01b1916905560c0604052600d60808190526c2c2bb0b63632ba102a37b5b2b760991b60a09081526200003d9160059190620000d7565b506040805180820190915260038082526216105360ea1b60209092019182526200006a91600691620000d7565b5060078054601260ff19909116179081905560ff16600a0a6402540be400026008553480156200009957600080fd5b50600080546001600160a01b031916339081178255600854600281905590825260016020526040909120556009805460ff60a01b191690556200017c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011a57805160ff19168380011785556200014a565b828001600101855582156200014a579182015b828111156200014a5782518255916020019190600101906200012d565b50620001589291506200015c565b5090565b6200017991905b8082111562000158576000815560010162000163565b90565b61150b806200018c6000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370a08231116100ee578063a9059cbb11610097578063e47d606011610071578063e47d60601461048e578063e4997dc5146104b4578063f2fde38b146104da578063f3bdc22814610500576101ae565b8063a9059cbb14610408578063d73dd62314610434578063dd62ed3e14610460576101ae565b8063893d20e8116100c8578063893d20e8146103f05780638da5cb5b146103f857806395d89b4114610400576101ae565b806370a08231146103ba57806374647d81146103e05780638456cb59146103e8576101ae565b806323b872dd1161015b5780633f4ba83a116101355780633f4ba83a1461035857806359bf1abe146103605780635c975abb14610386578063661884631461038e576101ae565b806323b872dd146102e057806326976e3f14610316578063313ce5671461033a576101ae565b80630e136b191161018c5780630e136b19146102985780630ecb93c0146102a057806318160ddd146102c6576101ae565b806306fdde03146101b35780630753c30c14610230578063095ea7b314610258575b600080fd5b6101bb610526565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f55781810151838201526020016101dd565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102566004803603602081101561024657600080fd5b50356001600160a01b03166105b4565b005b6102846004803603604081101561026e57600080fd5b506001600160a01b03813516906020013561063b565b604080519115158252519081900360200190f35b61028461074b565b610256600480360360208110156102b657600080fd5b50356001600160a01b031661075b565b6102ce6107cd565b60408051918252519081900360200190f35b610284600480360360608110156102f657600080fd5b506001600160a01b038135811691602081013590911690604001356107d3565b61031e61092b565b604080516001600160a01b039092168252519081900360200190f35b61034261093a565b6040805160ff9092168252519081900360200190f35b610256610943565b6102846004803603602081101561037657600080fd5b50356001600160a01b03166109a6565b6102846109c4565b610284600480360360408110156103a457600080fd5b506001600160a01b0381351690602001356109d4565b6102ce600480360360208110156103d057600080fd5b50356001600160a01b0316610a49565b6102ce610a64565b610256610a6a565b61031e610ad4565b61031e610ae3565b6101bb610af2565b6102846004803603604081101561041e57600080fd5b506001600160a01b038135169060200135610b4d565b6102846004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610c39565b6102ce6004803603604081101561047657600080fd5b506001600160a01b0381358116916020013516610cae565b610284600480360360208110156104a457600080fd5b50356001600160a01b0316610d4f565b610256600480360360208110156104ca57600080fd5b50356001600160a01b0316610d64565b610256600480360360208110156104f057600080fd5b50356001600160a01b0316610dd3565b6102566004803603602081101561051657600080fd5b50356001600160a01b0316610e25565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ac5780601f10610581576101008083540402835291602001916105ac565b820191906000526020600020905b81548152906001019060200180831161058f57829003601f168201915b505050505081565b6000546001600160a01b031633146105cb57600080fd5b60098054600160a01b60ff60a01b199091161773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a150565b3360009081526004602052604081205460ff161561065857600080fd5b6001600160a01b03831660009081526004602052604090205460ff161561067e57600080fd5b600954600160a01b900460ff161561073857600954604080517faee92d330000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038681166024830152604482018690529151919092169163aee92d339160648083019260209291908290030181600087803b15801561070557600080fd5b505af1158015610719573d6000803e3d6000fd5b505050506040513d602081101561072f57600080fd5b50519050610745565b6107428383610ed0565b90505b92915050565b600954600160a01b900460ff1681565b6000546001600160a01b0316331461077257600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a150565b60025490565b60008054600160a01b900460ff16156107eb57600080fd5b3360009081526004602052604090205460ff161561080857600080fd5b6001600160a01b03841660009081526004602052604090205460ff161561082e57600080fd5b6001600160a01b03831660009081526004602052604090205460ff161561085457600080fd5b600954600160a01b900460ff161561091657600954604080517f8b477adb0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b1580156108e357600080fd5b505af11580156108f7573d6000803e3d6000fd5b505050506040513d602081101561090d57600080fd5b50519050610924565b610921848484610f36565b90505b9392505050565b6009546001600160a01b031681565b60075460ff1681565b6000546001600160a01b0316331461095a57600080fd5b600054600160a01b900460ff1661097057600080fd5b6000805460ff60a01b191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b6001600160a01b031660009081526004602052604090205460ff1690565b600054600160a01b900460ff1681565b600954600090600160a01b900460ff1615610a3f576009546040805163d73dd62360e01b81526001600160a01b038681166004830152602482018690529151919092169163d73dd6239160448083019260209291908290030181600087803b15801561070557600080fd5b610742838361116f565b6001600160a01b031660009081526001602052604090205490565b60085481565b6000546001600160a01b03163314610a8157600080fd5b600054600160a01b900460ff1615610a9857600080fd5b6000805460ff60a01b1916600160a01b1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000546001600160a01b031690565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ac5780601f10610581576101008083540402835291602001916105ac565b60008054600160a01b900460ff1615610b6557600080fd5b3360009081526004602052604090205460ff1615610b8257600080fd5b6001600160a01b03831660009081526004602052604090205460ff1615610ba857600080fd5b600954600160a01b900460ff1615610c2f57600954604080517f6e18980a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b15801561070557600080fd5b610742838361125f565b600954600090600160a01b900460ff1615610ca4576009546040805163d73dd62360e01b81526001600160a01b038681166004830152602482018690529151919092169163d73dd6239160448083019260209291908290030181600087803b15801561070557600080fd5b61074283836113d0565b600954600090600160a01b900460ff1615610d4557600954604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015285811660248301529151919092169163dd62ed3e916044808301926020929190829003018186803b158015610d3157600080fd5b505afa158015610719573d6000803e3d6000fd5b6107428383611469565b60046020526000908152604090205460ff1681565b6000546001600160a01b03163314610d7b57600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a150565b6000546001600160a01b03163314610dea57600080fd5b6001600160a01b03811615610e22576000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b50565b6000546001600160a01b03163314610e3c57600080fd5b6001600160a01b03811660009081526004602052604090205460ff16610e6157600080fd5b6000610e6c82610a49565b6001600160a01b0383166000818152600160209081526040808320929092556002805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15050565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b038316610f93576040805162461bcd60e51b815260206004820152601960248201527f41646472657373206d757374206e6f74206265207a65726f2e00000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260016020526040902054821115611000576040805162461bcd60e51b815260206004820152601b60248201527f5468657265206973206e6f20656e6f7567682062616c616e63652e0000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526003602090815260408083203384529091529020548211156110625760405162461bcd60e51b81526004018080602001828103825260238152602001806114b46023913960400191505060405180910390fd5b6001600160a01b03841660009081526001602052604090205461108b908363ffffffff61149416565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546110c0908363ffffffff6114a616565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600382528281203382529091522054611104908363ffffffff61149416565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054808311156111c4573360009081526003602090815260408083206001600160a01b03881684529091528120556111f9565b6111d4818463ffffffff61149416565b3360009081526003602090815260408083206001600160a01b03891684529091529020555b3360008181526003602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60006001600160a01b0383166112bc576040805162461bcd60e51b815260206004820152601960248201527f41646472657373206d757374206e6f74206265207a65726f2e00000000000000604482015290519081900360640190fd5b33600090815260016020526040902054821115611320576040805162461bcd60e51b815260206004820152601b60248201527f5468657265206973206e6f20656e6f7567682062616c616e63652e0000000000604482015290519081900360640190fd5b33600090815260016020526040902054611340908363ffffffff61149416565b33600090815260016020526040808220929092556001600160a01b03851681522054611372908363ffffffff6114a616565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054611404908363ffffffff6114a616565b3360008181526003602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000828211156114a057fe5b50900390565b8181018281101561074557fefe5468657265206973206e6f20656e6f75676820616c6c6f7765642062616c616e63652ea265627a7a723158202e3fa58532fc54b21b93de985a92b8760a4b88e5120b6619deff813d8a84bc5364736f6c63430005100032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370a08231116100ee578063a9059cbb11610097578063e47d606011610071578063e47d60601461048e578063e4997dc5146104b4578063f2fde38b146104da578063f3bdc22814610500576101ae565b8063a9059cbb14610408578063d73dd62314610434578063dd62ed3e14610460576101ae565b8063893d20e8116100c8578063893d20e8146103f05780638da5cb5b146103f857806395d89b4114610400576101ae565b806370a08231146103ba57806374647d81146103e05780638456cb59146103e8576101ae565b806323b872dd1161015b5780633f4ba83a116101355780633f4ba83a1461035857806359bf1abe146103605780635c975abb14610386578063661884631461038e576101ae565b806323b872dd146102e057806326976e3f14610316578063313ce5671461033a576101ae565b80630e136b191161018c5780630e136b19146102985780630ecb93c0146102a057806318160ddd146102c6576101ae565b806306fdde03146101b35780630753c30c14610230578063095ea7b314610258575b600080fd5b6101bb610526565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f55781810151838201526020016101dd565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102566004803603602081101561024657600080fd5b50356001600160a01b03166105b4565b005b6102846004803603604081101561026e57600080fd5b506001600160a01b03813516906020013561063b565b604080519115158252519081900360200190f35b61028461074b565b610256600480360360208110156102b657600080fd5b50356001600160a01b031661075b565b6102ce6107cd565b60408051918252519081900360200190f35b610284600480360360608110156102f657600080fd5b506001600160a01b038135811691602081013590911690604001356107d3565b61031e61092b565b604080516001600160a01b039092168252519081900360200190f35b61034261093a565b6040805160ff9092168252519081900360200190f35b610256610943565b6102846004803603602081101561037657600080fd5b50356001600160a01b03166109a6565b6102846109c4565b610284600480360360408110156103a457600080fd5b506001600160a01b0381351690602001356109d4565b6102ce600480360360208110156103d057600080fd5b50356001600160a01b0316610a49565b6102ce610a64565b610256610a6a565b61031e610ad4565b61031e610ae3565b6101bb610af2565b6102846004803603604081101561041e57600080fd5b506001600160a01b038135169060200135610b4d565b6102846004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610c39565b6102ce6004803603604081101561047657600080fd5b506001600160a01b0381358116916020013516610cae565b610284600480360360208110156104a457600080fd5b50356001600160a01b0316610d4f565b610256600480360360208110156104ca57600080fd5b50356001600160a01b0316610d64565b610256600480360360208110156104f057600080fd5b50356001600160a01b0316610dd3565b6102566004803603602081101561051657600080fd5b50356001600160a01b0316610e25565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ac5780601f10610581576101008083540402835291602001916105ac565b820191906000526020600020905b81548152906001019060200180831161058f57829003601f168201915b505050505081565b6000546001600160a01b031633146105cb57600080fd5b60098054600160a01b60ff60a01b199091161773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a150565b3360009081526004602052604081205460ff161561065857600080fd5b6001600160a01b03831660009081526004602052604090205460ff161561067e57600080fd5b600954600160a01b900460ff161561073857600954604080517faee92d330000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038681166024830152604482018690529151919092169163aee92d339160648083019260209291908290030181600087803b15801561070557600080fd5b505af1158015610719573d6000803e3d6000fd5b505050506040513d602081101561072f57600080fd5b50519050610745565b6107428383610ed0565b90505b92915050565b600954600160a01b900460ff1681565b6000546001600160a01b0316331461077257600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a150565b60025490565b60008054600160a01b900460ff16156107eb57600080fd5b3360009081526004602052604090205460ff161561080857600080fd5b6001600160a01b03841660009081526004602052604090205460ff161561082e57600080fd5b6001600160a01b03831660009081526004602052604090205460ff161561085457600080fd5b600954600160a01b900460ff161561091657600954604080517f8b477adb0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b1580156108e357600080fd5b505af11580156108f7573d6000803e3d6000fd5b505050506040513d602081101561090d57600080fd5b50519050610924565b610921848484610f36565b90505b9392505050565b6009546001600160a01b031681565b60075460ff1681565b6000546001600160a01b0316331461095a57600080fd5b600054600160a01b900460ff1661097057600080fd5b6000805460ff60a01b191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b6001600160a01b031660009081526004602052604090205460ff1690565b600054600160a01b900460ff1681565b600954600090600160a01b900460ff1615610a3f576009546040805163d73dd62360e01b81526001600160a01b038681166004830152602482018690529151919092169163d73dd6239160448083019260209291908290030181600087803b15801561070557600080fd5b610742838361116f565b6001600160a01b031660009081526001602052604090205490565b60085481565b6000546001600160a01b03163314610a8157600080fd5b600054600160a01b900460ff1615610a9857600080fd5b6000805460ff60a01b1916600160a01b1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000546001600160a01b031690565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ac5780601f10610581576101008083540402835291602001916105ac565b60008054600160a01b900460ff1615610b6557600080fd5b3360009081526004602052604090205460ff1615610b8257600080fd5b6001600160a01b03831660009081526004602052604090205460ff1615610ba857600080fd5b600954600160a01b900460ff1615610c2f57600954604080517f6e18980a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b15801561070557600080fd5b610742838361125f565b600954600090600160a01b900460ff1615610ca4576009546040805163d73dd62360e01b81526001600160a01b038681166004830152602482018690529151919092169163d73dd6239160448083019260209291908290030181600087803b15801561070557600080fd5b61074283836113d0565b600954600090600160a01b900460ff1615610d4557600954604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015285811660248301529151919092169163dd62ed3e916044808301926020929190829003018186803b158015610d3157600080fd5b505afa158015610719573d6000803e3d6000fd5b6107428383611469565b60046020526000908152604090205460ff1681565b6000546001600160a01b03163314610d7b57600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a150565b6000546001600160a01b03163314610dea57600080fd5b6001600160a01b03811615610e22576000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b50565b6000546001600160a01b03163314610e3c57600080fd5b6001600160a01b03811660009081526004602052604090205460ff16610e6157600080fd5b6000610e6c82610a49565b6001600160a01b0383166000818152600160209081526040808320929092556002805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15050565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b038316610f93576040805162461bcd60e51b815260206004820152601960248201527f41646472657373206d757374206e6f74206265207a65726f2e00000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260016020526040902054821115611000576040805162461bcd60e51b815260206004820152601b60248201527f5468657265206973206e6f20656e6f7567682062616c616e63652e0000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526003602090815260408083203384529091529020548211156110625760405162461bcd60e51b81526004018080602001828103825260238152602001806114b46023913960400191505060405180910390fd5b6001600160a01b03841660009081526001602052604090205461108b908363ffffffff61149416565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546110c0908363ffffffff6114a616565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600382528281203382529091522054611104908363ffffffff61149416565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054808311156111c4573360009081526003602090815260408083206001600160a01b03881684529091528120556111f9565b6111d4818463ffffffff61149416565b3360009081526003602090815260408083206001600160a01b03891684529091529020555b3360008181526003602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60006001600160a01b0383166112bc576040805162461bcd60e51b815260206004820152601960248201527f41646472657373206d757374206e6f74206265207a65726f2e00000000000000604482015290519081900360640190fd5b33600090815260016020526040902054821115611320576040805162461bcd60e51b815260206004820152601b60248201527f5468657265206973206e6f20656e6f7567682062616c616e63652e0000000000604482015290519081900360640190fd5b33600090815260016020526040902054611340908363ffffffff61149416565b33600090815260016020526040808220929092556001600160a01b03851681522054611372908363ffffffff6114a616565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054611404908363ffffffff6114a616565b3360008181526003602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000828211156114a057fe5b50900390565b8181018281101561074557fefe5468657265206973206e6f20656e6f75676820616c6c6f7765642062616c616e63652ea265627a7a723158202e3fa58532fc54b21b93de985a92b8760a4b88e5120b6619deff813d8a84bc5364736f6c63430005100032

Deployed Bytecode Sourcemap

12006:3457:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12006:3457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12064:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12064:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15187:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15187:186:0;-1:-1:-1;;;;;15187:186:0;;:::i;:::-;;13562:386;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13562:386:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12287:22;;;:::i;9688:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9688:150:0;-1:-1:-1;;;;;9688:150:0;;:::i;1789:91::-;;;:::i;:::-;;;;;;;;;;;;;;;;13012:465;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13012:465:0;;;;;;;;;;;;;;;;;:::i;12250:30::-;;;:::i;:::-;;;;-1:-1:-1;;;;;12250:30:0;;;;;;;;;;;;;;12142:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8649:95;;;:::i;9414:120::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9414:120:0;-1:-1:-1;;;;;9414:120:0;;:::i;8028:26::-;;;:::i;14796:325::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14796:325:0;;;;;;;;:::i;2689:107::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2689:107:0;-1:-1:-1;;;;;2689:107:0;;:::i;12175:68::-;;;:::i;8469:93::-;;;:::i;9542:83::-;;;:::i;318:20::-;;;:::i;12107:28::-;;;:::i;12544:383::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12544:383:0;;;;;;;;:::i;14401:310::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14401:310:0;;;;;;;;:::i;14033:283::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14033:283:0;;;;;;;;;;:::i;9633:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9633:46:0;-1:-1:-1;;;;;9633:46:0;;:::i;9846:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9846:165:0;-1:-1:-1;;;;;9846:165:0;;:::i;886:151::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;886:151:0;-1:-1:-1;;;;;886:151:0;;:::i;10019:332::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10019:332:0;-1:-1:-1;;;;;10019:332:0;;:::i;12064:36::-;;;;;;;;;;;;;;;-1:-1:-1;;12064:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15187:186::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;15260:10;:17;;-1:-1:-1;;;;;;;15260:17:0;;;;-1:-1:-1;;15288:34:0;-1:-1:-1;;;;;15288:34:0;;;;;;;;15338:27;;;;;;;;;;;;;;;;;15187:186;:::o;13562:386::-;13669:10;13629:4;13655:25;;;:13;:25;;;;;;;;13654:26;13646:35;;;;;;-1:-1:-1;;;;;13701:23:0;;;;;;:13;:23;;;;;;;;13700:24;13692:33;;;;;;13740:10;;-1:-1:-1;;;13740:10:0;;;;13736:205;;;13796:15;;13774:84;;;;;;13829:10;13774:84;;;;-1:-1:-1;;;;;13774:84:0;;;;;;;;;;;;;;;13796:15;;;;;13774:54;;:84;;;;;;;;;;;;;;13796:15;;13774:84;;;5:2:-1;;;;30:1;27;20:12;5:2;13774:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13774:84:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13774:84:0;;-1:-1:-1;13767:91:0;;13736:205;13898:31;13912:8;13922:6;13898:13;:31::i;:::-;13891:38;;13736:205;13562:386;;;;:::o;12287:22::-;;;-1:-1:-1;;;12287:22:0;;;;;:::o;9688:150::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;-1:-1:-1;;;;;9758:24:0;;;;;;:13;:24;;;;;;;;;:31;;-1:-1:-1;;9758:31:0;9785:4;9758:31;;;9805:25;;;;;;;;;;;;;;;;;9688:150;:::o;1789:91::-;1860:12;;1789:91;:::o;13012:465::-;13108:4;8204:6;;-1:-1:-1;;;8204:6:0;;;;8203:7;8195:16;;;;;;13148:10;13134:25;;;;:13;:25;;;;;;;;13133:26;13125:35;;;;;;-1:-1:-1;;;;;13180:20:0;;;;;;:13;:20;;;;;;;;13179:21;13171:30;;;;;;-1:-1:-1;;;;;13221:18:0;;;;;;:13;:18;;;;;;;;13220:19;13212:28;;;;;;13255:10;;-1:-1:-1;;;13255:10:0;;;;13251:219;;;13311:15;;13289:91;;;;;;13349:10;13289:91;;;;-1:-1:-1;;;;;13289:91:0;;;;;;;;;;;;;;;;;;;;;;13311:15;;;;;13289:59;;:91;;;;;;;;;;;;;;13311:15;;13289:91;;;5:2:-1;;;;30:1;27;20:12;5:2;13289:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13289:91:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13289:91:0;;-1:-1:-1;13282:98:0;;13251:219;13420:38;13439:5;13446:3;13451:6;13420:18;:38::i;:::-;13413:45;;13251:219;13012:465;;;;;:::o;12250:30::-;;;-1:-1:-1;;;;;12250:30:0;;:::o;12142:26::-;;;;;;:::o;8649:95::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;8364:6;;-1:-1:-1;;;8364:6:0;;;;8356:15;;;;;;8712:5;8703:14;;-1:-1:-1;;;;8703:14:0;;;8729:9;;;;8712:5;8729:9;8649:95::o;9414:120::-;-1:-1:-1;;;;;9505:21:0;9481:4;9505:21;;;:13;:21;;;;;;;;;9414:120::o;8028:26::-;;;-1:-1:-1;;;8028:26:0;;;;;:::o;14796:325::-;14903:10;;14882:4;;-1:-1:-1;;;14903:10:0;;;;14899:215;;;14951:15;;14937:75;;;-1:-1:-1;;;14937:75:0;;-1:-1:-1;;;;;14937:75:0;;;;;;;;;;;;;;;14951:15;;;;;14937:47;;:75;;;;;;;;;;;;;;14951:15;;14937:75;;;5:2:-1;;;;30:1;27;20:12;14899:215:0;15052:50;15075:8;15085:16;15052:22;:50::i;2689:107::-;-1:-1:-1;;;;;2772:16:0;2745:7;2772:16;;;:8;:16;;;;;;;2689:107::o;12175:68::-;;;;:::o;8469:93::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;8204:6;;-1:-1:-1;;;8204:6:0;;;;8203:7;8195:16;;;;;;8524:6;:13;;-1:-1:-1;;;;8524:13:0;-1:-1:-1;;;8524:13:0;;;8549:7;;;;8524:6;8549:7;8469:93::o;9542:83::-;9585:7;9612:5;-1:-1:-1;;;;;9612:5:0;9542:83;:::o;318:20::-;;;-1:-1:-1;;;;;318:20:0;;:::o;12107:28::-;;;;;;;;;;;;;;;-1:-1:-1;;12107:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12544:383;12621:4;8204:6;;-1:-1:-1;;;8204:6:0;;;;8203:7;8195:16;;;;;;12661:10;12647:25;;;;:13;:25;;;;;;;;12646:26;12638:35;;;;;;-1:-1:-1;;;;;12693:18:0;;;;;;:13;:18;;;;;;;;12692:19;12684:28;;;;;;12727:10;;-1:-1:-1;;;12727:10:0;;;;12723:197;;;12783:15;;12761:80;;;;;;12817:10;12761:80;;;;-1:-1:-1;;;;;12761:80:0;;;;;;;;;;;;;;;12783:15;;;;;12761:55;;:80;;;;;;;;;;;;;;12783:15;;12761:80;;;5:2:-1;;;;30:1;27;20:12;12723:197:0;12881:27;12896:3;12901:6;12881:14;:27::i;14401:310::-;14503:10;;14482:4;;-1:-1:-1;;;14503:10:0;;;;14499:205;;;14551:15;;14537:70;;;-1:-1:-1;;;14537:70:0;;-1:-1:-1;;;;;14537:70:0;;;;;;;;;;;;;;;14551:15;;;;;14537:47;;:70;;;;;;;;;;;;;;14551:15;;14537:70;;;5:2:-1;;;;30:1;27;20:12;14499:205:0;14647:45;14670:8;14680:11;14647:22;:45::i;14033:283::-;14132:10;;14108:7;;-1:-1:-1;;;14132:10:0;;;;14128:181;;;14180:15;;14166:58;;;;;;-1:-1:-1;;;;;14166:58:0;;;;;;;;;;;;;;;;14180:15;;;;;14166:40;;:58;;;;;;;;;;;;;;14180:15;14166:58;;;5:2:-1;;;;30:1;27;20:12;5:2;14166:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;14128:181:0;14264:33;14280:6;14288:8;14264:15;:33::i;9633:46::-;;;;;;;;;;;;;;;:::o;9846:165::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;-1:-1:-1;;;;;9922:27:0;;9952:5;9922:27;;;:13;:27;;;;;;;;;:35;;-1:-1:-1;;9922:35:0;;;9973:30;;;;;;;;;;;;;;;;;9846:165;:::o;886:151::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;-1:-1:-1;;;;;963:22:0;;;959:71;;1002:5;:16;;-1:-1:-1;;1002:16:0;-1:-1:-1;;;;;1002:16:0;;;;;959:71;886:151;:::o;10019:332::-;686:5;;-1:-1:-1;;;;;686:5:0;672:10;:19;664:28;;;;;;-1:-1:-1;;;;;10109:31:0;;;;;;:13;:31;;;;;;;;10101:40;;;;;;10152:18;10173:27;10183:16;10173:9;:27::i;:::-;-1:-1:-1;;;;;10211:26:0;;10240:1;10211:26;;;:8;:26;;;;;;;;:30;;;;10252:12;:26;;;;;;;10294:49;;;;;;;;;;;;10152:48;;-1:-1:-1;10294:49:0;;;;;;;;;703:1;10019:332;:::o;5293:206::-;5385:10;5360:4;5377:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5377:29:0;;;;;;;;;;;:38;;;5431;;;;;;;5360:4;;5377:29;;5385:10;;5431:38;;;;;;;;-1:-1:-1;5487:4:0;5293:206;;;;:::o;4008:644::-;4142:4;-1:-1:-1;;;;;4172:17:0;;4164:55;;;;;-1:-1:-1;;;4164:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4248:15:0;;;;;;:8;:15;;;;;;4238:25;;;4230:65;;;;;-1:-1:-1;;;4230:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4324:14:0;;;;;;:7;:14;;;;;;;;4339:10;4324:26;;;;;;;;4314:36;;;4306:84;;;;-1:-1:-1;;;4306:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4421:15:0;;;;;;:8;:15;;;;;;:27;;4441:6;4421:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;4403:15:0;;;;;;;:8;:15;;;;;;:45;;;;4475:13;;;;;;;:25;;4493:6;4475:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4459:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;4540:14;;;;;:7;:14;;;;;4555:10;4540:26;;;;;;;:38;;4571:6;4540:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;4511:14:0;;;;;;;:7;:14;;;;;;;;4526:10;4511:26;;;;;;;;:67;;;;4594:28;;;;;;;;;;;4511:14;;4594:28;;;;;;;;;;;-1:-1:-1;4640:4:0;4008:644;;;;;:::o;7324:504::-;7502:10;7453:4;7494:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7494:29:0;;;;;;;;;;7538:27;;;7534:188;;;7590:10;7614:1;7582:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:33;7534:188;;;7680:30;:8;7693:16;7680:30;:12;:30;:::i;:::-;7656:10;7648:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7648:29:0;;;;;;;;;:62;7534:188;7746:10;7768:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7737:61:0;;7768:29;;;;;;;;;;;7737:61;;;;;;;;;7746:10;7737:61;;;;;;;;;;;-1:-1:-1;7816:4:0;;7324:504;-1:-1:-1;;;7324:504:0:o;2053:415::-;2116:4;-1:-1:-1;;;;;2141:17:0;;2133:55;;;;;-1:-1:-1;;;2133:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2226:10;2217:20;;;;:8;:20;;;;;;2207:30;;;2199:70;;;;;-1:-1:-1;;;2199:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2314:10;2305:20;;;;:8;:20;;;;;;:32;;2330:6;2305:32;:24;:32;:::i;:::-;2291:10;2282:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;2364:13:0;;;;;;:25;;2382:6;2364:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;2348:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;2405:33;;;;;;;2348:13;;2414:10;;2405:33;;;;;;;;;;-1:-1:-1;2456:4:0;2053:415;;;;:::o;6501:343::-;6698:10;6625:4;6690:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6690:29:0;;;;;;;;;;:46;;6724:11;6690:46;:33;:46;:::i;:::-;6655:10;6647:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6647:29:0;;;;;;;;;;;;:90;;;6753:61;;;;;;6647:29;;6753:61;;;;;;;;;;;-1:-1:-1;6832:4:0;6501:343;;;;:::o;5835:191::-;-1:-1:-1;;;;;5993:15:0;;;5961:7;5993:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;5835:191::o;11660:123::-;11718:7;11750:1;11745;:6;;11738:14;;;;-1:-1:-1;11770:5:0;;;11660:123::o;11858:141::-;11942:5;;;11965:6;;;;11958:14;;

Swarm Source

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