ETH Price: $2,407.25 (+1.22%)

Token

AlliToken (ALIT)
 

Overview

Max Total Supply

200,001 ALIT

Holders

349 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.018417385060759937 ALIT

Value
$0.00
0xdbba3dd5c1dd6fdb788c829561feec12d8d1b8fa
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

AlliMeta is a user-friendly metaverse network ecosystem and application framework that enables businesses and communities to quickly build their own exclusive metaverse projects.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AlliToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-21
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

/**
  * @title AlliMeta Token
  *
  * @notice ALLIMETA DAO/ECO token
  * 
  */
/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * _Available since v2.4.0._
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see ERC20_infos.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: 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
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Optional functions from the ERC20 standard.
 */
abstract contract ERC20_infos is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of
     * these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory erc20name, string memory erc20symbol, uint8 erc20decimals)  {
        _name = erc20name;
        _symbol = erc20symbol;
        _decimals = erc20decimals;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}


contract Governance {

    address public governance;

    constructor() {
        governance = tx.origin;
    }

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

    modifier onlyGovernance {
        require(msg.sender == governance, "Sender not governance");
        _;
    }

    function setGovernance(address _governance)  public  onlyGovernance
    {
        require(_governance != address(0), "new governance the zero address");
        emit GovernanceTransferred(governance, _governance);
        governance = _governance;
    }

}


contract AlliToken is Governance, ERC20_infos{

    using SafeMath for uint256;

    // --- ERC20 Data ---
    string constant _NAME    = "AlliToken";
    string constant _SYMBOL  = "ALIT";
    string constant version  = "1";
    uint8  constant _DECIMALS = 18;
    address public _devPool = 0x5E7812cC7De9942d9824323120699205ee768164;
    address public _rewardPool = 0x40aE139017C79fB22B7A42b1b892b2013D1cE30f;
    
    uint256 internal _totalSupply;
    uint256 public _maxSupply = 0;
    uint256 public constant _maxGovernValueRate = 2000;
    uint256 public constant _minGovernValueRate = 0; 
    uint256 public constant _rateBase = 10000; 

    uint256 public  _devRate = 0;       
    uint256 public  _rewardRate = 0;   
    uint256 public  _totalDevToken = 0;
    uint256 public  _totalRewardToken = 0;

    // --- EIP712 niceties ---
    bytes32 public DOMAIN_SEPARATOR;
    // EIP-2612
    // PERMIT_TYPEHASH is keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    
    event SetRate(uint256 dev_rate, uint256 reward_rate);
    event RewardPool(address rewardPool);
    event DevPool(address devPool);
    event Mint(address indexed from, address indexed to, uint256 value);
    event Approvalevent(address indexed owner, address indexed spender, uint256 value);
    event Burn(address indexed burner, uint256 value);
    event MintDrop(address indexed from, address indexed to, uint256 value);
    event Permit(address indexed from, address indexed to, uint256 value, uint256 nonce);

    mapping (address => bool) public _minters;
    mapping(address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => mapping (uint256 => bool)) public nonces;

    constructor (uint256 chainId_)  ERC20_infos(_NAME, _SYMBOL, _DECIMALS) {
        _maxSupply = 200000000 * (10**_DECIMALS);
       
        setGovernance(0x488669b5362985a9640584A05E833C2006Be61E7);

        DOMAIN_SEPARATOR = keccak256(abi.encode(
            keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
            keccak256(bytes(_NAME)),
            keccak256(bytes(version)),
            chainId_,
            address(this)
        ));
    }
    

    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param spender The address which will spend the funds.
    * @param amount The amount of tokens to be spent.
    */
    function approve(address spender, uint256 amount) external 
    returns (bool) 
    {
        require(msg.sender != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[msg.sender][spender] = amount;
        emit Approvalevent(msg.sender, spender, amount);

        return true;
    }

    /**
    * @dev Function to check the amount of tokens than 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) external view 
    returns (uint256) 
    {
        return _allowances[owner][spender];
    }

    /**
    * @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) external  view 
    returns (uint256) 
    {
        return _balances[owner];
    }

    /**
    * @dev return the token total supply
    */
    function totalSupply() external view 
    returns (uint256) 
    {
        return _totalSupply;
    }

    /**
    * @dev return the token maximum limit supply
    */
    function maxLimitSupply() external view 
    returns (uint256) 
    {
        return _maxSupply;
    }

    function mintDrop(address owner, address spender, uint256 value,uint256 nonce, uint256 deadline,
                    uint8 v, bytes32 r, bytes32 s) external 
    {
        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH,
                                     owner,
                                     spender,
                                     value,
                                     nonce,
                                     deadline ))
        ));

        require(owner == address(0), "invalid-address-0");
        require(governance == ecrecover(digest, v, r, s), "invalid-permit");
        require(deadline == 0 || block.timestamp <= deadline, "permit-expired");
        require(!nonces[governance][nonce], "invalid-nonce");
        nonces[governance][nonce] = true;

        emit Permit(address(0), spender, value, nonce);

        uint256 newMintSupply = _totalSupply.add(value);
        require( newMintSupply <= _maxSupply,"supply is max!");
      
        _totalSupply = _totalSupply.add(value);
        _balances[spender] = _balances[spender].add(value);

        emit MintDrop(address(0), spender, value);
    }

    /**
    * @dev for mint function
    */
    function mint(address account, uint256 amount) external 
    {
        require(account != address(0), "ERC20: mint to the zero address");
        require(_minters[msg.sender], "!minter");

        uint256 newMintSupply = _totalSupply.add(amount);
        require( newMintSupply <= _maxSupply,"supply is max!");
      
        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);

        emit Mint(address(0), account, amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public {
        require(_value > 0);
        require(_value <= _balances[msg.sender]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        address burner = msg.sender;
        _balances[burner] = _balances[burner].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(burner, _value);
    }

    function addMinter(address _minter) public onlyGovernance 
    {
        _minters[_minter] = true;
    }
    
    function removeMinter(address _minter) public onlyGovernance 
    {
        _minters[_minter] = false;
    }
    
    function setRate(uint256 dev_rate, uint256 reward_rate) public 
        onlyGovernance 
    {
        
        require(_maxGovernValueRate >=dev_rate && dev_rate >= _minGovernValueRate,"invalid dev rate");
        require(_maxGovernValueRate >= reward_rate && reward_rate >= _minGovernValueRate,"invalid reward rate");

        _devRate = dev_rate;
        _rewardRate = reward_rate;

        emit SetRate(dev_rate, reward_rate);
    }

    /**
    * @dev for set Dev Pool
    */
    function setDevPool(address devPool) public 
        onlyGovernance 
    {
        require(devPool != address(0x0));

        _devPool = devPool;

        emit DevPool(_devPool);
    }

    /**
    * @dev for set reward Pool
    */
    function setRewardPool(address rewardPool) public 
        onlyGovernance 
    {
        require(rewardPool != address(0x0));

        _rewardPool = rewardPool;

        emit RewardPool(_rewardPool);
    }
    
    /**
    * @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) external 
   returns (bool)  
   {
        return _transfer(msg.sender,to,value);
    }

    /**
    * @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) external 
    returns (bool) 
    {
        uint256 allow = _allowances[from][msg.sender];
        _allowances[from][msg.sender] = allow.sub(value);
        
        return _transfer(from,to,value);
    }

 
    /**
    * @dev Transfer tokens with fee
    * @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 uint256s the amount of tokens to be transferred
    */
    function _transfer(address from, address to, uint256 value) internal 
    returns (bool) 
    {
        require(from != address(0), "Invalid: transfer from the 0 address");
        require(to != address(0), "Invalid: transfer to the 0 address");

        uint256 sendAmount = value;
        uint256 devFee = (value.mul(_devRate)).div(_rateBase);
        if (devFee > 0) {
            
            _balances[_devPool] = _balances[_devPool].add(devFee);
            sendAmount = sendAmount.sub(devFee);

            _totalDevToken = _totalDevToken.add(devFee);

            emit Transfer(from, _devPool, devFee);
        }

        uint256 rewardFee = (value.mul(_rewardRate)).div(_rateBase);
        if (rewardFee > 0) {
           
            _balances[_rewardPool] = _balances[_rewardPool].add(rewardFee);
            sendAmount = sendAmount.sub(rewardFee);

            _totalRewardToken = _totalRewardToken.add(rewardFee);

            emit Transfer(from, _rewardPool, rewardFee);
        }

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(sendAmount);
        
        emit Transfer(from, to, sendAmount);

        return true;
    }

    function calcSendamount(uint256 value) view external returns (uint256)  
    {
        uint256 sendAmount = value;
        uint256 devFee = (value.mul(_devRate)).div(_rateBase);
        if (devFee > 0) {
           sendAmount = sendAmount.sub(devFee);    
        }
        uint256 rewardFee = (value.mul(_rewardRate)).div(_rateBase);
        if (rewardFee > 0) {
           sendAmount = sendAmount.sub(rewardFee);    
        }
        return sendAmount;
    }    

    function getdevRate() view external returns (uint256)  
    {
         return _devRate;
    }

    function getrewardRate() view external returns (uint256)  
    {
         return _rewardRate;
    }  

    function totalReward_dev() view external returns (uint256)  
    {
         return _totalDevToken;
    }  
    
    function totalReward_pool() view external returns (uint256)  
    {
         return _totalRewardToken;
    }  

    // --- Approve by signature ( EIP2612 )---
    function permit(address owner, address spender, uint256 value,uint256 nonce, uint256 deadline,
                    uint8 v, bytes32 r, bytes32 s) external
    {
        _permit(owner, spender, value, nonce, deadline, v, r, s);
    }

    function _permit(address owner, address spender, uint256 value,uint256 nonce, uint256 deadline,
                    uint8 v, bytes32 r, bytes32 s) internal 
    {
        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH,
                                     owner,
                                     spender,
                                     value,
                                     nonce,
                                     deadline ))
        ));

        require(owner != address(0), "invalid-address-0");
        require(owner == ecrecover(digest, v, r, s), "invalid-permit");
        require(deadline == 0 || block.timestamp <= deadline, "permit-expired");

        require(!nonces[owner][nonce], "invalid-nonce");
        nonces[owner][nonce] = true;
        emit Permit(owner, spender, value, nonce);

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    // --- Math ---
    function _add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function _sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }

    function getPermit(address owner, address spender, uint256 value,uint256 nonce, uint256 deadline,
                    uint8 v, bytes32 r, bytes32 s) external
    {
        _permit(owner, spender, value, nonce, deadline, v, r, s);

        require(_balances[owner] >= value, "insufficient-balance");
        if (_allowances[owner][spender] != type(uint).max) {
            require(_allowances[owner][spender] >= value, "insufficient-allowance");
            _allowances[owner][spender] = _sub(_allowances[owner][spender], value);
        }
        _transfer( owner, spender, value );
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"chainId_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approvalevent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"devPool","type":"address"}],"name":"DevPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"GovernanceTransferred","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":"Mint","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":"MintDrop","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"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Permit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardPool","type":"address"}],"name":"RewardPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"dev_rate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward_rate","type":"uint256"}],"name":"SetRate","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"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxGovernValueRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minGovernValueRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rateBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDevToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalRewardToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"calcSendamount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"getPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getdevRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getrewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLimitSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"mintDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nonces","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"devPool","type":"address"}],"name":"setDevPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev_rate","type":"uint256"},{"internalType":"uint256","name":"reward_rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardPool","type":"address"}],"name":"setRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReward_dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReward_pool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"}]

