ETH Price: $2,930.21 (-3.26%)
Gas: 1 Gwei

Token

FIRE (FIRE)
 

Overview

Max Total Supply

4,500,000 FIRE

Holders

273

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,357.1428571428569 FIRE

Value
$0.00
0xc22de7606a99a0712e1417e691c067349c7e258c
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:
FireToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: FireToken.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import "./IERC20.sol";
import "./Ownable.sol";

contract FireToken is IERC20, Ownable {

    // total supply
    uint256 private _totalSupply = 4_500_000 * 10**18;

    // token data
    string private constant _name = "FIRE";
    string private constant _symbol = "FIRE";
    uint8  private constant _decimals = 18;

    // balances
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    // Taxation on transfers
    uint256 public buyFee             = 500;
    uint256 public sellFee            = 1250;
    uint256 public transferFee        = 0;
    uint256 public constant TAX_DENOM = 10000;

    // permissions
    struct Permissions {
        bool isFeeExempt;
        bool isLiquidityPool;
    }
    mapping ( address => Permissions ) public permissions;

    // Fee Recipients
    address public sellFeeRecipient;
    address public buyFeeRecipient;
    address public transferFeeRecipient;

    // events
    event SetBuyFeeRecipient(address recipient);
    event SetSellFeeRecipient(address recipient);
    event SetTransferFeeRecipient(address recipient);
    event SetFeeExemption(address account, bool isFeeExempt);
    event SetAutomatedMarketMaker(address account, bool isMarketMaker);
    event SetFees(uint256 buyFee, uint256 sellFee, uint256 transferFee);

    constructor() {

        // set initial token data
        address _owner = 0x42290Ba8C7770f7eFa8d8224675Ca3b658a9834C;

        // exempt sender for tax-free initial distribution
        permissions[msg.sender].isFeeExempt = true;
        permissions[_owner].isFeeExempt = true;

        // initial supply allocation
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    
    function name() public pure override returns (string memory) {
        return _name;
    }

    function symbol() public pure override returns (string memory) {
        return _symbol;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /** Transfer Function */
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    /** Transfer Function */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(
            _allowances[sender][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[sender][msg.sender] -= amount;
        return _transferFrom(sender, recipient, amount);
    }

    function burn(uint256 amount) external returns (bool) {
        return _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) external returns (bool) {
        require(
            _allowances[account][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[account][msg.sender] -= amount;
        return _burn(account, amount);
    }
    
    /** Internal Transfer */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(
            recipient != address(0),
            'Zero Recipient'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= _balances[sender],
            'Insufficient Balance'
        );
        
        // decrement sender balance
        _balances[sender] -= amount;

        // fee for transaction
        (uint256 fee, address feeDestination) = getTax(sender, recipient, amount);

        // allocate fee
        if (fee > 0) {
            address feeRecipient = feeDestination == address(0) ? address(this) : feeDestination;
            unchecked {
                _balances[feeRecipient] += fee;
            }
            emit Transfer(sender, feeRecipient, fee);
        }

        // give amount to recipient
        uint256 sendAmount = amount - fee;
        unchecked {
            _balances[recipient] += sendAmount;
        }

        // emit transfer
        emit Transfer(sender, recipient, sendAmount);
        return true;
    }

    function withdraw(address token) external onlyOwner {
        require(token != address(0), 'Zero Address');
        bool s = IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
        require(s, 'Failure On Token Withdraw');
    }

    function withdrawBNB() external onlyOwner {
        (bool s,) = payable(msg.sender).call{value: address(this).balance}("");
        require(s);
    }

    function setTransferFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        transferFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetTransferFeeRecipient(recipient);
    }

    function setBuyFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        buyFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetBuyFeeRecipient(recipient);
    }

    function setSellFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        sellFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetSellFeeRecipient(recipient);
    }

    function registerAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(!permissions[account].isLiquidityPool, 'Already An AMM');
        permissions[account].isLiquidityPool = true;
        emit SetAutomatedMarketMaker(account, true);
    }

    function unRegisterAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(permissions[account].isLiquidityPool, 'Not An AMM');
        permissions[account].isLiquidityPool = false;
        emit SetAutomatedMarketMaker(account, false);
    }

    function setFees(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner {
        require(
            _buyFee <= 2000,
            'Buy Fee Too High'
        );
        require(
            _sellFee <= 2000,
            'Sell Fee Too High'
        );
        require(
            _transferFee <= 2000,
            'Transfer Fee Too High'
        );

        buyFee = _buyFee;
        sellFee = _sellFee;
        transferFee = _transferFee;

        emit SetFees(_buyFee, _sellFee, _transferFee);
    }

    function setFeeExempt(address account, bool isExempt) external onlyOwner {
        require(account != address(0), 'Zero Address');
        permissions[account].isFeeExempt = isExempt;
        emit SetFeeExemption(account, isExempt);
    }

    function getTax(address sender, address recipient, uint256 amount) public view returns (uint256, address) {
        if ( permissions[sender].isFeeExempt || permissions[recipient].isFeeExempt ) {
            return (0, address(0));
        }
        return permissions[sender].isLiquidityPool ? 
               ((amount * buyFee) / TAX_DENOM, buyFeeRecipient) : 
               permissions[recipient].isLiquidityPool ? 
               ((amount * sellFee) / TAX_DENOM, sellFeeRecipient) :
               ((amount * transferFee) / TAX_DENOM, transferFeeRecipient);
    }

    function _burn(address account, uint256 amount) internal returns (bool) {
        require(
            account != address(0),
            'Zero Address'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= _balances[account],
            'Insufficient Balance'
        );
        _balances[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        return true;
    }

    receive() external payable {}
}

File 2 of 3: IERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    
    function symbol() external view returns(string memory);
    
    function name() external view returns(string memory);

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

    /**
     * @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);
}

File 3 of 3: Ownable.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

/**
 * @title Owner
 * @dev Set & change owner
 */
contract Ownable {

    address private owner;
    
    // event for EVM logging
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    // modifier to check if caller is owner
    modifier onlyOwner() {
        // If the first argument of 'require' evaluates to 'false', execution terminates and all
        // changes to the state and to Ether balances are reverted.
        // This used to consume all gas in old EVM versions, but not anymore.
        // It is often a good idea to use 'require' to check if functions are called correctly.
        // As a second argument, you can also provide an explanation about what went wrong.
        require(msg.sender == owner, "Caller is not owner");
        _;
    }
    
    /**
     * @dev Set contract deployer as owner
     */
    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }

    /**
     * @dev Change owner
     * @param newOwner address of new owner
     */
    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Return owner address 
     * @return address of owner
     */
    function getOwner() external view returns (address) {
        return owner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isMarketMaker","type":"bool"}],"name":"SetAutomatedMarketMaker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetBuyFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isFeeExempt","type":"bool"}],"name":"SetFeeExemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetSellFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetTransferFeeRecipient","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":"TAX_DENOM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"permissions","outputs":[{"internalType":"bool","name":"isFeeExempt","type":"bool"},{"internalType":"bool","name":"isLiquidityPool","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"registerAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setBuyFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setSellFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setTransferFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unRegisterAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a03b8e97d229a2d548000006001556101f46004556104e2600555600060065534801561003057600080fd5b50600080546001600160a01b0319163390811782556040519091907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a33360009081526007602090815260408083208054600160ff1991821681179092557342290ba8c7770f7efa8d8224675ca3b658a9834c8086527f424c8aa91efdc38cad03a8413f1fd3d4ca20b32786ccb448166fe534fa520001805490921683179091559054600284527f45b4d91ab45d3d2e0ad6088d2a9c1aace79df16e8a25a0c2538d0b6a9108f2c4819055915191825292839290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350611864806101436000396000f3fe6080604052600436106101dc5760003560e01c806367ffa82811610102578063a6f9dae111610095578063cec10c1111610064578063cec10c1114610580578063d7ad21ac146105a0578063dd62ed3e146105dd578063f89532a21461062357600080fd5b8063a6f9dae11461050a578063a9059cbb1461052a578063ac4dcb761461054a578063acb2ad6f1461056a57600080fd5b80638ebfc796116100d15780638ebfc796146104aa57806392a39d91146104ca57806395d89b411461023d5780639a44b9e3146104ea57600080fd5b806367ffa8281461041657806370a082311461043657806379cc67901461046c578063893d20e81461048c57600080fd5b80632b14ca561161017a57806342966c681161014957806342966c68146103a057806347062402146103c057806351cff8d9146103d657806365fe050e146103f657600080fd5b80632b14ca5614610316578063304561bb1461032c578063313ce567146103645780633eb193e21461038057600080fd5b806318160ddd116101b657806318160ddd146102a05780631d111d13146102bf57806323b872dd146102d65780632ac7b824146102f657600080fd5b806301e88208146101e857806306fdde031461023d578063095ea7b31461027057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506102216102033660046115b7565b60076020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b34801561024957600080fd5b5060408051808201825260048152634649524560e01b6020820152905161023491906115d2565b34801561027c57600080fd5b5061029061028b366004611620565b610639565b6040519015158152602001610234565b3480156102ac57600080fd5b506001545b604051908152602001610234565b3480156102cb57600080fd5b506102d46106a6565b005b3480156102e257600080fd5b506102906102f136600461164a565b610731565b34801561030257600080fd5b506102d46103113660046115b7565b6107e9565b34801561032257600080fd5b506102b160055481565b34801561033857600080fd5b50600a5461034c906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561037057600080fd5b5060405160128152602001610234565b34801561038c57600080fd5b506102d461039b3660046115b7565b6108f2565b3480156103ac57600080fd5b506102906103bb366004611686565b6109aa565b3480156103cc57600080fd5b506102b160045481565b3480156103e257600080fd5b506102d46103f13660046115b7565b6109b6565b34801561040257600080fd5b506102d46104113660046115b7565b610b3d565b34801561042257600080fd5b506102d46104313660046115b7565b610c48565b34801561044257600080fd5b506102b16104513660046115b7565b6001600160a01b031660009081526002602052604090205490565b34801561047857600080fd5b50610290610487366004611620565b610d00565b34801561049857600080fd5b506000546001600160a01b031661034c565b3480156104b657600080fd5b506102d46104c53660046116ad565b610db6565b3480156104d657600080fd5b5060085461034c906001600160a01b031681565b3480156104f657600080fd5b5060095461034c906001600160a01b031681565b34801561051657600080fd5b506102d46105253660046115b7565b610e69565b34801561053657600080fd5b50610290610545366004611620565b610eee565b34801561055657600080fd5b506102d46105653660046115b7565b610efb565b34801561057657600080fd5b506102b160065481565b34801561058c57600080fd5b506102d461059b3660046116e4565b610fb3565b3480156105ac57600080fd5b506105c06105bb36600461164a565b611107565b604080519283526001600160a01b03909116602083015201610234565b3480156105e957600080fd5b506102b16105f8366004611710565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062f57600080fd5b506102b161271081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526004016106d090611743565b60405180910390fd5b604051600090339047908381818185875af1925050503d806000811461071b576040519150601f19603f3d011682016040523d82523d6000602084013e610720565b606091505b505090508061072e57600080fd5b50565b6001600160a01b038316600090815260036020908152604080832033845290915281205482111561079d5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107d0908490611786565b909155506107e1905084848461122f565b949350505050565b6000546001600160a01b031633146108135760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166108395760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff166108935760405162461bcd60e51b815260206004820152600a6024820152694e6f7420416e20414d4d60b01b60448201526064016106d0565b6001600160a01b0381166000818152600760209081526040808320805461ff00191690558051938452908301919091527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291015b60405180910390a150565b6000546001600160a01b0316331461091c5760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166109425760405162461bcd60e51b81526004016106d090611799565b600980546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fc1705819a90a4e9c9fba1872573191b370b8778cd644e0050b90c99b3c0762a991016108e7565b60006106a03383611452565b6000546001600160a01b031633146109e05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610a065760405162461bcd60e51b81526004016106d090611799565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b91906117bf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea91906117d8565b905080610b395760405162461bcd60e51b815260206004820152601960248201527f4661696c757265204f6e20546f6b656e2057697468647261770000000000000060448201526064016106d0565b5050565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610b8d5760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff1615610bec5760405162461bcd60e51b815260206004820152600e60248201526d416c726561647920416e20414d4d60901b60448201526064016106d0565b6001600160a01b038116600081815260076020908152604091829020805461ff00191661010017905581519283526001908301527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291016108e7565b6000546001600160a01b03163314610c725760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610c985760405162461bcd60e51b81526004016106d090611799565b600880546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fffba9995ed8a822e426a175c6a29db4e239f0788c470ba2588c6bb3cc486a44991016108e7565b6001600160a01b0382166000908152600360209081526040808320338452909152812054821115610d6c5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b038316600090815260036020908152604080832033845290915281208054849290610d9f908490611786565b90915550610daf90508383611452565b9392505050565b6000546001600160a01b03163314610de05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038216610e065760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f2293b760d6615c0f087e78599ce64d67197a7dba78cdd9e241f3cd23b46101f3910160405180910390a15050565b6000546001600160a01b03163314610e935760405162461bcd60e51b81526004016106d090611743565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610daf33848461122f565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610f4b5760405162461bcd60e51b81526004016106d090611799565b600a80546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527f78dd3f4c755a9774505b9155386a8765af9250233430ebf8ad314a8a76e43c6b91016108e7565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b81526004016106d090611743565b6107d08311156110225760405162461bcd60e51b815260206004820152601060248201526f084eaf2408ccaca40a8dede4090d2ced60831b60448201526064016106d0565b6107d08211156110685760405162461bcd60e51b81526020600482015260116024820152700a6cad8d8408ccaca40a8dede4090d2ced607b1b60448201526064016106d0565b6107d08111156110b25760405162461bcd60e51b81526020600482015260156024820152740a8e4c2dce6cccae4408ccaca40a8dede4090d2ced605b1b60448201526064016106d0565b60048390556005829055600681905560408051848152602081018490529081018290527f37322890d66d781059d797be5e2f27dc160a34d8bc0a8e09116cb9a773ce88ef9060600160405180910390a1505050565b6001600160a01b038316600090815260076020526040812054819060ff168061114857506001600160a01b03841660009081526007602052604090205460ff165b1561115857506000905080611227565b6001600160a01b038516600090815260076020526040902054610100900460ff166111fa576001600160a01b038416600090815260076020526040902054610100900460ff166111ce57612710600654846111b391906117f5565b6111bd919061180c565b600a546001600160a01b0316611222565b612710600554846111df91906117f5565b6111e9919061180c565b6008546001600160a01b0316611222565b6127106004548461120b91906117f5565b611215919061180c565b6009546001600160a01b03165b915091505b935093915050565b60006001600160a01b0383166112785760405162461bcd60e51b815260206004820152600e60248201526d16995c9bc8149958da5c1a595b9d60921b60448201526064016106d0565b600082116112b65760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0384166000908152600260205260409020548211156113155760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0384166000908152600260205260408120805484929061133d908490611786565b909155506000905080611351868686611107565b909250905081156113d85760006001600160a01b038216156113735781611375565b305b6001600160a01b03808216600081815260026020526040908190208054880190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ce9087815260200190565b60405180910390a3505b60006113e48386611786565b6001600160a01b03808816600081815260026020526040908190208054850190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9085815260200190565b60405180910390a35060019695505050505050565b60006001600160a01b03831661147a5760405162461bcd60e51b81526004016106d090611799565b600082116114b85760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0383166000908152600260205260409020548211156115175760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0383166000908152600260205260408120805484929061153f908490611786565b9250508190555081600160008282546115589190611786565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610694565b80356001600160a01b03811681146115b257600080fd5b919050565b6000602082840312156115c957600080fd5b610daf8261159b565b600060208083528351808285015260005b818110156115ff578581018301518582016040015282016115e3565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561163357600080fd5b61163c8361159b565b946020939093013593505050565b60008060006060848603121561165f57600080fd5b6116688461159b565b92506116766020850161159b565b9150604084013590509250925092565b60006020828403121561169857600080fd5b5035919050565b801515811461072e57600080fd5b600080604083850312156116c057600080fd5b6116c98361159b565b915060208301356116d98161169f565b809150509250929050565b6000806000606084860312156116f957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172357600080fd5b61172c8361159b565b915061173a6020840161159b565b90509250929050565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156106a0576106a0611770565b6020808252600c908201526b5a65726f204164647265737360a01b604082015260600190565b6000602082840312156117d157600080fd5b5051919050565b6000602082840312156117ea57600080fd5b8151610daf8161169f565b80820281158282048414176106a0576106a0611770565b60008261182957634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209aa5a0ed67e289ec03338f0935a7ea91984c471f9a9b18ce4e822b15625749f464736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806367ffa82811610102578063a6f9dae111610095578063cec10c1111610064578063cec10c1114610580578063d7ad21ac146105a0578063dd62ed3e146105dd578063f89532a21461062357600080fd5b8063a6f9dae11461050a578063a9059cbb1461052a578063ac4dcb761461054a578063acb2ad6f1461056a57600080fd5b80638ebfc796116100d15780638ebfc796146104aa57806392a39d91146104ca57806395d89b411461023d5780639a44b9e3146104ea57600080fd5b806367ffa8281461041657806370a082311461043657806379cc67901461046c578063893d20e81461048c57600080fd5b80632b14ca561161017a57806342966c681161014957806342966c68146103a057806347062402146103c057806351cff8d9146103d657806365fe050e146103f657600080fd5b80632b14ca5614610316578063304561bb1461032c578063313ce567146103645780633eb193e21461038057600080fd5b806318160ddd116101b657806318160ddd146102a05780631d111d13146102bf57806323b872dd146102d65780632ac7b824146102f657600080fd5b806301e88208146101e857806306fdde031461023d578063095ea7b31461027057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506102216102033660046115b7565b60076020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b34801561024957600080fd5b5060408051808201825260048152634649524560e01b6020820152905161023491906115d2565b34801561027c57600080fd5b5061029061028b366004611620565b610639565b6040519015158152602001610234565b3480156102ac57600080fd5b506001545b604051908152602001610234565b3480156102cb57600080fd5b506102d46106a6565b005b3480156102e257600080fd5b506102906102f136600461164a565b610731565b34801561030257600080fd5b506102d46103113660046115b7565b6107e9565b34801561032257600080fd5b506102b160055481565b34801561033857600080fd5b50600a5461034c906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561037057600080fd5b5060405160128152602001610234565b34801561038c57600080fd5b506102d461039b3660046115b7565b6108f2565b3480156103ac57600080fd5b506102906103bb366004611686565b6109aa565b3480156103cc57600080fd5b506102b160045481565b3480156103e257600080fd5b506102d46103f13660046115b7565b6109b6565b34801561040257600080fd5b506102d46104113660046115b7565b610b3d565b34801561042257600080fd5b506102d46104313660046115b7565b610c48565b34801561044257600080fd5b506102b16104513660046115b7565b6001600160a01b031660009081526002602052604090205490565b34801561047857600080fd5b50610290610487366004611620565b610d00565b34801561049857600080fd5b506000546001600160a01b031661034c565b3480156104b657600080fd5b506102d46104c53660046116ad565b610db6565b3480156104d657600080fd5b5060085461034c906001600160a01b031681565b3480156104f657600080fd5b5060095461034c906001600160a01b031681565b34801561051657600080fd5b506102d46105253660046115b7565b610e69565b34801561053657600080fd5b50610290610545366004611620565b610eee565b34801561055657600080fd5b506102d46105653660046115b7565b610efb565b34801561057657600080fd5b506102b160065481565b34801561058c57600080fd5b506102d461059b3660046116e4565b610fb3565b3480156105ac57600080fd5b506105c06105bb36600461164a565b611107565b604080519283526001600160a01b03909116602083015201610234565b3480156105e957600080fd5b506102b16105f8366004611710565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062f57600080fd5b506102b161271081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526004016106d090611743565b60405180910390fd5b604051600090339047908381818185875af1925050503d806000811461071b576040519150601f19603f3d011682016040523d82523d6000602084013e610720565b606091505b505090508061072e57600080fd5b50565b6001600160a01b038316600090815260036020908152604080832033845290915281205482111561079d5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107d0908490611786565b909155506107e1905084848461122f565b949350505050565b6000546001600160a01b031633146108135760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166108395760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff166108935760405162461bcd60e51b815260206004820152600a6024820152694e6f7420416e20414d4d60b01b60448201526064016106d0565b6001600160a01b0381166000818152600760209081526040808320805461ff00191690558051938452908301919091527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291015b60405180910390a150565b6000546001600160a01b0316331461091c5760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166109425760405162461bcd60e51b81526004016106d090611799565b600980546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fc1705819a90a4e9c9fba1872573191b370b8778cd644e0050b90c99b3c0762a991016108e7565b60006106a03383611452565b6000546001600160a01b031633146109e05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610a065760405162461bcd60e51b81526004016106d090611799565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b91906117bf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea91906117d8565b905080610b395760405162461bcd60e51b815260206004820152601960248201527f4661696c757265204f6e20546f6b656e2057697468647261770000000000000060448201526064016106d0565b5050565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610b8d5760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff1615610bec5760405162461bcd60e51b815260206004820152600e60248201526d416c726561647920416e20414d4d60901b60448201526064016106d0565b6001600160a01b038116600081815260076020908152604091829020805461ff00191661010017905581519283526001908301527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291016108e7565b6000546001600160a01b03163314610c725760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610c985760405162461bcd60e51b81526004016106d090611799565b600880546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fffba9995ed8a822e426a175c6a29db4e239f0788c470ba2588c6bb3cc486a44991016108e7565b6001600160a01b0382166000908152600360209081526040808320338452909152812054821115610d6c5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b038316600090815260036020908152604080832033845290915281208054849290610d9f908490611786565b90915550610daf90508383611452565b9392505050565b6000546001600160a01b03163314610de05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038216610e065760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f2293b760d6615c0f087e78599ce64d67197a7dba78cdd9e241f3cd23b46101f3910160405180910390a15050565b6000546001600160a01b03163314610e935760405162461bcd60e51b81526004016106d090611743565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610daf33848461122f565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610f4b5760405162461bcd60e51b81526004016106d090611799565b600a80546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527f78dd3f4c755a9774505b9155386a8765af9250233430ebf8ad314a8a76e43c6b91016108e7565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b81526004016106d090611743565b6107d08311156110225760405162461bcd60e51b815260206004820152601060248201526f084eaf2408ccaca40a8dede4090d2ced60831b60448201526064016106d0565b6107d08211156110685760405162461bcd60e51b81526020600482015260116024820152700a6cad8d8408ccaca40a8dede4090d2ced607b1b60448201526064016106d0565b6107d08111156110b25760405162461bcd60e51b81526020600482015260156024820152740a8e4c2dce6cccae4408ccaca40a8dede4090d2ced605b1b60448201526064016106d0565b60048390556005829055600681905560408051848152602081018490529081018290527f37322890d66d781059d797be5e2f27dc160a34d8bc0a8e09116cb9a773ce88ef9060600160405180910390a1505050565b6001600160a01b038316600090815260076020526040812054819060ff168061114857506001600160a01b03841660009081526007602052604090205460ff165b1561115857506000905080611227565b6001600160a01b038516600090815260076020526040902054610100900460ff166111fa576001600160a01b038416600090815260076020526040902054610100900460ff166111ce57612710600654846111b391906117f5565b6111bd919061180c565b600a546001600160a01b0316611222565b612710600554846111df91906117f5565b6111e9919061180c565b6008546001600160a01b0316611222565b6127106004548461120b91906117f5565b611215919061180c565b6009546001600160a01b03165b915091505b935093915050565b60006001600160a01b0383166112785760405162461bcd60e51b815260206004820152600e60248201526d16995c9bc8149958da5c1a595b9d60921b60448201526064016106d0565b600082116112b65760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0384166000908152600260205260409020548211156113155760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0384166000908152600260205260408120805484929061133d908490611786565b909155506000905080611351868686611107565b909250905081156113d85760006001600160a01b038216156113735781611375565b305b6001600160a01b03808216600081815260026020526040908190208054880190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ce9087815260200190565b60405180910390a3505b60006113e48386611786565b6001600160a01b03808816600081815260026020526040908190208054850190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9085815260200190565b60405180910390a35060019695505050505050565b60006001600160a01b03831661147a5760405162461bcd60e51b81526004016106d090611799565b600082116114b85760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0383166000908152600260205260409020548211156115175760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0383166000908152600260205260408120805484929061153f908490611786565b9250508190555081600160008282546115589190611786565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610694565b80356001600160a01b03811681146115b257600080fd5b919050565b6000602082840312156115c957600080fd5b610daf8261159b565b600060208083528351808285015260005b818110156115ff578581018301518582016040015282016115e3565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561163357600080fd5b61163c8361159b565b946020939093013593505050565b60008060006060848603121561165f57600080fd5b6116688461159b565b92506116766020850161159b565b9150604084013590509250925092565b60006020828403121561169857600080fd5b5035919050565b801515811461072e57600080fd5b600080604083850312156116c057600080fd5b6116c98361159b565b915060208301356116d98161169f565b809150509250929050565b6000806000606084860312156116f957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172357600080fd5b61172c8361159b565b915061173a6020840161159b565b90509250929050565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156106a0576106a0611770565b6020808252600c908201526b5a65726f204164647265737360a01b604082015260600190565b6000602082840312156117d157600080fd5b5051919050565b6000602082840312156117ea57600080fd5b8151610daf8161169f565b80820281158282048414176106a0576106a0611770565b60008261182957634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209aa5a0ed67e289ec03338f0935a7ea91984c471f9a9b18ce4e822b15625749f464736f6c63430008140033

Deployed Bytecode Sourcemap

110:8741:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:53;;;;;;;;;;-1:-1:-1;870:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;570:14:3;;563:22;545:41;;629:14;;622:22;617:2;602:18;;595:50;518:18;870:53:0;;;;;;;;2249:92;;;;;;;;;;-1:-1:-1;2328:5:0;;;;;;;;;;;-1:-1:-1;;;2328:5:0;;;;2249:92;;;;2328:5;2249:92;:::i;2553:216::-;;;;;;;;;;-1:-1:-1;2553:216:0;;;;;:::i;:::-;;:::i;:::-;;;1633:14:3;;1626:22;1608:41;;1596:2;1581:18;2553:216:0;1468:187:3;1899:88:0;;;;;;;;;;-1:-1:-1;1972:12:0;;1899:88;;;1806:25:3;;;1794:2;1779:18;1899:88:0;1660:177:3;5259:152:0;;;;;;;;;;;;;:::i;:::-;;3001:348;;;;;;;;;;-1:-1:-1;3001:348:0;;;;;:::i;:::-;;:::i;6595:321::-;;;;;;;;;;-1:-1:-1;6595:321:0;;;;;:::i;:::-;;:::i;618:40::-;;;;;;;;;;;;;;;;1030:35;;;;;;;;;;-1:-1:-1;1030:35:0;;;;-1:-1:-1;;;;;1030:35:0;;;;;;-1:-1:-1;;;;;2339:32:3;;;2321:51;;2309:2;2294:18;1030:35:0;2175:203:3;2453:92:0;;;;;;;;;;-1:-1:-1;2453:92:0;;383:2;2525:36:3;;2513:2;2498:18;2453:92:0;2383:184:3;5710:268:0;;;;;;;;;;-1:-1:-1;5710:268:0;;;;;:::i;:::-;;:::i;3357:105::-;;;;;;;;;;-1:-1:-1;3357:105:0;;;;;:::i;:::-;;:::i;572:39::-;;;;;;;;;;;;;;;;4992:259;;;;;;;;;;-1:-1:-1;4992:259:0;;;;;:::i;:::-;;:::i;6265:322::-;;;;;;;;;;-1:-1:-1;6265:322:0;;;;;:::i;:::-;;:::i;5986:271::-;;;;;;;;;;-1:-1:-1;5986:271:0;;;;;:::i;:::-;;:::i;1993:105::-;;;;;;;;;;-1:-1:-1;1993:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;2077:18:0;2059:7;2077:18;;;:9;:18;;;;;;;1993:105;3470:301;;;;;;;;;;-1:-1:-1;3470:301:0;;;;;:::i;:::-;;:::i;1442:83:2:-;;;;;;;;;;-1:-1:-1;1485:7:2;1512:5;-1:-1:-1;;;;;1512:5:2;1442:83;;7465:242:0;;;;;;;;;;-1:-1:-1;7465:242:0;;;;;:::i;:::-;;:::i;955:31::-;;;;;;;;;;-1:-1:-1;955:31:0;;;;-1:-1:-1;;;;;955:31:0;;;993:30;;;;;;;;;;-1:-1:-1;993:30:0;;;;-1:-1:-1;;;;;993:30:0;;;1216:132:2;;;;;;;;;;-1:-1:-1;1216:132:2;;;;;:::i;:::-;;:::i;2807:156:0:-;;;;;;;;;;-1:-1:-1;2807:156:0;;;;;:::i;:::-;;:::i;5419:283::-;;;;;;;;;;-1:-1:-1;5419:283:0;;;;;:::i;:::-;;:::i;665:37::-;;;;;;;;;;;;;;;;6924:533;;;;;;;;;;-1:-1:-1;6924:533:0;;;;;:::i;:::-;;:::i;7715:576::-;;;;;;;;;;-1:-1:-1;7715:576:0;;;;;:::i;:::-;;:::i;:::-;;;;3695:25:3;;;-1:-1:-1;;;;;3756:32:3;;;3751:2;3736:18;;3729:60;3668:18;7715:576:0;3521:274:3;2104:133:0;;;;;;;;;;-1:-1:-1;2104:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;2206:19:0;;;2188:7;2206:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;2104:133;709:41;;;;;;;;;;;;745:5;709:41;;2553:216;2657:10;2628:4;2645:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;2645:32:0;;;;;;;;;;:41;;;2702:37;2628:4;;2645:32;;2702:37;;;;2680:6;1806:25:3;;1794:2;1779:18;;1660:177;2702:37:0;;;;;;;;-1:-1:-1;2757:4:0;2553:216;;;;;:::o;5259:152::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;;;;;;;;;5324:58:0::1;::::0;5313:6:::1;::::0;5332:10:::1;::::0;5356:21:::1;::::0;5313:6;5324:58;5313:6;5324:58;5356:21;5332:10;5324:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5312:70;;;5401:1;5393:10;;;::::0;::::1;;5301:110;5259:152::o:0;3001:348::-;-1:-1:-1;;;;;3140:19:0;;3101:4;3140:19;;;:11;:19;;;;;;;;3160:10;3140:31;;;;;;;;:41;-1:-1:-1;3140:41:0;3118:113;;;;-1:-1:-1;;;3118:113:0;;4825:2:3;3118:113:0;;;4807:21:3;4864:2;4844:18;;;4837:30;-1:-1:-1;;;4883:18:3;;;4876:52;4945:18;;3118:113:0;4623:346:3;3118:113:0;-1:-1:-1;;;;;3242:19:0;;;;;;:11;:19;;;;;;;;3262:10;3242:31;;;;;;;:41;;3277:6;;3242:19;:41;;3277:6;;3242:41;:::i;:::-;;;;-1:-1:-1;3301:40:0;;-1:-1:-1;3315:6:0;3323:9;3334:6;3301:13;:40::i;:::-;3294:47;3001:348;-1:-1:-1;;;;3001:348:0:o;6595:321::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;6690:21:0;::::1;6682:46;;;;-1:-1:-1::0;;;6682:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6747:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:36;::::1;::::0;::::1;;;6739:59;;;::::0;-1:-1:-1;;;6739:59:0;;5782:2:3;6739:59:0::1;::::0;::::1;5764:21:3::0;5821:2;5801:18;;;5794:30;-1:-1:-1;;;5840:18:3;;;5833:40;5890:18;;6739:59:0::1;5580:334:3::0;6739:59:0::1;-1:-1:-1::0;;;;;6809:20:0;::::1;6848:5;6809:20:::0;;;:11:::1;:20;::::0;;;;;;;:44;;-1:-1:-1;;6809:44:0::1;::::0;;6869:39;;6087:51:3;;;6154:18;;;6147:50;;;;6869:39:0::1;::::0;6060:18:3;6869:39:0::1;;;;;;;;6595:321:::0;:::o;5710:268::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;5795:23:0;::::1;5787:48;;;;-1:-1:-1::0;;;5787:48:0::1;;;;;;;:::i;:::-;5846:15;:27:::0;;-1:-1:-1;;;;;;5846:27:0::1;-1:-1:-1::0;;;;;5846:27:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;5884:22:0;;;:11:::1;:22;::::0;;;;;;;;:41;;-1:-1:-1;;5884:41:0::1;-1:-1:-1::0;5884:41:0::1;::::0;;5941:29;;2321:51:3;;;5941:29:0::1;::::0;2294:18:3;5941:29:0::1;2175:203:3::0;3357:105:0;3405:4;3429:25;3435:10;3447:6;3429:5;:25::i;4992:259::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;5063:19:0;::::1;5055:44;;;;-1:-1:-1::0;;;5055:44:0::1;;;;;;;:::i;:::-;5154:38;::::0;-1:-1:-1;;;5154:38:0;;5186:4:::1;5154:38;::::0;::::1;2321:51:3::0;5110:6:0::1;::::0;-1:-1:-1;;;;;5119:22:0;::::1;::::0;::::1;::::0;5142:10:::1;::::0;5119:22;;5154:23:::1;::::0;2294:18:3;;5154:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5119:74;::::0;-1:-1:-1;;;;;;5119:74:0::1;::::0;;;;;;-1:-1:-1;;;;;6589:32:3;;;5119:74:0::1;::::0;::::1;6571:51:3::0;6638:18;;;6631:34;6544:18;;5119:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5110:83;;5212:1;5204:39;;;::::0;-1:-1:-1;;;5204:39:0;;7128:2:3;5204:39:0::1;::::0;::::1;7110:21:3::0;7167:2;7147:18;;;7140:30;7206:27;7186:18;;;7179:55;7251:18;;5204:39:0::1;6926:349:3::0;5204:39:0::1;5044:207;4992:259:::0;:::o;6265:322::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;6358:21:0;::::1;6350:46;;;;-1:-1:-1::0;;;6350:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6416:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:36;::::1;::::0;::::1;;;6415:37;6407:64;;;::::0;-1:-1:-1;;;6407:64:0;;7482:2:3;6407:64:0::1;::::0;::::1;7464:21:3::0;7521:2;7501:18;;;7494:30;-1:-1:-1;;;7540:18:3;;;7533:44;7594:18;;6407:64:0::1;7280:338:3::0;6407:64:0::1;-1:-1:-1::0;;;;;6482:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:43;;-1:-1:-1;;6482:43:0::1;;;::::0;;6541:38;;6087:51:3;;;-1:-1:-1;6154:18:3;;;6147:50;6541:38:0::1;::::0;6060:18:3;6541:38:0::1;5919:284:3::0;5986:271:0;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;6072:23:0;::::1;6064:48;;;;-1:-1:-1::0;;;6064:48:0::1;;;;;;;:::i;:::-;6123:16;:28:::0;;-1:-1:-1;;;;;;6123:28:0::1;-1:-1:-1::0;;;;;6123:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6162:22:0;;;:11:::1;:22;::::0;;;;;;;;:41;;-1:-1:-1;;6162:41:0::1;-1:-1:-1::0;6162:41:0::1;::::0;;6219:30;;2321:51:3;;;6219:30:0::1;::::0;2294:18:3;6219:30:0::1;2175:203:3::0;3470:301:0;-1:-1:-1;;;;;3578:20:0;;3539:4;3578:20;;;:11;:20;;;;;;;;3599:10;3578:32;;;;;;;;:42;-1:-1:-1;3578:42:0;3556:114;;;;-1:-1:-1;;;3556:114:0;;4825:2:3;3556:114:0;;;4807:21:3;4864:2;4844:18;;;4837:30;-1:-1:-1;;;4883:18:3;;;4876:52;4945:18;;3556:114:0;4623:346:3;3556:114:0;-1:-1:-1;;;;;3681:20:0;;;;;;:11;:20;;;;;;;;3702:10;3681:32;;;;;;;:42;;3717:6;;3681:20;:42;;3717:6;;3681:42;:::i;:::-;;;;-1:-1:-1;3741:22:0;;-1:-1:-1;3747:7:0;3756:6;3741:5;:22::i;:::-;3734:29;3470:301;-1:-1:-1;;;3470:301:0:o;7465:242::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;7557:21:0;::::1;7549:46;;;;-1:-1:-1::0;;;7549:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7606:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:43;;-1:-1:-1;;7606:43:0::1;::::0;::::1;;::::0;;::::1;::::0;;;7665:34;;6087:51:3;;;6154:18;;;6147:50;7665:34:0::1;::::0;6060:18:3;7665:34:0::1;;;;;;;7465:242:::0;;:::o;1216:132:2:-;823:5;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;1297:5:::1;::::0;;1288:25:::1;::::0;-1:-1:-1;;;;;1288:25:2;;::::1;::::0;1297:5;::::1;::::0;1288:25:::1;::::0;::::1;1324:5;:16:::0;;-1:-1:-1;;;;;;1324:16:2::1;-1:-1:-1::0;;;;;1324:16:2;;;::::1;::::0;;;::::1;::::0;;1216:132::o;2807:156:0:-;2887:4;2911:44;2925:10;2937:9;2948:6;2911:13;:44::i;5419:283::-;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;5509:23:0;::::1;5501:48;;;;-1:-1:-1::0;;;5501:48:0::1;;;;;;;:::i;:::-;5560:20;:32:::0;;-1:-1:-1;;;;;;5560:32:0::1;-1:-1:-1::0;;;;;5560:32:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;5603:22:0;;;:11:::1;:22;::::0;;;;;;;;:41;;-1:-1:-1;;5603:41:0::1;-1:-1:-1::0;5603:41:0::1;::::0;;5660:34;;2321:51:3;;;5660:34:0::1;::::0;2294:18:3;5660:34:0::1;2175:203:3::0;6924:533:0;823:5:2;;-1:-1:-1;;;;;823:5:2;809:10;:19;801:51;;;;-1:-1:-1;;;801:51:2;;;;;;;:::i;:::-;7052:4:0::1;7041:7;:15;;7019:81;;;::::0;-1:-1:-1;;;7019:81:0;;7825:2:3;7019:81:0::1;::::0;::::1;7807:21:3::0;7864:2;7844:18;;;7837:30;-1:-1:-1;;;7883:18:3;;;7876:46;7939:18;;7019:81:0::1;7623:340:3::0;7019:81:0::1;7145:4;7133:8;:16;;7111:83;;;::::0;-1:-1:-1;;;7111:83:0;;8170:2:3;7111:83:0::1;::::0;::::1;8152:21:3::0;8209:2;8189:18;;;8182:30;-1:-1:-1;;;8228:18:3;;;8221:47;8285:18;;7111:83:0::1;7968:341:3::0;7111:83:0::1;7243:4;7227:12;:20;;7205:91;;;::::0;-1:-1:-1;;;7205:91:0;;8516:2:3;7205:91:0::1;::::0;::::1;8498:21:3::0;8555:2;8535:18;;;8528:30;-1:-1:-1;;;8574:18:3;;;8567:51;8635:18;;7205:91:0::1;8314:345:3::0;7205:91:0::1;7309:6;:16:::0;;;7336:7:::1;:18:::0;;;7365:11:::1;:26:::0;;;7409:40:::1;::::0;;8866:25:3;;;8922:2;8907:18;;8900:34;;;8950:18;;;8943:34;;;7409:40:0::1;::::0;8854:2:3;8839:18;7409:40:0::1;;;;;;;6924:533:::0;;;:::o;7715:576::-;-1:-1:-1;;;;;7837:19:0;;7803:7;7837:19;;;:11;:19;;;;;:31;7803:7;;7837:31;;;:69;;-1:-1:-1;;;;;;7872:22:0;;;;;;:11;:22;;;;;:34;;;7837:69;7832:126;;;-1:-1:-1;7932:1:0;;-1:-1:-1;7932:1:0;7924:22;;7832:126;-1:-1:-1;;;;;7975:19:0;;;;;;:11;:19;;;;;:35;;;;;;:308;;-1:-1:-1;;;;;8098:22:0;;;;;;:11;:22;;;;;:38;;;;;;:185;;745:5;8236:11;;8227:6;:20;;;;:::i;:::-;8226:34;;;;:::i;:::-;8262:20;;-1:-1:-1;;;;;8262:20:0;7975:308;;8098:185;745:5;8167:7;;8158:6;:16;;;;:::i;:::-;8157:30;;;;:::i;:::-;8189:16;;-1:-1:-1;;;;;8189:16:0;7975:308;;;745:5;8041:6;;8032;:15;;;;:::i;:::-;8031:29;;;;:::i;:::-;8062:15;;-1:-1:-1;;;;;8062:15:0;7975:308;7968:315;;;;7715:576;;;;;;;:::o;3813:1171::-;3905:4;-1:-1:-1;;;;;3944:23:0;;3922:87;;;;-1:-1:-1;;;3922:87:0;;9585:2:3;3922:87:0;;;9567:21:3;9624:2;9604:18;;;9597:30;-1:-1:-1;;;9643:18:3;;;9636:44;9697:18;;3922:87:0;9383:338:3;3922:87:0;4051:1;4042:6;:10;4020:71;;;;-1:-1:-1;;;4020:71:0;;9928:2:3;4020:71:0;;;9910:21:3;9967:2;9947:18;;;9940:30;-1:-1:-1;;;9986:18:3;;;9979:41;10037:18;;4020:71:0;9726:335:3;4020:71:0;-1:-1:-1;;;;;4134:17:0;;;;;;:9;:17;;;;;;4124:27;;;4102:97;;;;-1:-1:-1;;;4102:97:0;;10268:2:3;4102:97:0;;;10250:21:3;10307:2;10287:18;;;10280:30;-1:-1:-1;;;10326:18:3;;;10319:50;10386:18;;4102:97:0;10066:344:3;4102:97:0;-1:-1:-1;;;;;4257:17:0;;;;;;:9;:17;;;;;:27;;4278:6;;4257:17;:27;;4278:6;;4257:27;:::i;:::-;;;;-1:-1:-1;4330:11:0;;-1:-1:-1;4330:11:0;4369:33;4376:6;4384:9;4395:6;4369;:33::i;:::-;4329:73;;-1:-1:-1;4329:73:0;-1:-1:-1;4444:7:0;;4440:268;;4468:20;-1:-1:-1;;;;;4491:28:0;;;:61;;4538:14;4491:61;;;4530:4;4491:61;-1:-1:-1;;;;;4596:23:0;;;;;;;:9;:23;;;;;;;:30;;;;;;4661:35;4468:84;;-1:-1:-1;4596:23:0;4661:35;;;;;;;;4623:3;1806:25:3;;1794:2;1779:18;;1660:177;4661:35:0;;;;;;;;4453:255;4440:268;4757:18;4778:12;4787:3;4778:6;:12;:::i;:::-;-1:-1:-1;;;;;4826:20:0;;;;;;;:9;:20;;;;;;;:34;;;;;;4915:39;4757:33;;-1:-1:-1;4826:20:0;4915:39;;;;;;;;4757:33;1806:25:3;;1794:2;1779:18;;1660:177;4915:39:0;;;;;;;;-1:-1:-1;4972:4:0;;3813:1171;-1:-1:-1;;;;;;3813:1171:0:o;8299:512::-;8365:4;-1:-1:-1;;;;;8404:21:0;;8382:83;;;;-1:-1:-1;;;8382:83:0;;;;;;;:::i;:::-;8507:1;8498:6;:10;8476:71;;;;-1:-1:-1;;;8476:71:0;;9928:2:3;8476:71:0;;;9910:21:3;9967:2;9947:18;;;9940:30;-1:-1:-1;;;9986:18:3;;;9979:41;10037:18;;8476:71:0;9726:335:3;8476:71:0;-1:-1:-1;;;;;8590:18:0;;;;;;:9;:18;;;;;;8580:28;;;8558:98;;;;-1:-1:-1;;;8558:98:0;;10268:2:3;8558:98:0;;;10250:21:3;10307:2;10287:18;;;10280:30;-1:-1:-1;;;10326:18:3;;;10319:50;10386:18;;8558:98:0;10066:344:3;8558:98:0;-1:-1:-1;;;;;8667:18:0;;;;;;:9;:18;;;;;:28;;8689:6;;8667:18;:28;;8689:6;;8667:28;:::i;:::-;;;;;;;;8722:6;8706:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;8744:37:0;;1806:25:3;;;8770:1:0;;-1:-1:-1;;;;;8744:37:0;;;;;1794:2:3;1779:18;8744:37:0;1660:177:3;14:173;82:20;;-1:-1:-1;;;;;131:31:3;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;656:548::-;768:4;797:2;826;815:9;808:21;858:6;852:13;901:6;896:2;885:9;881:18;874:34;926:1;936:140;950:6;947:1;944:13;936:140;;;1045:14;;;1041:23;;1035:30;1011:17;;;1030:2;1007:26;1000:66;965:10;;936:140;;;940:3;1125:1;1120:2;1111:6;1100:9;1096:22;1092:31;1085:42;1195:2;1188;1184:7;1179:2;1171:6;1167:15;1163:29;1152:9;1148:45;1144:54;1136:62;;;;656:548;;;;:::o;1209:254::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1377:29;1396:9;1377:29;:::i;:::-;1367:39;1453:2;1438:18;;;;1425:32;;-1:-1:-1;;;1209:254:3:o;1842:328::-;1919:6;1927;1935;1988:2;1976:9;1967:7;1963:23;1959:32;1956:52;;;2004:1;2001;1994:12;1956:52;2027:29;2046:9;2027:29;:::i;:::-;2017:39;;2075:38;2109:2;2098:9;2094:18;2075:38;:::i;:::-;2065:48;;2160:2;2149:9;2145:18;2132:32;2122:42;;1842:328;;;;;:::o;2572:180::-;2631:6;2684:2;2672:9;2663:7;2659:23;2655:32;2652:52;;;2700:1;2697;2690:12;2652:52;-1:-1:-1;2723:23:3;;2572:180;-1:-1:-1;2572:180:3:o;2757:118::-;2843:5;2836:13;2829:21;2822:5;2819:32;2809:60;;2865:1;2862;2855:12;2880:315;2945:6;2953;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3045:29;3064:9;3045:29;:::i;:::-;3035:39;;3124:2;3113:9;3109:18;3096:32;3137:28;3159:5;3137:28;:::i;:::-;3184:5;3174:15;;;2880:315;;;;;:::o;3200:316::-;3277:6;3285;3293;3346:2;3334:9;3325:7;3321:23;3317:32;3314:52;;;3362:1;3359;3352:12;3314:52;-1:-1:-1;;3385:23:3;;;3455:2;3440:18;;3427:32;;-1:-1:-1;3506:2:3;3491:18;;;3478:32;;3200:316;-1:-1:-1;3200:316:3:o;3800:260::-;3868:6;3876;3929:2;3917:9;3908:7;3904:23;3900:32;3897:52;;;3945:1;3942;3935:12;3897:52;3968:29;3987:9;3968:29;:::i;:::-;3958:39;;4016:38;4050:2;4039:9;4035:18;4016:38;:::i;:::-;4006:48;;3800:260;;;;;:::o;4065:343::-;4267:2;4249:21;;;4306:2;4286:18;;;4279:30;-1:-1:-1;;;4340:2:3;4325:18;;4318:49;4399:2;4384:18;;4065:343::o;4974:127::-;5035:10;5030:3;5026:20;5023:1;5016:31;5066:4;5063:1;5056:15;5090:4;5087:1;5080:15;5106:128;5173:9;;;5194:11;;;5191:37;;;5208:18;;:::i;5239:336::-;5441:2;5423:21;;;5480:2;5460:18;;;5453:30;-1:-1:-1;;;5514:2:3;5499:18;;5492:42;5566:2;5551:18;;5239:336::o;6208:184::-;6278:6;6331:2;6319:9;6310:7;6306:23;6302:32;6299:52;;;6347:1;6344;6337:12;6299:52;-1:-1:-1;6370:16:3;;6208:184;-1:-1:-1;6208:184:3:o;6676:245::-;6743:6;6796:2;6784:9;6775:7;6771:23;6767:32;6764:52;;;6812:1;6809;6802:12;6764:52;6844:9;6838:16;6863:28;6885:5;6863:28;:::i;8988:168::-;9061:9;;;9092;;9109:15;;;9103:22;;9089:37;9079:71;;9130:18;;:::i;9161:217::-;9201:1;9227;9217:132;;9271:10;9266:3;9262:20;9259:1;9252:31;9306:4;9303:1;9296:15;9334:4;9331:1;9324:15;9217:132;-1:-1:-1;9363:9:3;;9161:217::o

Swarm Source

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