608060405260038054745e7812cc7de9942d9824323120699205ee76816400610100600160a81b0319909116179055600480546001600160a01b0319167340ae139017c79fb22b7a42b1b892b2013d1ce30f17905560006006819055600781905560088190556009819055600a553480156200007a57600080fd5b50604051620024cd380380620024cd8339810160408190526200009d916200034d565b604080518082018252600981526820b63634aa37b5b2b760b91b602080830191909152825180840190935260048352631053125560e21b90830152600080546001600160a01b031916321790559060126001620000fb84826200040c565b5060026200010a83826200040c565b506003805460ff191660ff92909216919091179055506200013090506012600a620005ed565b6200014090630bebc20062000605565b6006556200016273488669b5362985a9640584a05e833c2006be61e76200023a565b604080518082018252600981526820b63634aa37b5b2b760b91b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fe700d0cf6530ee63cd8ed11c36ab1b0470a9a66e27a422458dba078dbdbc0f38818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c09093019091528151910120600b556200061f565b6000546001600160a01b031633146200029a5760405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420676f7665726e616e6365000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620002f25760405162461bcd60e51b815260206004820152601f60248201527f6e657720676f7665726e616e636520746865207a65726f206164647265737300604482015260640162000291565b600080546040516001600160a01b03808516939216917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156200036057600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200039257607f821691505b602082108103620003b357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200040757600081815260208120601f850160051c81016020861015620003e25750805b601f850160051c820191505b818110156200040357828155600101620003ee565b5050505b505050565b81516001600160401b0381111562000428576200042862000367565b62000440816200043984546200037d565b84620003b9565b602080601f8311600181146200047857600084156200045f5750858301515b600019600386901b1c1916600185901b17855562000403565b600085815260208120601f198616915b82811015620004a95788860151825594840194600190910190840162000488565b5085821015620004c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200052f578160001904821115620005135762000513620004d8565b808516156200052157918102915b93841c9390800290620004f3565b509250929050565b6000826200054857506001620005e7565b816200055757506000620005e7565b81600181146200057057600281146200057b576200059b565b6001915050620005e7565b60ff8411156200058f576200058f620004d8565b50506001821b620005e7565b5060208310610133831016604e8410600b8410161715620005c0575081810a620005e7565b620005cc8383620004ee565b8060001904821115620005e357620005e3620004d8565b0290505b92915050565b6000620005fe60ff84168362000537565b9392505050565b8082028115828204841417620005e757620005e7620004d8565b611e9e806200062f6000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80635aa6e67511610146578063983b2d56116100c3578063b9b4cc1211610087578063b9b4cc12146104f9578063d4413eb21461050c578063dbaef5e014610514578063dc7ced3d14610527578063dd62ed3e1461053a578063e312848f1461057357600080fd5b8063983b2d56146104a4578063a9059cbb146104b7578063ab033ea9146104ca578063af45d37a146104dd578063b7864838146104e657600080fd5b80637a76d62e1161010a5780637a76d62e1461046c578063833f3b0b146104845780638afefd881461048c578063930515e01461049457806395d89b411461049c57600080fd5b80635aa6e675146103f357806368fd25cd1461041e57806370a0823114610427578063775e13771461045057806378238c371461045957600080fd5b806330adf81f116101d457806340c10f191161019857806340c10f191461038357806342966c681461039657806346df2ccb146103a9578063502e1a16146103bc57806353c76e13146103ea57600080fd5b806330adf81f14610308578063313ce5671461032f578063348e4bab146103445780633575597d146103575780633644e5151461037a57600080fd5b80632129fc961161021b5780632129fc96146102c857806322f4596f146102d1578063235baf7f146102da57806323b872dd146102e25780633092afd5146102f557600080fd5b806306fdde0314610258578063095ea7b31461027657806316e8af2c1461029957806318160ddd146102ae5780631dbc77a5146102c0575b600080fd5b61026061057c565b60405161026d9190611b95565b60405180910390f35b610289610284366004611bff565b61060e565b604051901515815260200161026d565b6102ac6102a7366004611c29565b610734565b005b6005545b60405190815260200161026d565b600a546102b2565b6102b260075481565b6102b260065481565b6006546102b2565b6102896102f0366004611c44565b6107d1565b6102ac610303366004611c29565b610837565b6102b27f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60035460405160ff909116815260200161026d565b6102b2610352366004611c80565b610882565b610289610365366004611c29565b600c6020526000908152604090205460ff1681565b6102b2600b5481565b6102ac610391366004611bff565b6108fb565b6102ac6103a4366004611c80565b610aaf565b6102ac6103b7366004611c99565b610b5d565b6102896103ca366004611bff565b600f60209081526000928352604080842090915290825290205460ff1681565b6102b2600a5481565b600054610406906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b6102b260085481565b6102b2610435366004611c29565b6001600160a01b03166000908152600d602052604090205490565b6102b261271081565b6102ac610467366004611c29565b610c6f565b6003546104069061010090046001600160a01b031681565b6009546102b2565b6102b2600081565b6008546102b2565b610260610cfa565b6102ac6104b2366004611c29565b610d09565b6102896104c5366004611bff565b610d57565b6102ac6104d8366004611c29565b610d6b565b6102b260095481565b6102ac6104f4366004611cbb565b610e46565b6102ac610507366004611cbb565b6111fe565b6007546102b2565b6102ac610522366004611cbb565b611376565b600454610406906001600160a01b031681565b6102b2610548366004611d37565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b6102b26107d081565b60606001805461058b90611d6a565b80601f01602080910402602001604051908101604052809291908181526020018280546105b790611d6a565b80156106045780601f106105d957610100808354040283529160200191610604565b820191906000526020600020905b8154815290600101906020018083116105e757829003601f168201915b5050505050905090565b60003361066e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0383166106cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610665565b336000818152600e602090815260408083206001600160a01b03881680855290835292819020869055518581529192917fb82a483df0f7915541b57bac923e706935b9fcc0f2a98555b6b9414a49739fd1910160405180910390a35060015b92915050565b6000546001600160a01b0316331461075e5760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03811661077157600080fd5b60038054610100600160a81b0319166101006001600160a01b038481168202929092179283905560405192041681527f4206ad012f83eebadfdf3968bea0add2fb734e8220714fc3273232a71a56c910906020015b60405180910390a150565b6001600160a01b0383166000908152600e602090815260408083203384529091528120546107ff8184611390565b6001600160a01b0386166000908152600e6020908152604080832033845290915290205561082e8585856113d2565b95945050505050565b6000546001600160a01b031633146108615760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b60008082905060006108ab6127106108a5600754876116c790919063ffffffff16565b90611749565b905080156108c0576108bd8282611390565b91505b60006108dd6127106108a5600854886116c790919063ffffffff16565b905080156108f2576108ef8382611390565b92505b50909392505050565b6001600160a01b0382166109515760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610665565b336000908152600c602052604090205460ff1661099a5760405162461bcd60e51b815260206004820152600760248201526610b6b4b73a32b960c91b6044820152606401610665565b6005546000906109aa908361178b565b90506006548111156109ef5760405162461bcd60e51b815260206004820152600e60248201526d737570706c79206973206d61782160901b6044820152606401610665565b6005546109fc908361178b565b6005556001600160a01b0383166000908152600d6020526040902054610a22908361178b565b6001600160a01b0384166000818152600d60205260408082209390935591519091907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890610a739086815260200190565b60405180910390a36040518281526001600160a01b03841690600090600080516020611e498339815191529060200160405180910390a3505050565b60008111610abc57600080fd5b336000908152600d6020526040902054811115610ad857600080fd5b336000818152600d6020526040902054610af29083611390565b6001600160a01b0382166000908152600d6020526040902055600554610b189083611390565b6005556040518281526001600160a01b038216907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a25050565b6000546001600160a01b03163314610b875760405162461bcd60e51b815260040161066590611da4565b816107d010158015610b97575060015b610bd65760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420646576207261746560801b6044820152606401610665565b806107d010158015610be6575060015b610c285760405162461bcd60e51b8152602060048201526013602482015272696e76616c696420726577617264207261746560681b6044820152606401610665565b6007829055600881905560408051838152602081018390527f3a8f7e78fe36c54b4f888a309efa91eba128acb04cc1c2ffa0e5c4db7b4a8785910160405180910390a15050565b6000546001600160a01b03163314610c995760405162461bcd60e51b815260040161066590611da4565b6001600160a01b038116610cac57600080fd5b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f4560a052c1f624cb347c8950007114d976a08346fe0425999d529ba9cd614b90906020016107c6565b60606002805461058b90611d6a565b6000546001600160a01b03163314610d335760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000610d643384846113d2565b9392505050565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260040161066590611da4565b6001600160a01b038116610deb5760405162461bcd60e51b815260206004820152601f60248201527f6e657720676f7665726e616e636520746865207a65726f2061646472657373006044820152606401610665565b600080546040516001600160a01b03808516939216917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600b54604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808c169282019290925290891660608201526080810188905260a0810187905260c081018690526000919060e00160405160208183030381529060405280519060200120604051602001610ee692919061190160f01b81526002810192909252602282015260420190565b60408051601f19818403018152919052805160209091012090506001600160a01b03891615610f4b5760405162461bcd60e51b81526020600482015260116024820152700696e76616c69642d616464726573732d3607c1b6044820152606401610665565b60408051600081526020810180835283905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610f9e573d6000803e3d6000fd5b5050604051601f1901516000546001600160a01b039081169116149050610ff85760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b6044820152606401610665565b8415806110055750844211155b6110425760405162461bcd60e51b815260206004820152600e60248201526d1c195c9b5a5d0b595e1c1a5c995960921b6044820152606401610665565b600080546001600160a01b03168152600f6020908152604080832089845290915290205460ff16156110a65760405162461bcd60e51b815260206004820152600d60248201526c696e76616c69642d6e6f6e636560981b6044820152606401610665565b600080546001600160a01b039081168252600f602090815260408084208a85528252808420805460ff1916600117905580518b81529182018a9052918b1692917f947894c4e4f31eb44d2f0cebbdadbba56f0fe061b4ec90b44312f39a30ca7267910160405180910390a3600554600090611121908961178b565b90506006548111156111665760405162461bcd60e51b815260206004820152600e60248201526d737570706c79206973206d61782160901b6044820152606401610665565b600554611173908961178b565b6005556001600160a01b0389166000908152600d6020526040902054611199908961178b565b6001600160a01b038a166000818152600d60205260408082209390935591519091907f82082d4160e1c6b50a08d3dcf55b1f13711a55e7878107e649dacbc5fe85a71c906111ea908c815260200190565b60405180910390a350505050505050505050565b61120e88888888888888886117ea565b6001600160a01b0388166000908152600d602052604090205486111561126d5760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742d62616c616e636560601b6044820152606401610665565b6001600160a01b038089166000908152600e60209081526040808320938b168352929052205460001914611360576001600160a01b038089166000908152600e60209081526040808320938b16835292905220548611156113095760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e742d616c6c6f77616e636560501b6044820152606401610665565b6001600160a01b038089166000908152600e60209081526040808320938b16835292905220546113399087611b1b565b6001600160a01b03808a166000908152600e60209081526040808320938c16835292905220555b61136b8888886113d2565b505050505050505050565b61138688888888888888886117ea565b5050505050505050565b6000610d6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b36565b60006001600160a01b0384166114365760405162461bcd60e51b8152602060048201526024808201527f496e76616c69643a207472616e736665722066726f6d207468652030206164646044820152637265737360e01b6064820152608401610665565b6001600160a01b0383166114975760405162461bcd60e51b815260206004820152602260248201527f496e76616c69643a207472616e7366657220746f207468652030206164647265604482015261737360f01b6064820152608401610665565b600082905060006114b96127106108a5600754876116c790919063ffffffff16565b905080156115685760035461010090046001600160a01b03166000908152600d60205260409020546114eb908261178b565b60035461010090046001600160a01b03166000908152600d60205260409020556115158282611390565b600954909250611525908261178b565b6009556003546040516001600160a01b03610100909204821691881690600080516020611e498339815191529061155f9085815260200190565b60405180910390a35b60006115856127106108a5600854886116c790919063ffffffff16565b9050801561161e576004546001600160a01b03166000908152600d60205260409020546115b2908261178b565b6004546001600160a01b03166000908152600d60205260409020556115d78382611390565b600a549093506115e7908261178b565b600a556004546040518281526001600160a01b0391821691891690600080516020611e498339815191529060200160405180910390a35b6001600160a01b0387166000908152600d60205260409020546116419086611390565b6001600160a01b038089166000908152600d60205260408082209390935590881681522054611670908461178b565b6001600160a01b038088166000818152600d60205260409081902093909355915190891690600080516020611e49833981519152906116b29087815260200190565b60405180910390a35060019695505050505050565b6000826000036116d95750600061072e565b60006116e58385611de9565b9050826116f28583611e00565b14610d645760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610665565b6000610d6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b67565b6000806117988385611e22565b905083811015610d645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610665565b600b54604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808c169282019290925290891660608201526080810188905260a0810187905260c081018690526000919060e0016040516020818303038152906040528051906020012060405160200161188a92919061190160f01b81526002810192909252602282015260420190565b60408051601f19818403018152919052805160209091012090506001600160a01b0389166118ee5760405162461bcd60e51b81526020600482015260116024820152700696e76616c69642d616464726573732d3607c1b6044820152606401610665565b60408051600081526020810180835283905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015611941573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b03161461199c5760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b6044820152606401610665565b8415806119a95750844211155b6119e65760405162461bcd60e51b815260206004820152600e60248201526d1c195c9b5a5d0b595e1c1a5c995960921b6044820152606401610665565b6001600160a01b0389166000908152600f6020908152604080832089845290915290205460ff1615611a4a5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c69642d6e6f6e636560981b6044820152606401610665565b6001600160a01b038981166000818152600f602090815260408083208b8452825291829020805460ff1916600117905581518b81529081018a9052928b16927f947894c4e4f31eb44d2f0cebbdadbba56f0fe061b4ec90b44312f39a30ca7267910160405180910390a36001600160a01b038981166000818152600e60209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b600082611b288382611e35565b915081111561072e57600080fd5b60008184841115611b5a5760405162461bcd60e51b81526004016106659190611b95565b50600061082e8486611e35565b60008183611b885760405162461bcd60e51b81526004016106659190611b95565b50600061082e8486611e00565b600060208083528351808285015260005b81811015611bc257858101830151858201604001528201611ba6565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bfa57600080fd5b919050565b60008060408385031215611c1257600080fd5b611c1b83611be3565b946020939093013593505050565b600060208284031215611c3b57600080fd5b610d6482611be3565b600080600060608486031215611c5957600080fd5b611c6284611be3565b9250611c7060208501611be3565b9150604084013590509250925092565b600060208284031215611c9257600080fd5b5035919050565b60008060408385031215611cac57600080fd5b50508035926020909101359150565b600080600080600080600080610100898b031215611cd857600080fd5b611ce189611be3565b9750611cef60208a01611be3565b965060408901359550606089013594506080890135935060a089013560ff81168114611d1a57600080fd5b979a969950949793969295929450505060c08201359160e0013590565b60008060408385031215611d4a57600080fd5b611d5383611be3565b9150611d6160208401611be3565b90509250929050565b600181811c90821680611d7e57607f821691505b602082108103611d9e57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526015908201527453656e646572206e6f7420676f7665726e616e636560581b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072e5761072e611dd3565b600082611e1d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561072e5761072e611dd3565b8181038181111561072e5761072e611dd356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c84db09bd0543c29f9a209b9cd244a156c5969b17e97e61d03acfa337ce3790264736f6c634300081200330000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102535760003560e01c80635aa6e67511610146578063983b2d56116100c3578063b9b4cc1211610087578063b9b4cc12146104f9578063d4413eb21461050c578063dbaef5e014610514578063dc7ced3d14610527578063dd62ed3e1461053a578063e312848f1461057357600080fd5b8063983b2d56146104a4578063a9059cbb146104b7578063ab033ea9146104ca578063af45d37a146104dd578063b7864838146104e657600080fd5b80637a76d62e1161010a5780637a76d62e1461046c578063833f3b0b146104845780638afefd881461048c578063930515e01461049457806395d89b411461049c57600080fd5b80635aa6e675146103f357806368fd25cd1461041e57806370a0823114610427578063775e13771461045057806378238c371461045957600080fd5b806330adf81f116101d457806340c10f191161019857806340c10f191461038357806342966c681461039657806346df2ccb146103a9578063502e1a16146103bc57806353c76e13146103ea57600080fd5b806330adf81f14610308578063313ce5671461032f578063348e4bab146103445780633575597d146103575780633644e5151461037a57600080fd5b80632129fc961161021b5780632129fc96146102c857806322f4596f146102d1578063235baf7f146102da57806323b872dd146102e25780633092afd5146102f557600080fd5b806306fdde0314610258578063095ea7b31461027657806316e8af2c1461029957806318160ddd146102ae5780631dbc77a5146102c0575b600080fd5b61026061057c565b60405161026d9190611b95565b60405180910390f35b610289610284366004611bff565b61060e565b604051901515815260200161026d565b6102ac6102a7366004611c29565b610734565b005b6005545b60405190815260200161026d565b600a546102b2565b6102b260075481565b6102b260065481565b6006546102b2565b6102896102f0366004611c44565b6107d1565b6102ac610303366004611c29565b610837565b6102b27f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60035460405160ff909116815260200161026d565b6102b2610352366004611c80565b610882565b610289610365366004611c29565b600c6020526000908152604090205460ff1681565b6102b2600b5481565b6102ac610391366004611bff565b6108fb565b6102ac6103a4366004611c80565b610aaf565b6102ac6103b7366004611c99565b610b5d565b6102896103ca366004611bff565b600f60209081526000928352604080842090915290825290205460ff1681565b6102b2600a5481565b600054610406906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b6102b260085481565b6102b2610435366004611c29565b6001600160a01b03166000908152600d602052604090205490565b6102b261271081565b6102ac610467366004611c29565b610c6f565b6003546104069061010090046001600160a01b031681565b6009546102b2565b6102b2600081565b6008546102b2565b610260610cfa565b6102ac6104b2366004611c29565b610d09565b6102896104c5366004611bff565b610d57565b6102ac6104d8366004611c29565b610d6b565b6102b260095481565b6102ac6104f4366004611cbb565b610e46565b6102ac610507366004611cbb565b6111fe565b6007546102b2565b6102ac610522366004611cbb565b611376565b600454610406906001600160a01b031681565b6102b2610548366004611d37565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b6102b26107d081565b60606001805461058b90611d6a565b80601f01602080910402602001604051908101604052809291908181526020018280546105b790611d6a565b80156106045780601f106105d957610100808354040283529160200191610604565b820191906000526020600020905b8154815290600101906020018083116105e757829003601f168201915b5050505050905090565b60003361066e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0383166106cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610665565b336000818152600e602090815260408083206001600160a01b03881680855290835292819020869055518581529192917fb82a483df0f7915541b57bac923e706935b9fcc0f2a98555b6b9414a49739fd1910160405180910390a35060015b92915050565b6000546001600160a01b0316331461075e5760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03811661077157600080fd5b60038054610100600160a81b0319166101006001600160a01b038481168202929092179283905560405192041681527f4206ad012f83eebadfdf3968bea0add2fb734e8220714fc3273232a71a56c910906020015b60405180910390a150565b6001600160a01b0383166000908152600e602090815260408083203384529091528120546107ff8184611390565b6001600160a01b0386166000908152600e6020908152604080832033845290915290205561082e8585856113d2565b95945050505050565b6000546001600160a01b031633146108615760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b60008082905060006108ab6127106108a5600754876116c790919063ffffffff16565b90611749565b905080156108c0576108bd8282611390565b91505b60006108dd6127106108a5600854886116c790919063ffffffff16565b905080156108f2576108ef8382611390565b92505b50909392505050565b6001600160a01b0382166109515760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610665565b336000908152600c602052604090205460ff1661099a5760405162461bcd60e51b815260206004820152600760248201526610b6b4b73a32b960c91b6044820152606401610665565b6005546000906109aa908361178b565b90506006548111156109ef5760405162461bcd60e51b815260206004820152600e60248201526d737570706c79206973206d61782160901b6044820152606401610665565b6005546109fc908361178b565b6005556001600160a01b0383166000908152600d6020526040902054610a22908361178b565b6001600160a01b0384166000818152600d60205260408082209390935591519091907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890610a739086815260200190565b60405180910390a36040518281526001600160a01b03841690600090600080516020611e498339815191529060200160405180910390a3505050565b60008111610abc57600080fd5b336000908152600d6020526040902054811115610ad857600080fd5b336000818152600d6020526040902054610af29083611390565b6001600160a01b0382166000908152600d6020526040902055600554610b189083611390565b6005556040518281526001600160a01b038216907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a25050565b6000546001600160a01b03163314610b875760405162461bcd60e51b815260040161066590611da4565b816107d010158015610b97575060015b610bd65760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420646576207261746560801b6044820152606401610665565b806107d010158015610be6575060015b610c285760405162461bcd60e51b8152602060048201526013602482015272696e76616c696420726577617264207261746560681b6044820152606401610665565b6007829055600881905560408051838152602081018390527f3a8f7e78fe36c54b4f888a309efa91eba128acb04cc1c2ffa0e5c4db7b4a8785910160405180910390a15050565b6000546001600160a01b03163314610c995760405162461bcd60e51b815260040161066590611da4565b6001600160a01b038116610cac57600080fd5b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f4560a052c1f624cb347c8950007114d976a08346fe0425999d529ba9cd614b90906020016107c6565b60606002805461058b90611d6a565b6000546001600160a01b03163314610d335760405162461bcd60e51b815260040161066590611da4565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000610d643384846113d2565b9392505050565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260040161066590611da4565b6001600160a01b038116610deb5760405162461bcd60e51b815260206004820152601f60248201527f6e657720676f7665726e616e636520746865207a65726f2061646472657373006044820152606401610665565b600080546040516001600160a01b03808516939216917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600b54604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808c169282019290925290891660608201526080810188905260a0810187905260c081018690526000919060e00160405160208183030381529060405280519060200120604051602001610ee692919061190160f01b81526002810192909252602282015260420190565b60408051601f19818403018152919052805160209091012090506001600160a01b03891615610f4b5760405162461bcd60e51b81526020600482015260116024820152700696e76616c69642d616464726573732d3607c1b6044820152606401610665565b60408051600081526020810180835283905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610f9e573d6000803e3d6000fd5b5050604051601f1901516000546001600160a01b039081169116149050610ff85760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b6044820152606401610665565b8415806110055750844211155b6110425760405162461bcd60e51b815260206004820152600e60248201526d1c195c9b5a5d0b595e1c1a5c995960921b6044820152606401610665565b600080546001600160a01b03168152600f6020908152604080832089845290915290205460ff16156110a65760405162461bcd60e51b815260206004820152600d60248201526c696e76616c69642d6e6f6e636560981b6044820152606401610665565b600080546001600160a01b039081168252600f602090815260408084208a85528252808420805460ff1916600117905580518b81529182018a9052918b1692917f947894c4e4f31eb44d2f0cebbdadbba56f0fe061b4ec90b44312f39a30ca7267910160405180910390a3600554600090611121908961178b565b90506006548111156111665760405162461bcd60e51b815260206004820152600e60248201526d737570706c79206973206d61782160901b6044820152606401610665565b600554611173908961178b565b6005556001600160a01b0389166000908152600d6020526040902054611199908961178b565b6001600160a01b038a166000818152600d60205260408082209390935591519091907f82082d4160e1c6b50a08d3dcf55b1f13711a55e7878107e649dacbc5fe85a71c906111ea908c815260200190565b60405180910390a350505050505050505050565b61120e88888888888888886117ea565b6001600160a01b0388166000908152600d602052604090205486111561126d5760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742d62616c616e636560601b6044820152606401610665565b6001600160a01b038089166000908152600e60209081526040808320938b168352929052205460001914611360576001600160a01b038089166000908152600e60209081526040808320938b16835292905220548611156113095760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e742d616c6c6f77616e636560501b6044820152606401610665565b6001600160a01b038089166000908152600e60209081526040808320938b16835292905220546113399087611b1b565b6001600160a01b03808a166000908152600e60209081526040808320938c16835292905220555b61136b8888886113d2565b505050505050505050565b61138688888888888888886117ea565b5050505050505050565b6000610d6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b36565b60006001600160a01b0384166114365760405162461bcd60e51b8152602060048201526024808201527f496e76616c69643a207472616e736665722066726f6d207468652030206164646044820152637265737360e01b6064820152608401610665565b6001600160a01b0383166114975760405162461bcd60e51b815260206004820152602260248201527f496e76616c69643a207472616e7366657220746f207468652030206164647265604482015261737360f01b6064820152608401610665565b600082905060006114b96127106108a5600754876116c790919063ffffffff16565b905080156115685760035461010090046001600160a01b03166000908152600d60205260409020546114eb908261178b565b60035461010090046001600160a01b03166000908152600d60205260409020556115158282611390565b600954909250611525908261178b565b6009556003546040516001600160a01b03610100909204821691881690600080516020611e498339815191529061155f9085815260200190565b60405180910390a35b60006115856127106108a5600854886116c790919063ffffffff16565b9050801561161e576004546001600160a01b03166000908152600d60205260409020546115b2908261178b565b6004546001600160a01b03166000908152600d60205260409020556115d78382611390565b600a549093506115e7908261178b565b600a556004546040518281526001600160a01b0391821691891690600080516020611e498339815191529060200160405180910390a35b6001600160a01b0387166000908152600d60205260409020546116419086611390565b6001600160a01b038089166000908152600d60205260408082209390935590881681522054611670908461178b565b6001600160a01b038088166000818152600d60205260409081902093909355915190891690600080516020611e49833981519152906116b29087815260200190565b60405180910390a35060019695505050505050565b6000826000036116d95750600061072e565b60006116e58385611de9565b9050826116f28583611e00565b14610d645760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610665565b6000610d6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b67565b6000806117988385611e22565b905083811015610d645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610665565b600b54604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808c169282019290925290891660608201526080810188905260a0810187905260c081018690526000919060e0016040516020818303038152906040528051906020012060405160200161188a92919061190160f01b81526002810192909252602282015260420190565b60408051601f19818403018152919052805160209091012090506001600160a01b0389166118ee5760405162461bcd60e51b81526020600482015260116024820152700696e76616c69642d616464726573732d3607c1b6044820152606401610665565b60408051600081526020810180835283905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015611941573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b03161461199c5760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b6044820152606401610665565b8415806119a95750844211155b6119e65760405162461bcd60e51b815260206004820152600e60248201526d1c195c9b5a5d0b595e1c1a5c995960921b6044820152606401610665565b6001600160a01b0389166000908152600f6020908152604080832089845290915290205460ff1615611a4a5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c69642d6e6f6e636560981b6044820152606401610665565b6001600160a01b038981166000818152600f602090815260408083208b8452825291829020805460ff1916600117905581518b81529081018a9052928b16927f947894c4e4f31eb44d2f0cebbdadbba56f0fe061b4ec90b44312f39a30ca7267910160405180910390a36001600160a01b038981166000818152600e60209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b600082611b288382611e35565b915081111561072e57600080fd5b60008184841115611b5a5760405162461bcd60e51b81526004016106659190611b95565b50600061082e8486611e35565b60008183611b885760405162461bcd60e51b81526004016106659190611b95565b50600061082e8486611e00565b600060208083528351808285015260005b81811015611bc257858101830151858201604001528201611ba6565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bfa57600080fd5b919050565b60008060408385031215611c1257600080fd5b611c1b83611be3565b946020939093013593505050565b600060208284031215611c3b57600080fd5b610d6482611be3565b600080600060608486031215611c5957600080fd5b611c6284611be3565b9250611c7060208501611be3565b9150604084013590509250925092565b600060208284031215611c9257600080fd5b5035919050565b60008060408385031215611cac57600080fd5b50508035926020909101359150565b600080600080600080600080610100898b031215611cd857600080fd5b611ce189611be3565b9750611cef60208a01611be3565b965060408901359550606089013594506080890135935060a089013560ff81168114611d1a57600080fd5b979a969950949793969295929450505060c08201359160e0013590565b60008060408385031215611d4a57600080fd5b611d5383611be3565b9150611d6160208401611be3565b90509250929050565b600181811c90821680611d7e57607f821691505b602082108103611d9e57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526015908201527453656e646572206e6f7420676f7665726e616e636560581b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072e5761072e611dd3565b600082611e1d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561072e5761072e611dd3565b8181038181111561072e5761072e611dd356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c84db09bd0543c29f9a209b9cd244a156c5969b17e97e61d03acfa337ce3790264736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : chainId_ (uint256): 1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

10566:13527:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9013:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13257:393;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;13257:393:0;1004:187:1;18097:192:0;;;;;;:::i;:::-;;:::i;:::-;;14541:105;14626:12;;14541:105;;;1533:25:1;;;1521:2;1506:18;14541:105:0;1387:177:1;21757:111:0;21843:17;;21757:111;;11235:28;;;;;;11036:29;;;;;;14721:106;14809:10;;14721:106;;19158:274;;;;;;:::i;:::-;;:::i;17474:111::-;;;;;;:::i;:::-;;:::i;11616:108::-;;11658:66;11616:108;;9865:83;9931:9;;9865:83;;9931:9;;;;2226:36:1;;2214:2;2199:18;9865:83:0;2084:184:1;20935:473:0;;;;;;:::i;:::-;;:::i;12266:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11437:31;;;;;;16177:547;;;;;;:::i;:::-;;:::i;16854:493::-;;;;;;:::i;:::-;;:::i;17597:446::-;;;;;;:::i;:::-;;:::i;12426:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;11359:37;;;;;;9986:25;;;;;-1:-1:-1;;;;;9986:25:0;;;;;;-1:-1:-1;;;;;2875:32:1;;;2857:51;;2845:2;2830:18;9986:25:0;2711:203:1;11277:31:0;;;;;;14353:121;;;;;;:::i;:::-;-1:-1:-1;;;;;14450:16:0;14417:7;14450:16;;;:9;:16;;;;;;;14353:121;11184:41;;11220:5;11184:41;;18346:213;;;;;;:::i;:::-;;:::i;10841:68::-;;;;;;;;-1:-1:-1;;;;;10841:68:0;;;21636:107;21721:14;;21636:107;;11129:47;;11175:1;11129:47;;21524:102;21607:11;;21524:102;;9215:87;;;:::i;17355:107::-;;;;;;:::i;:::-;;:::i;18733:136::-;;;;;;:::i;:::-;;:::i;10297:258::-;;;;;;:::i;:::-;;:::i;11318:34::-;;;;;;14835:1287;;;;;;:::i;:::-;;:::i;23487:599::-;;;;;;:::i;:::-;;:::i;21420:96::-;21500:8;;21420:96;;21926:236;;;;;;:::i;:::-;;:::i;10916:71::-;;;;;-1:-1:-1;;;;;10916:71:0;;;13985:148;;;;;;:::i;:::-;-1:-1:-1;;;;;14098:18:0;;;14065:7;14098:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13985:148;11072:50;;11118:4;11072:50;;9013:83;9050:13;9083:5;9076:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9013:83;:::o;13257:393::-;13331:4;13362:10;13354:73;;;;-1:-1:-1;;;13354:73:0;;4538:2:1;13354:73:0;;;4520:21:1;4577:2;4557:18;;;4550:30;4616:34;4596:18;;;4589:62;-1:-1:-1;;;4667:18:1;;;4660:34;4711:19;;13354:73:0;;;;;;;;;-1:-1:-1;;;;;13446:21:0;;13438:68;;;;-1:-1:-1;;;13438:68:0;;4943:2:1;13438:68:0;;;4925:21:1;4982:2;4962:18;;;4955:30;5021:34;5001:18;;;4994:62;-1:-1:-1;;;5072:18:1;;;5065:32;5114:19;;13438:68:0;4741:398:1;13438:68:0;13531:10;13519:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;13519:32:0;;;;;;;;;;;;:41;;;13576:42;1533:25:1;;;13519:32:0;;13531:10;13576:42;;1506:18:1;13576:42:0;;;;;;;-1:-1:-1;13638:4:0;13257:393;;;;;:::o;18097:192::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18191:23:0;::::1;18183:32;;;::::0;::::1;;18228:8;:18:::0;;-1:-1:-1;;;;;;18228:18:0::1;;-1:-1:-1::0;;;;;18228:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18264:17:::1;::::0;18272:8;::::1;;2857:51:1::0;;18264:17:0::1;::::0;2845:2:1;2830:18;18264:17:0::1;;;;;;;;18097:192:::0;:::o;19158:274::-;-1:-1:-1;;;;;19284:17:0;;19245:4;19284:17;;;:11;:17;;;;;;;;19302:10;19284:29;;;;;;;;19356:16;19284:29;19366:5;19356:9;:16::i;:::-;-1:-1:-1;;;;;19324:17:0;;;;;;:11;:17;;;;;;;;19342:10;19324:29;;;;;;;:48;19400:24;19336:4;19415:2;19418:5;19400:9;:24::i;:::-;19393:31;19158:274;-1:-1:-1;;;;;19158:274:0:o;17474:111::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17552:17:0::1;17572:5;17552:17:::0;;;:8:::1;:17;::::0;;;;:25;;-1:-1:-1;;17552:25:0::1;::::0;;17474:111::o;20935:473::-;20997:7;21024:18;21045:5;21024:26;;21061:14;21078:36;11220:5;21079:19;21089:8;;21079:5;:9;;:19;;;;:::i;:::-;21078:25;;:36::i;:::-;21061:53;-1:-1:-1;21129:10:0;;21125:81;;21168:22;:10;21183:6;21168:14;:22::i;:::-;21155:35;;21125:81;21216:17;21236:39;11220:5;21237:22;21247:11;;21237:5;:9;;:22;;;;:::i;21236:39::-;21216:59;-1:-1:-1;21290:13:0;;21286:87;;21332:25;:10;21347:9;21332:14;:25::i;:::-;21319:38;;21286:87;-1:-1:-1;21390:10:0;;20935:473;-1:-1:-1;;;20935:473:0:o;16177:547::-;-1:-1:-1;;;;;16258:21:0;;16250:65;;;;-1:-1:-1;;;16250:65:0;;5696:2:1;16250:65:0;;;5678:21:1;5735:2;5715:18;;;5708:30;5774:33;5754:18;;;5747:61;5825:18;;16250:65:0;5494:355:1;16250:65:0;16343:10;16334:20;;;;:8;:20;;;;;;;;16326:40;;;;-1:-1:-1;;;16326:40:0;;6056:2:1;16326:40:0;;;6038:21:1;6095:1;6075:18;;;6068:29;-1:-1:-1;;;6113:18:1;;;6106:37;6160:18;;16326:40:0;5854:330:1;16326:40:0;16403:12;;16379:21;;16403:24;;16420:6;16403:16;:24::i;:::-;16379:48;;16464:10;;16447:13;:27;;16438:54;;;;-1:-1:-1;;;16438:54:0;;6391:2:1;16438:54:0;;;6373:21:1;6430:2;6410:18;;;6403:30;-1:-1:-1;;;6449:18:1;;;6442:44;6503:18;;16438:54:0;6189:338:1;16438:54:0;16526:12;;:24;;16543:6;16526:16;:24::i;:::-;16511:12;:39;-1:-1:-1;;;;;16582:18:0;;;;;;:9;:18;;;;;;:30;;16605:6;16582:22;:30::i;:::-;-1:-1:-1;;;;;16561:18:0;;;;;;:9;:18;;;;;;:51;;;;16630:33;;16561:18;;;16630:33;;;;16656:6;1533:25:1;;1521:2;1506:18;;1387:177;16630:33:0;;;;;;;;16679:37;;1533:25:1;;;-1:-1:-1;;;;;16679:37:0;;;16696:1;;-1:-1:-1;;;;;;;;;;;16679:37:0;1521:2:1;1506:18;16679:37:0;;;;;;;16239:485;16177:547;;:::o;16854:493::-;16919:1;16910:6;:10;16902:19;;;;;;16960:10;16950:21;;;;:9;:21;;;;;;16940:31;;;16932:40;;;;;;17183:10;17166:14;17224:17;;;:9;:17;;;;;;:29;;17246:6;17224:21;:29::i;:::-;-1:-1:-1;;;;;17204:17:0;;;;;;:9;:17;;;;;:49;17279:12;;:24;;17296:6;17279:16;:24::i;:::-;17264:12;:39;17319:20;;1533:25:1;;;-1:-1:-1;;;;;17319:20:0;;;;;1521:2:1;1506:18;17319:20:0;;;;;;;16891:456;16854:493;:::o;17597:446::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;17742:8:::1;11118:4;17720:30;;:65;;;;-1:-1:-1::0;17754:31:0;17720:65:::1;17712:93;;;::::0;-1:-1:-1;;;17712:93:0;;6734:2:1;17712:93:0::1;::::0;::::1;6716:21:1::0;6773:2;6753:18;;;6746:30;-1:-1:-1;;;6792:18:1;;;6785:46;6848:18;;17712:93:0::1;6532:340:1::0;17712:93:0::1;17847:11;11118:4;17824:34;;:72;;;;-1:-1:-1::0;17862:34:0;17824:72:::1;17816:103;;;::::0;-1:-1:-1;;;17816:103:0;;7079:2:1;17816:103:0::1;::::0;::::1;7061:21:1::0;7118:2;7098:18;;;7091:30;-1:-1:-1;;;7137:18:1;;;7130:49;7196:18;;17816:103:0::1;6877:343:1::0;17816:103:0::1;17932:8;:19:::0;;;17962:11:::1;:25:::0;;;18005:30:::1;::::0;;7399:25:1;;;7455:2;7440:18;;7433:34;;;18005:30:0::1;::::0;7372:18:1;18005:30:0::1;;;;;;;17597:446:::0;;:::o;18346:213::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18446:26:0;::::1;18438:35;;;::::0;::::1;;18486:11;:24:::0;;-1:-1:-1;;;;;;18486:24:0::1;-1:-1:-1::0;;;;;18486:24:0;::::1;::::0;;::::1;::::0;;;18528:23:::1;::::0;2857:51:1;;;18528:23:0::1;::::0;2845:2:1;2830:18;18528:23:0::1;2711:203:1::0;9215:87:0;9254:13;9287:7;9280:14;;;;;:::i;17355:107::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17430:17:0::1;;::::0;;;:8:::1;:17;::::0;;;;:24;;-1:-1:-1;;17430:24:0::1;17450:4;17430:24;::::0;;17355:107::o;18733:136::-;18801:4;18831:30;18841:10;18852:2;18855:5;18831:9;:30::i;:::-;18824:37;18733:136;-1:-1:-1;;;18733:136:0:o;10297:258::-;10233:10;;-1:-1:-1;;;;;10233:10:0;10219;:24;10211:58;;;;-1:-1:-1;;;10211:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10389:25:0;::::1;10381:69;;;::::0;-1:-1:-1;;;10381:69:0;;7680:2:1;10381:69:0::1;::::0;::::1;7662:21:1::0;7719:2;7699:18;;;7692:30;7758:33;7738:18;;;7731:61;7809:18;;10381:69:0::1;7478:355:1::0;10381:69:0::1;10488:10;::::0;;10466:46:::1;::::0;-1:-1:-1;;;;;10466:46:0;;::::1;::::0;10488:10;::::1;::::0;10466:46:::1;::::0;::::1;10523:10;:24:::0;;-1:-1:-1;;;;;;10523:24:0::1;-1:-1:-1::0;;;;;10523:24:0;;;::::1;::::0;;;::::1;::::0;;10297:258::o;14835:1287::-;15114:16;;15159:258;;;11658:66;15159:258;;;8125:25:1;-1:-1:-1;;;;;8224:15:1;;;8204:18;;;8197:43;;;;8276:15;;;8256:18;;;8249:43;8308:18;;;8301:34;;;8351:19;;;8344:35;;;8395:19;;;8388:35;;;15010:14:0;;15114:16;8097:19:1;;15159:258:0;;;;;;;;;;;;15149:269;;;;;;15050:379;;;;;;;;-1:-1:-1;;;8692:27:1;;8744:1;8735:11;;8728:27;;;;8780:2;8771:12;;8764:28;8817:2;8808:12;;8434:392;15050:379:0;;;;-1:-1:-1;;15050:379:0;;;;;;;;;15040:390;;15050:379;15040:390;;;;;-1:-1:-1;;;;;;15451:19:0;;;15443:49;;;;-1:-1:-1;;;15443:49:0;;9033:2:1;15443:49:0;;;9015:21:1;9072:2;9052:18;;;9045:30;-1:-1:-1;;;9091:18:1;;;9084:47;9148:18;;15443:49:0;8831:341:1;15443:49:0;15525:26;;;;;;;;;;;;9404:25:1;;;9477:4;9465:17;;9445:18;;;9438:45;;;;9499:18;;;9492:34;;;9542:18;;;9535:34;;;15525:26:0;;9376:19:1;;15525:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15525:26:0;;-1:-1:-1;;15525:26:0;;15511:10;;-1:-1:-1;;;;;15511:10:0;;;:40;;;;-1:-1:-1;15503:67:0;;;;-1:-1:-1;;;15503:67:0;;9782:2:1;15503:67:0;;;9764:21:1;9821:2;9801:18;;;9794:30;-1:-1:-1;;;9840:18:1;;;9833:44;9894:18;;15503:67:0;9580:338:1;15503:67:0;15589:13;;;:44;;;15625:8;15606:15;:27;;15589:44;15581:71;;;;-1:-1:-1;;;15581:71:0;;10125:2:1;15581:71:0;;;10107:21:1;10164:2;10144:18;;;10137:30;-1:-1:-1;;;10183:18:1;;;10176:44;10237:18;;15581:71:0;9923:338:1;15581:71:0;15672:18;15679:10;;-1:-1:-1;;;;;15679:10:0;15672:18;;:6;:18;;;;;;;;:25;;;;;;;;;;;15671:26;15663:52;;;;-1:-1:-1;;;15663:52:0;;10468:2:1;15663:52:0;;;10450:21:1;10507:2;10487:18;;;10480:30;-1:-1:-1;;;10526:18:1;;;10519:43;10579:18;;15663:52:0;10266:337:1;15663:52:0;15726:18;15733:10;;-1:-1:-1;;;;;15733:10:0;;;15726:18;;:6;:18;;;;;;;;:25;;;;;;;;:32;;-1:-1:-1;;15726:32:0;15754:4;15726:32;;;15776:41;;7399:25:1;;;7440:18;;;7433:34;;;15776:41:0;;;;15726:18;15776:41;;7372:18:1;15776:41:0;;;;;;;15854:12;;15830:21;;15854:23;;15871:5;15854:16;:23::i;:::-;15830:47;;15914:10;;15897:13;:27;;15888:54;;;;-1:-1:-1;;;15888:54:0;;6391:2:1;15888:54:0;;;6373:21:1;6430:2;6410:18;;;6403:30;-1:-1:-1;;;6449:18:1;;;6442:44;6503:18;;15888:54:0;6189:338:1;15888:54:0;15976:12;;:23;;15993:5;15976:16;:23::i;:::-;15961:12;:38;-1:-1:-1;;;;;16031:18:0;;;;;;:9;:18;;;;;;:29;;16054:5;16031:22;:29::i;:::-;-1:-1:-1;;;;;16010:18:0;;;;;;:9;:18;;;;;;:50;;;;16078:36;;16010:18;;;16078:36;;;;16108:5;1533:25:1;;1521:2;1506:18;;1387:177;16078:36:0;;;;;;;;14999:1123;;14835:1287;;;;;;;;:::o;23487:599::-;23662:56;23670:5;23677:7;23686:5;23693;23700:8;23710:1;23713;23716;23662:7;:56::i;:::-;-1:-1:-1;;;;;23739:16:0;;;;;;:9;:16;;;;;;:25;-1:-1:-1;23739:25:0;23731:58;;;;-1:-1:-1;;;23731:58:0;;10810:2:1;23731:58:0;;;10792:21:1;10849:2;10829:18;;;10822:30;-1:-1:-1;;;10868:18:1;;;10861:50;10928:18;;23731:58:0;10608:344:1;23731:58:0;-1:-1:-1;;;;;23804:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;23804:45:0;23800:234;;-1:-1:-1;;;;;23874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;:36;-1:-1:-1;23874:36:0;23866:71;;;;-1:-1:-1;;;23866:71:0;;11159:2:1;23866:71:0;;;11141:21:1;11198:2;11178:18;;;11171:30;-1:-1:-1;;;11217:18:1;;;11210:52;11279:18;;23866:71:0;10957:346:1;23866:71:0;-1:-1:-1;;;;;23987:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;23982:40;;24016:5;23982:4;:40::i;:::-;-1:-1:-1;;;;;23952:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:70;23800:234;24044:34;24055:5;24062:7;24071:5;24044:9;:34::i;:::-;;23487:599;;;;;;;;:::o;21926:236::-;22098:56;22106:5;22113:7;22122:5;22129;22136:8;22146:1;22149;22152;22098:7;:56::i;:::-;21926:236;;;;;;;;:::o;1434:136::-;1492:7;1519:43;1523:1;1526;1519:43;;;;;;;;;;;;;;;;;:3;:43::i;19706:1221::-;19790:4;-1:-1:-1;;;;;19821:18:0;;19813:67;;;;-1:-1:-1;;;19813:67:0;;11510:2:1;19813:67:0;;;11492:21:1;11549:2;11529:18;;;11522:30;11588:34;11568:18;;;11561:62;-1:-1:-1;;;11639:18:1;;;11632:34;11683:19;;19813:67:0;11308:400:1;19813:67:0;-1:-1:-1;;;;;19899:16:0;;19891:63;;;;-1:-1:-1;;;19891:63:0;;11915:2:1;19891:63:0;;;11897:21:1;11954:2;11934:18;;;11927:30;11993:34;11973:18;;;11966:62;-1:-1:-1;;;12044:18:1;;;12037:32;12086:19;;19891:63:0;11713:398:1;19891:63:0;19967:18;19988:5;19967:26;;20004:14;20021:36;11220:5;20022:19;20032:8;;20022:5;:9;;:19;;;;:::i;20021:36::-;20004:53;-1:-1:-1;20072:10:0;;20068:274;;20145:8;;;;;-1:-1:-1;;;;;20145:8:0;20135:19;;;;:9;:19;;;;;;:31;;20159:6;20135:23;:31::i;:::-;20123:8;;;;;-1:-1:-1;;;;;20123:8:0;20113:19;;;;:9;:19;;;;;:53;20194:22;:10;20209:6;20194:14;:22::i;:::-;20250:14;;20181:35;;-1:-1:-1;20250:26:0;;20269:6;20250:18;:26::i;:::-;20233:14;:43;20313:8;;20298:32;;-1:-1:-1;;;;;20313:8:0;;;;;;;20298:32;;;-1:-1:-1;;;;;;;;;;;20298:32:0;;;20323:6;1533:25:1;;1521:2;1506:18;;1387:177;20298:32:0;;;;;;;;20068:274;20354:17;20374:39;11220:5;20375:22;20385:11;;20375:5;:9;;:22;;;;:::i;20374:39::-;20354:59;-1:-1:-1;20428:13:0;;20424:303;;20506:11;;-1:-1:-1;;;;;20506:11:0;20496:22;;;;:9;:22;;;;;;:37;;20523:9;20496:26;:37::i;:::-;20481:11;;-1:-1:-1;;;;;20481:11:0;20471:22;;;;:9;:22;;;;;:62;20561:25;:10;20576:9;20561:14;:25::i;:::-;20623:17;;20548:38;;-1:-1:-1;20623:32:0;;20645:9;20623:21;:32::i;:::-;20603:17;:52;20692:11;;20677:38;;1533:25:1;;;-1:-1:-1;;;;;20692:11:0;;;;20677:38;;;-1:-1:-1;;;;;;;;;;;20677:38:0;1521:2:1;1506:18;20677:38:0;;;;;;;20424:303;-1:-1:-1;;;;;20757:15:0;;;;;;:9;:15;;;;;;:26;;20777:5;20757:19;:26::i;:::-;-1:-1:-1;;;;;20739:15:0;;;;;;;:9;:15;;;;;;:44;;;;20810:13;;;;;;;:29;;20828:10;20810:17;:29::i;:::-;-1:-1:-1;;;;;20794:13:0;;;;;;;:9;:13;;;;;;;:45;;;;20865:30;;;;;;-1:-1:-1;;;;;;;;;;;20865:30:0;;;20884:10;1533:25:1;;1521:2;1506:18;;1387:177;20865:30:0;;;;;;;;-1:-1:-1;20915:4:0;;19706:1221;-1:-1:-1;;;;;;19706:1221:0:o;2350:471::-;2408:7;2653:1;2658;2653:6;2649:47;;-1:-1:-1;2683:1:0;2676:8;;2649:47;2708:9;2720:5;2724:1;2720;:5;:::i;:::-;2708:17;-1:-1:-1;2753:1:0;2744:5;2748:1;2708:17;2744:5;:::i;:::-;:10;2736:56;;;;-1:-1:-1;;;2736:56:0;;12845:2:1;2736:56:0;;;12827:21:1;12884:2;12864:18;;;12857:30;12923:34;12903:18;;;12896:62;-1:-1:-1;;;12974:18:1;;;12967:31;13015:19;;2736:56:0;12643:397:1;3289:132:0;3347:7;3374:39;3378:1;3381;3374:39;;;;;;;;;;;;;;;;;:3;:39::i;978:181::-;1036:7;;1068:5;1072:1;1068;:5;:::i;:::-;1056:17;;1097:1;1092;:6;;1084:46;;;;-1:-1:-1;;;1084:46:0;;13377:2:1;1084:46:0;;;13359:21:1;13416:2;13396:18;;;13389:30;13455:29;13435:18;;;13428:57;13502:18;;1084:46:0;13175:351:1;22170:1064:0;22448:16;;22493:258;;;11658:66;22493:258;;;8125:25:1;-1:-1:-1;;;;;8224:15:1;;;8204:18;;;8197:43;;;;8276:15;;;8256:18;;;8249:43;8308:18;;;8301:34;;;8351:19;;;8344:35;;;8395:19;;;8388:35;;;22344:14:0;;22448:16;8097:19:1;;22493:258:0;;;;;;;;;;;;22483:269;;;;;;22384:379;;;;;;;;-1:-1:-1;;;8692:27:1;;8744:1;8735:11;;8728:27;;;;8780:2;8771:12;;8764:28;8817:2;8808:12;;8434:392;22384:379:0;;;;-1:-1:-1;;22384:379:0;;;;;;;;;22374:390;;22384:379;22374:390;;;;;-1:-1:-1;;;;;;22785:19:0;;22777:49;;;;-1:-1:-1;;;22777:49:0;;9033:2:1;22777:49:0;;;9015:21:1;9072:2;9052:18;;;9045:30;-1:-1:-1;;;9091:18:1;;;9084:47;9148:18;;22777:49:0;8831:341:1;22777:49:0;22854:26;;;;;;;;;;;;9404:25:1;;;9477:4;9465:17;;9445:18;;;9438:45;;;;9499:18;;;9492:34;;;9542:18;;;9535:34;;;22854:26:0;;9376:19:1;;22854:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22845:35:0;:5;-1:-1:-1;;;;;22845:35:0;;22837:62;;;;-1:-1:-1;;;22837:62:0;;9782:2:1;22837:62:0;;;9764:21:1;9821:2;9801:18;;;9794:30;-1:-1:-1;;;9840:18:1;;;9833:44;9894:18;;22837:62:0;9580:338:1;22837:62:0;22918:13;;;:44;;;22954:8;22935:15;:27;;22918:44;22910:71;;;;-1:-1:-1;;;22910:71:0;;10125:2:1;22910:71:0;;;10107:21:1;10164:2;10144:18;;;10137:30;-1:-1:-1;;;10183:18:1;;;10176:44;10237:18;;22910:71:0;9923:338:1;22910:71:0;-1:-1:-1;;;;;23003:13:0;;;;;;:6;:13;;;;;;;;:20;;;;;;;;;;;23002:21;22994:47;;;;-1:-1:-1;;;22994:47:0;;10468:2:1;22994:47:0;;;10450:21:1;10507:2;10487:18;;;10480:30;-1:-1:-1;;;10526:18:1;;;10519:43;10579:18;;22994:47:0;10266:337:1;22994:47:0;-1:-1:-1;;;;;23052:13:0;;;;;;;:6;:13;;;;;;;;:20;;;;;;;;;:27;;-1:-1:-1;;23052:27:0;23075:4;23052:27;;;23095:36;;7399:25:1;;;7440:18;;;7433:34;;;23095:36:0;;;;;;7372:18:1;23095:36:0;;;;;;;-1:-1:-1;;;;;23144:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;23195:31;;1533:25:1;;;23195:31:0;;1506:18:1;23195:31:0;;;;;;;22333:901;22170:1064;;;;;;;;:::o;23374:105::-;23427:6;23469:1;23459:5;23463:1;23469;23459:5;:::i;:::-;23455:9;;;23454:16;;23446:25;;;;;1907:192;1993:7;2029:12;2021:6;;;;2013:29;;;;-1:-1:-1;;;2013:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2053:9:0;2065:5;2069:1;2065;:5;:::i;3951:345::-;4037:7;4139:12;4132:5;4124:28;;;;-1:-1:-1;;;4124:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4163:9:0;4175:5;4179:1;4175;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2273:180::-;2332:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:52;;;2401:1;2398;2391:12;2353:52;-1:-1:-1;2424:23:1;;2273:180;-1:-1:-1;2273:180:1:o;2458:248::-;2526:6;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;-1:-1:-1;;2626:23:1;;;2696:2;2681:18;;;2668:32;;-1:-1:-1;2458:248:1:o;2919:762::-;3039:6;3047;3055;3063;3071;3079;3087;3095;3148:3;3136:9;3127:7;3123:23;3119:33;3116:53;;;3165:1;3162;3155:12;3116:53;3188:29;3207:9;3188:29;:::i;:::-;3178:39;;3236:38;3270:2;3259:9;3255:18;3236:38;:::i;:::-;3226:48;;3321:2;3310:9;3306:18;3293:32;3283:42;;3372:2;3361:9;3357:18;3344:32;3334:42;;3423:3;3412:9;3408:19;3395:33;3385:43;;3478:3;3467:9;3463:19;3450:33;3523:4;3516:5;3512:16;3505:5;3502:27;3492:55;;3543:1;3540;3533:12;3492:55;2919:762;;;;-1:-1:-1;2919:762:1;;;;;;3566:5;;-1:-1:-1;;;3618:3:1;3603:19;;3590:33;;3670:3;3655:19;3642:33;;2919:762::o;3686:260::-;3754:6;3762;3815:2;3803:9;3794:7;3790:23;3786:32;3783:52;;;3831:1;3828;3821:12;3783:52;3854:29;3873:9;3854:29;:::i;:::-;3844:39;;3902:38;3936:2;3925:9;3921:18;3902:38;:::i;:::-;3892:48;;3686:260;;;;;:::o;3951:380::-;4030:1;4026:12;;;;4073;;;4094:61;;4148:4;4140:6;4136:17;4126:27;;4094:61;4201:2;4193:6;4190:14;4170:18;4167:38;4164:161;;4247:10;4242:3;4238:20;4235:1;4228:31;4282:4;4279:1;4272:15;4310:4;4307:1;4300:15;4164:161;;3951:380;;;:::o;5144:345::-;5346:2;5328:21;;;5385:2;5365:18;;;5358:30;-1:-1:-1;;;5419:2:1;5404:18;;5397:51;5480:2;5465:18;;5144:345::o;12116:127::-;12177:10;12172:3;12168:20;12165:1;12158:31;12208:4;12205:1;12198:15;12232:4;12229:1;12222:15;12248:168;12321:9;;;12352;;12369:15;;;12363:22;;12349:37;12339:71;;12390:18;;:::i;12421:217::-;12461:1;12487;12477:132;;12531:10;12526:3;12522:20;12519:1;12512:31;12566:4;12563:1;12556:15;12594:4;12591:1;12584:15;12477:132;-1:-1:-1;12623:9:1;;12421:217::o;13045:125::-;13110:9;;;13131:10;;;13128:36;;;13144:18;;:::i;13531:128::-;13598:9;;;13619:11;;;13616:37;;;13633:18;;:::i

Swarm Source

ipfs://c84db09bd0543c29f9a209b9cd244a156c5969b17e97e61d03acfa337ce37902
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.