ETH Price: $2,686.47 (+10.71%)
 

Overview

Max Total Supply

10,000,000 XCROW

Holders

541

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,083.6603702 XCROW

Value
$0.00
0x4c1d943f471eefd7b74d549c12c15570b08d218e
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

XCROW is a decentralized escrow platform, leveraging blockchain technology to offer secure, transparent, and efficient transaction services, bridging traditional trade with the digital age.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
XCROW

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;
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
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract XCROW is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "XCrow";
    string private constant _symbol = "XCROW";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0xCB14Dab20Db3903ae02F5eB492648Bea365A25BF);
    address payable private _marketingAddress = payable(0xb3B0C7D8072feeF85bA1EAcd95Fc59bf61883022);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 100000 * 10**9;
    uint256 public _maxWalletSize = 100000 * 10**9;
    uint256 public _swapTokensAtAmount = 50000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _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 tokenFromReflection(_rOwned[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)
    {
        _approve(_msgSender(), 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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");

        	if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function live(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blacklist(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setfees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 delete preTrader[accounts[i]];
        }
    }
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setfees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000019662386f26fc1000060001962000370565b620000279060001962000393565b60065560006008819055600a6009819055819055601e600b819055600c829055600d819055600e91909155600f55601380546001600160a01b031990811673cb14dab20db3903ae02f5eb492648bea365a25bf179091556014805490911673b3b0c7d8072feef85ba1eacd95fc59bf618830221790556016805461ffff60a81b1916600160b01b179055655af3107a40006017819055601855652d79883d2000601955348015620000d757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb9190620003b9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f9190620003b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a39190620003b9565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200036191815260200190565b60405180910390a350620003eb565b6000826200038e57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003b457634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003cc57600080fd5b81516001600160a01b0381168114620003e457600080fd5b9392505050565b61207280620003fb6000396000f3fe6080604052600436106101f25760003560e01c806370a082311161010d57806398a5c315116100a0578063bfd792841161006f578063bfd79284146105bd578063c3c8cd80146105ed578063c492f04614610602578063dd62ed3e14610622578063f2fde38b1461066857600080fd5b806398a5c3151461052d578063a9059cbb1461054d578063b5a652231461056d578063bdd795ef1461058d57600080fd5b80638da5cb5b116100dc5780638da5cb5b146104ab5780638f9a55c0146104c957806395d89b41146104df57806396338e811461050d57600080fd5b806370a0823114610433578063715018a6146104535780637d1db4a5146104685780637f2feddc1461047e57600080fd5b806349bd5a5e116101855780636b999053116101545780636b999053146103be5780636d7b3706146103de5780636d8aa8f8146103fe5780636fc3eaec1461041e57600080fd5b806349bd5a5e1461033e5780635c6e7f601461035e5780635d0044ca1461037e57806367aadb7e1461039e57600080fd5b806318160ddd116101c157806318160ddd146102c857806323b872dd146102ec5780632fd689e31461030c578063313ce5671461032257600080fd5b8063041f173f146101fe57806306fdde0314610220578063095ea7b3146102605780631694505e1461029057600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021e610219366004611b67565b610688565b005b34801561022c57600080fd5b506040805180820190915260058152645843726f7760d81b60208201525b6040516102579190611c2c565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611c81565b610727565b6040519015158152602001610257565b34801561029c57600080fd5b506015546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102d457600080fd5b50662386f26fc100005b604051908152602001610257565b3480156102f857600080fd5b50610280610307366004611cad565b61073e565b34801561031857600080fd5b506102de60195481565b34801561032e57600080fd5b5060405160098152602001610257565b34801561034a57600080fd5b506016546102b0906001600160a01b031681565b34801561036a57600080fd5b5061021e610379366004611cfe565b6107a7565b34801561038a57600080fd5b5061021e610399366004611d19565b6107ef565b3480156103aa57600080fd5b5061021e6103b9366004611d7e565b61081e565b3480156103ca57600080fd5b5061021e6103d9366004611dc0565b6108b6565b3480156103ea57600080fd5b5061021e6103f9366004611ddd565b610901565b34801561040a57600080fd5b5061021e610419366004611cfe565b61093f565b34801561042a57600080fd5b5061021e610987565b34801561043f57600080fd5b506102de61044e366004611dc0565b6109d2565b34801561045f57600080fd5b5061021e6109f4565b34801561047457600080fd5b506102de60175481565b34801561048a57600080fd5b506102de610499366004611dc0565b60116020526000908152604090205481565b3480156104b757600080fd5b506000546001600160a01b03166102b0565b3480156104d557600080fd5b506102de60185481565b3480156104eb57600080fd5b506040805180820190915260058152645843524f5760d81b602082015261024a565b34801561051957600080fd5b5061021e610528366004611d19565b610a68565b34801561053957600080fd5b5061021e610548366004611d19565b610a97565b34801561055957600080fd5b50610280610568366004611c81565b610ac6565b34801561057957600080fd5b5061021e610588366004611d7e565b610ad3565b34801561059957600080fd5b506102806105a8366004611dc0565b60126020526000908152604090205460ff1681565b3480156105c957600080fd5b506102806105d8366004611dc0565b60106020526000908152604090205460ff1681565b3480156105f957600080fd5b5061021e610b6f565b34801561060e57600080fd5b5061021e61061d366004611e0f565b610bc3565b34801561062e57600080fd5b506102de61063d366004611e63565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067457600080fd5b5061021e610683366004611dc0565b610c64565b6000546001600160a01b031633146106bb5760405162461bcd60e51b81526004016106b290611e9c565b60405180910390fd5b60005b8151811015610723576001601060008484815181106106df576106df611ed1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061071b81611efd565b9150506106be565b5050565b6000610734338484610d4e565b5060015b92915050565b600061074b848484610e72565b61079d843361079885604051806060016040528060288152602001612015602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611403565b610d4e565b5060019392505050565b6000546001600160a01b031633146107d15760405162461bcd60e51b81526004016106b290611e9c565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108195760405162461bcd60e51b81526004016106b290611e9c565b601855565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016106b290611e9c565b60005b818110156108b1576012600084848481811061086957610869611ed1565b905060200201602081019061087e9190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff19169055806108a981611efd565b91505061084b565b505050565b6000546001600160a01b031633146108e05760405162461bcd60e51b81526004016106b290611e9c565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b0316331461092b5760405162461bcd60e51b81526004016106b290611e9c565b600893909355600a91909155600955600b55565b6000546001600160a01b031633146109695760405162461bcd60e51b81526004016106b290611e9c565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806109bc57506014546001600160a01b0316336001600160a01b0316145b6109c557600080fd5b476109cf8161143d565b50565b6001600160a01b03811660009081526002602052604081205461073890611477565b6000546001600160a01b03163314610a1e5760405162461bcd60e51b81526004016106b290611e9c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016106b290611e9c565b601755565b6000546001600160a01b03163314610ac15760405162461bcd60e51b81526004016106b290611e9c565b601955565b6000610734338484610e72565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016106b290611e9c565b60005b818110156108b157600160126000858585818110610b2057610b20611ed1565b9050602002016020810190610b359190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b6781611efd565b915050610b00565b6013546001600160a01b0316336001600160a01b03161480610ba457506014546001600160a01b0316336001600160a01b0316145b610bad57600080fd5b6000610bb8306109d2565b90506109cf816114fb565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016106b290611e9c565b60005b82811015610c5e578160056000868685818110610c0f57610c0f611ed1565b9050602002016020810190610c249190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c5681611efd565b915050610bf0565b50505050565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b81526004016106b290611e9c565b6001600160a01b038116610cf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b2565b6001600160a01b038216610e115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106b2565b6001600160a01b038216610f385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106b2565b60008111610f9a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106b2565b6000546001600160a01b03848116911614801590610fc657506000546001600160a01b03838116911614155b8015610feb57506001600160a01b03831660009081526012602052604090205460ff16155b801561101057506001600160a01b03821660009081526012602052604090205460ff16155b156112fc57601654600160a01b900460ff166110b4576001600160a01b03831660009081526012602052604090205460ff166110b45760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106b2565b6017548111156111065760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106b2565b6001600160a01b03831660009081526010602052604090205460ff1615801561114857506001600160a01b03821660009081526010602052604090205460ff16155b6111a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106b2565b6016546001600160a01b0383811691161461122557601854816111c2846109d2565b6111cc9190611f16565b106112255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106b2565b6000611230306109d2565b6019546017549192508210159082106112495760175491505b8080156112605750601654600160a81b900460ff16155b801561127a57506016546001600160a01b03868116911614155b801561128f5750601654600160b01b900460ff165b80156112b457506001600160a01b03851660009081526005602052604090205460ff16155b80156112d957506001600160a01b03841660009081526005602052604090205460ff16155b156112f9576112e7826114fb565b4780156112f7576112f74761143d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061133e57506001600160a01b03831660009081526005602052604090205460ff165b8061137057506016546001600160a01b0385811691161480159061137057506016546001600160a01b03848116911614155b1561137d575060006113f7565b6016546001600160a01b0385811691161480156113a857506015546001600160a01b03848116911614155b156113ba57600854600c55600954600d555b6016546001600160a01b0384811691161480156113e557506015546001600160a01b03858116911614155b156113f757600a54600c55600b54600d555b610c5e84848484611675565b600081848411156114275760405162461bcd60e51b81526004016106b29190611c2c565b5060006114348486611f2e565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610723573d6000803e3d6000fd5b60006006548211156114de5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106b2565b60006114e86116a3565b90506114f483826116c6565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154357611543611ed1565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561159c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c09190611f45565b816001815181106115d3576115d3611ed1565b6001600160a01b0392831660209182029290920101526015546115f99130911684610d4e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611632908590600090869030904290600401611f62565b600060405180830381600087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168257611682611708565b61168d848484611736565b80610c5e57610c5e600e54600c55600f54600d55565b60008060006116b061182d565b90925090506116bf82826116c6565b9250505090565b60006114f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061186b565b600c541580156117185750600d54155b1561171f57565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061174887611899565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061177a90876118f6565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117a99086611938565b6001600160a01b0389166000908152600260205260409020556117cb81611997565b6117d584836119e1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181a91815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc1000061184782826116c6565b82101561186257505060065492662386f26fc1000092509050565b90939092509050565b6000818361188c5760405162461bcd60e51b81526004016106b29190611c2c565b5060006114348486611fd3565b60008060008060008060008060006118b68a600c54600d54611a05565b92509250925060006118c66116a3565b905060008060006118d98e878787611a5a565b919e509c509a509598509396509194505050505091939550919395565b60006114f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611403565b6000806119458385611f16565b9050838110156114f45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106b2565b60006119a16116a3565b905060006119af8383611aaa565b306000908152600260205260409020549091506119cc9082611938565b30600090815260026020526040902055505050565b6006546119ee90836118f6565b6006556007546119fe9082611938565b6007555050565b6000808080611a1f6064611a198989611aaa565b906116c6565b90506000611a326064611a198a89611aaa565b90506000611a4a82611a448b866118f6565b906118f6565b9992985090965090945050505050565b6000808080611a698886611aaa565b90506000611a778887611aaa565b90506000611a858888611aaa565b90506000611a9782611a4486866118f6565b939b939a50919850919650505050505050565b600082600003611abc57506000610738565b6000611ac88385611ff5565b905082611ad58583611fd3565b146114f45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106b2565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109cf57600080fd5b8035611b6281611b42565b919050565b60006020808385031215611b7a57600080fd5b823567ffffffffffffffff80821115611b9257600080fd5b818501915085601f830112611ba657600080fd5b813581811115611bb857611bb8611b2c565b8060051b604051601f19603f83011681018181108582111715611bdd57611bdd611b2c565b604052918252848201925083810185019188831115611bfb57600080fd5b938501935b82851015611c2057611c1185611b57565b84529385019392850192611c00565b98975050505050505050565b600060208083528351808285015260005b81811015611c5957858101830151858201604001528201611c3d565b81811115611c6b576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9457600080fd5b8235611c9f81611b42565b946020939093013593505050565b600080600060608486031215611cc257600080fd5b8335611ccd81611b42565b92506020840135611cdd81611b42565b929592945050506040919091013590565b80358015158114611b6257600080fd5b600060208284031215611d1057600080fd5b6114f482611cee565b600060208284031215611d2b57600080fd5b5035919050565b60008083601f840112611d4457600080fd5b50813567ffffffffffffffff811115611d5c57600080fd5b6020830191508360208260051b8501011115611d7757600080fd5b9250929050565b60008060208385031215611d9157600080fd5b823567ffffffffffffffff811115611da857600080fd5b611db485828601611d32565b90969095509350505050565b600060208284031215611dd257600080fd5b81356114f481611b42565b60008060008060808587031215611df357600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2457600080fd5b833567ffffffffffffffff811115611e3b57600080fd5b611e4786828701611d32565b9094509250611e5a905060208501611cee565b90509250925092565b60008060408385031215611e7657600080fd5b8235611e8181611b42565b91506020830135611e9181611b42565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f0f57611f0f611ee7565b5060010190565b60008219821115611f2957611f29611ee7565b500190565b600082821015611f4057611f40611ee7565b500390565b600060208284031215611f5757600080fd5b81516114f481611b42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb25784516001600160a01b031683529383019391830191600101611f8d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ff057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561200f5761200f611ee7565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e014485ee4aaad28d1cb21d41fa515b5e79c16e34f43891c370fe5fea477ebe64736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806370a082311161010d57806398a5c315116100a0578063bfd792841161006f578063bfd79284146105bd578063c3c8cd80146105ed578063c492f04614610602578063dd62ed3e14610622578063f2fde38b1461066857600080fd5b806398a5c3151461052d578063a9059cbb1461054d578063b5a652231461056d578063bdd795ef1461058d57600080fd5b80638da5cb5b116100dc5780638da5cb5b146104ab5780638f9a55c0146104c957806395d89b41146104df57806396338e811461050d57600080fd5b806370a0823114610433578063715018a6146104535780637d1db4a5146104685780637f2feddc1461047e57600080fd5b806349bd5a5e116101855780636b999053116101545780636b999053146103be5780636d7b3706146103de5780636d8aa8f8146103fe5780636fc3eaec1461041e57600080fd5b806349bd5a5e1461033e5780635c6e7f601461035e5780635d0044ca1461037e57806367aadb7e1461039e57600080fd5b806318160ddd116101c157806318160ddd146102c857806323b872dd146102ec5780632fd689e31461030c578063313ce5671461032257600080fd5b8063041f173f146101fe57806306fdde0314610220578063095ea7b3146102605780631694505e1461029057600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021e610219366004611b67565b610688565b005b34801561022c57600080fd5b506040805180820190915260058152645843726f7760d81b60208201525b6040516102579190611c2c565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611c81565b610727565b6040519015158152602001610257565b34801561029c57600080fd5b506015546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102d457600080fd5b50662386f26fc100005b604051908152602001610257565b3480156102f857600080fd5b50610280610307366004611cad565b61073e565b34801561031857600080fd5b506102de60195481565b34801561032e57600080fd5b5060405160098152602001610257565b34801561034a57600080fd5b506016546102b0906001600160a01b031681565b34801561036a57600080fd5b5061021e610379366004611cfe565b6107a7565b34801561038a57600080fd5b5061021e610399366004611d19565b6107ef565b3480156103aa57600080fd5b5061021e6103b9366004611d7e565b61081e565b3480156103ca57600080fd5b5061021e6103d9366004611dc0565b6108b6565b3480156103ea57600080fd5b5061021e6103f9366004611ddd565b610901565b34801561040a57600080fd5b5061021e610419366004611cfe565b61093f565b34801561042a57600080fd5b5061021e610987565b34801561043f57600080fd5b506102de61044e366004611dc0565b6109d2565b34801561045f57600080fd5b5061021e6109f4565b34801561047457600080fd5b506102de60175481565b34801561048a57600080fd5b506102de610499366004611dc0565b60116020526000908152604090205481565b3480156104b757600080fd5b506000546001600160a01b03166102b0565b3480156104d557600080fd5b506102de60185481565b3480156104eb57600080fd5b506040805180820190915260058152645843524f5760d81b602082015261024a565b34801561051957600080fd5b5061021e610528366004611d19565b610a68565b34801561053957600080fd5b5061021e610548366004611d19565b610a97565b34801561055957600080fd5b50610280610568366004611c81565b610ac6565b34801561057957600080fd5b5061021e610588366004611d7e565b610ad3565b34801561059957600080fd5b506102806105a8366004611dc0565b60126020526000908152604090205460ff1681565b3480156105c957600080fd5b506102806105d8366004611dc0565b60106020526000908152604090205460ff1681565b3480156105f957600080fd5b5061021e610b6f565b34801561060e57600080fd5b5061021e61061d366004611e0f565b610bc3565b34801561062e57600080fd5b506102de61063d366004611e63565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067457600080fd5b5061021e610683366004611dc0565b610c64565b6000546001600160a01b031633146106bb5760405162461bcd60e51b81526004016106b290611e9c565b60405180910390fd5b60005b8151811015610723576001601060008484815181106106df576106df611ed1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061071b81611efd565b9150506106be565b5050565b6000610734338484610d4e565b5060015b92915050565b600061074b848484610e72565b61079d843361079885604051806060016040528060288152602001612015602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611403565b610d4e565b5060019392505050565b6000546001600160a01b031633146107d15760405162461bcd60e51b81526004016106b290611e9c565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108195760405162461bcd60e51b81526004016106b290611e9c565b601855565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016106b290611e9c565b60005b818110156108b1576012600084848481811061086957610869611ed1565b905060200201602081019061087e9190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff19169055806108a981611efd565b91505061084b565b505050565b6000546001600160a01b031633146108e05760405162461bcd60e51b81526004016106b290611e9c565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b0316331461092b5760405162461bcd60e51b81526004016106b290611e9c565b600893909355600a91909155600955600b55565b6000546001600160a01b031633146109695760405162461bcd60e51b81526004016106b290611e9c565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806109bc57506014546001600160a01b0316336001600160a01b0316145b6109c557600080fd5b476109cf8161143d565b50565b6001600160a01b03811660009081526002602052604081205461073890611477565b6000546001600160a01b03163314610a1e5760405162461bcd60e51b81526004016106b290611e9c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016106b290611e9c565b601755565b6000546001600160a01b03163314610ac15760405162461bcd60e51b81526004016106b290611e9c565b601955565b6000610734338484610e72565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016106b290611e9c565b60005b818110156108b157600160126000858585818110610b2057610b20611ed1565b9050602002016020810190610b359190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b6781611efd565b915050610b00565b6013546001600160a01b0316336001600160a01b03161480610ba457506014546001600160a01b0316336001600160a01b0316145b610bad57600080fd5b6000610bb8306109d2565b90506109cf816114fb565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016106b290611e9c565b60005b82811015610c5e578160056000868685818110610c0f57610c0f611ed1565b9050602002016020810190610c249190611dc0565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c5681611efd565b915050610bf0565b50505050565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b81526004016106b290611e9c565b6001600160a01b038116610cf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b2565b6001600160a01b038216610e115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106b2565b6001600160a01b038216610f385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106b2565b60008111610f9a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106b2565b6000546001600160a01b03848116911614801590610fc657506000546001600160a01b03838116911614155b8015610feb57506001600160a01b03831660009081526012602052604090205460ff16155b801561101057506001600160a01b03821660009081526012602052604090205460ff16155b156112fc57601654600160a01b900460ff166110b4576001600160a01b03831660009081526012602052604090205460ff166110b45760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106b2565b6017548111156111065760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106b2565b6001600160a01b03831660009081526010602052604090205460ff1615801561114857506001600160a01b03821660009081526010602052604090205460ff16155b6111a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106b2565b6016546001600160a01b0383811691161461122557601854816111c2846109d2565b6111cc9190611f16565b106112255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106b2565b6000611230306109d2565b6019546017549192508210159082106112495760175491505b8080156112605750601654600160a81b900460ff16155b801561127a57506016546001600160a01b03868116911614155b801561128f5750601654600160b01b900460ff165b80156112b457506001600160a01b03851660009081526005602052604090205460ff16155b80156112d957506001600160a01b03841660009081526005602052604090205460ff16155b156112f9576112e7826114fb565b4780156112f7576112f74761143d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061133e57506001600160a01b03831660009081526005602052604090205460ff165b8061137057506016546001600160a01b0385811691161480159061137057506016546001600160a01b03848116911614155b1561137d575060006113f7565b6016546001600160a01b0385811691161480156113a857506015546001600160a01b03848116911614155b156113ba57600854600c55600954600d555b6016546001600160a01b0384811691161480156113e557506015546001600160a01b03858116911614155b156113f757600a54600c55600b54600d555b610c5e84848484611675565b600081848411156114275760405162461bcd60e51b81526004016106b29190611c2c565b5060006114348486611f2e565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610723573d6000803e3d6000fd5b60006006548211156114de5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106b2565b60006114e86116a3565b90506114f483826116c6565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154357611543611ed1565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561159c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c09190611f45565b816001815181106115d3576115d3611ed1565b6001600160a01b0392831660209182029290920101526015546115f99130911684610d4e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611632908590600090869030904290600401611f62565b600060405180830381600087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168257611682611708565b61168d848484611736565b80610c5e57610c5e600e54600c55600f54600d55565b60008060006116b061182d565b90925090506116bf82826116c6565b9250505090565b60006114f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061186b565b600c541580156117185750600d54155b1561171f57565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061174887611899565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061177a90876118f6565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117a99086611938565b6001600160a01b0389166000908152600260205260409020556117cb81611997565b6117d584836119e1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181a91815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc1000061184782826116c6565b82101561186257505060065492662386f26fc1000092509050565b90939092509050565b6000818361188c5760405162461bcd60e51b81526004016106b29190611c2c565b5060006114348486611fd3565b60008060008060008060008060006118b68a600c54600d54611a05565b92509250925060006118c66116a3565b905060008060006118d98e878787611a5a565b919e509c509a509598509396509194505050505091939550919395565b60006114f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611403565b6000806119458385611f16565b9050838110156114f45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106b2565b60006119a16116a3565b905060006119af8383611aaa565b306000908152600260205260409020549091506119cc9082611938565b30600090815260026020526040902055505050565b6006546119ee90836118f6565b6006556007546119fe9082611938565b6007555050565b6000808080611a1f6064611a198989611aaa565b906116c6565b90506000611a326064611a198a89611aaa565b90506000611a4a82611a448b866118f6565b906118f6565b9992985090965090945050505050565b6000808080611a698886611aaa565b90506000611a778887611aaa565b90506000611a858888611aaa565b90506000611a9782611a4486866118f6565b939b939a50919850919650505050505050565b600082600003611abc57506000610738565b6000611ac88385611ff5565b905082611ad58583611fd3565b146114f45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106b2565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109cf57600080fd5b8035611b6281611b42565b919050565b60006020808385031215611b7a57600080fd5b823567ffffffffffffffff80821115611b9257600080fd5b818501915085601f830112611ba657600080fd5b813581811115611bb857611bb8611b2c565b8060051b604051601f19603f83011681018181108582111715611bdd57611bdd611b2c565b604052918252848201925083810185019188831115611bfb57600080fd5b938501935b82851015611c2057611c1185611b57565b84529385019392850192611c00565b98975050505050505050565b600060208083528351808285015260005b81811015611c5957858101830151858201604001528201611c3d565b81811115611c6b576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9457600080fd5b8235611c9f81611b42565b946020939093013593505050565b600080600060608486031215611cc257600080fd5b8335611ccd81611b42565b92506020840135611cdd81611b42565b929592945050506040919091013590565b80358015158114611b6257600080fd5b600060208284031215611d1057600080fd5b6114f482611cee565b600060208284031215611d2b57600080fd5b5035919050565b60008083601f840112611d4457600080fd5b50813567ffffffffffffffff811115611d5c57600080fd5b6020830191508360208260051b8501011115611d7757600080fd5b9250929050565b60008060208385031215611d9157600080fd5b823567ffffffffffffffff811115611da857600080fd5b611db485828601611d32565b90969095509350505050565b600060208284031215611dd257600080fd5b81356114f481611b42565b60008060008060808587031215611df357600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2457600080fd5b833567ffffffffffffffff811115611e3b57600080fd5b611e4786828701611d32565b9094509250611e5a905060208501611cee565b90509250925092565b60008060408385031215611e7657600080fd5b8235611e8181611b42565b91506020830135611e9181611b42565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f0f57611f0f611ee7565b5060010190565b60008219821115611f2957611f29611ee7565b500190565b600082821015611f4057611f40611ee7565b500390565b600060208284031215611f5757600080fd5b81516114f481611b42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb25784516001600160a01b031683529383019391830191600101611f8d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ff057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561200f5761200f611ee7565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e014485ee4aaad28d1cb21d41fa515b5e79c16e34f43891c370fe5fea477ebe64736f6c634300080e0033

Deployed Bytecode Sourcemap

4067:13964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12803:169;;;;;;;;;;-1:-1:-1;12803:169:0;;;;;:::i;:::-;;:::i;:::-;;6598:83;;;;;;;;;;-1:-1:-1;6668:5:0;;;;;;;;;;;;-1:-1:-1;;;6668:5:0;;;;6598:83;;;;;;;:::i;:::-;;;;;;;;7523:193;;;;;;;;;;-1:-1:-1;7523:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7523:193:0;2469:187:1;5452:41:0;;;;;;;;;;-1:-1:-1;5452:41:0;;;;-1:-1:-1;;;;;5452:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5452:41:0;2661:229:1;6875:95:0;;;;;;;;;;-1:-1:-1;4609:16:0;6875:95;;;3041:25:1;;;3029:2;3014:18;6875:95:0;2895:177:1;7724:446:0;;;;;;;;;;-1:-1:-1;7724:446:0;;;;;:::i;:::-;;:::i;5746:50::-;;;;;;;;;;;;;;;;6784:83;;;;;;;;;;-1:-1:-1;6784:83:0;;4283:1;3680:36:1;;3668:2;3653:18;6784:83:0;3538:184:1;5500:28:0;;;;;;;;;;-1:-1:-1;5500:28:0;;;;-1:-1:-1;;;;;5500:28:0;;;12213:95;;;;;;;;;;-1:-1:-1;12213:95:0;;;;;:::i;:::-;;:::i;17268:111::-;;;;;;;;;;-1:-1:-1;17268:111:0;;;;;:::i;:::-;;:::i;17832:196::-;;;;;;;;;;-1:-1:-1;17832:196:0;;;;;:::i;:::-;;:::i;12980:92::-;;;;;;;;;;-1:-1:-1;12980:92:0;;;;;:::i;:::-;;:::i;16478:292::-;;;;;;;;;;-1:-1:-1;16478:292:0;;;;;:::i;:::-;;:::i;17013:101::-;;;;;;;;;;-1:-1:-1;17013:101:0;;;;;:::i;:::-;;:::i;12560:235::-;;;;;;;;;;;;;:::i;6978:138::-;;;;;;;;;;-1:-1:-1;6978:138:0;;;;;:::i;:::-;;:::i;1554:148::-;;;;;;;;;;;;;:::i;5642:44::-;;;;;;;;;;;;;;;;5145:43;;;;;;;;;;-1:-1:-1;5145:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1340:79;;;;;;;;;;-1:-1:-1;1378:7:0;1405:6;-1:-1:-1;;;;;1405:6:0;1340:79;;5693:46;;;;;;;;;;;;;;;;6689:87;;;;;;;;;;-1:-1:-1;6761:7:0;;;;;;;;;;;;-1:-1:-1;;;6761:7:0;;;;6689:87;;17153:107;;;;;;;;;;-1:-1:-1;17153:107:0;;;;;:::i;:::-;;:::i;16822:139::-;;;;;;;;;;-1:-1:-1;16822:139:0;;;;;:::i;:::-;;:::i;7124:199::-;;;;;;;;;;-1:-1:-1;7124:199:0;;;;;:::i;:::-;;:::i;17629:195::-;;;;;;;;;;-1:-1:-1;17629:195:0;;;;;:::i;:::-;;:::i;5195:42::-;;;;;;;;;;-1:-1:-1;5195:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5107:36;;;;;;;;;;-1:-1:-1;5107:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12316:236;;;;;;;;;;;;;:::i;17387:234::-;;;;;;;;;;-1:-1:-1;17387:234:0;;;;;:::i;:::-;;:::i;7331:184::-;;;;;;;;;;-1:-1:-1;7331:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7480:18:0;;;7448:7;7480:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7331:184;1710:244;;;;;;;;;;-1:-1:-1;1710:244:0;;;;;:::i;:::-;;:::i;12803:169::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;;;;;;;;;12879:9:::1;12874:91;12898:5;:12;12894:1;:16;12874:91;;;12949:4;12932;:14;12937:5;12943:1;12937:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12932:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12932:14:0;:21;;-1:-1:-1;;12932:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12912:3;::::1;::::0;::::1;:::i;:::-;;;;12874:91;;;;12803:169:::0;:::o;7523:193::-;7625:4;7647:39;179:10;7670:7;7679:6;7647:8;:39::i;:::-;-1:-1:-1;7704:4:0;7523:193;;;;;:::o;7724:446::-;7856:4;7873:36;7883:6;7891:9;7902:6;7873:9;:36::i;:::-;7920:220;7943:6;179:10;7991:138;8047:6;7991:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7991:19:0;;;;;;:11;:19;;;;;;;;179:10;7991:33;;;;;;;;;;:37;:138::i;:::-;7920:8;:220::i;:::-;-1:-1:-1;8158:4:0;7724:446;;;;;:::o;12213:95::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;12274:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12274:26:0::1;-1:-1:-1::0;;;;12274:26:0;;::::1;::::0;;;::::1;::::0;;12213:95::o;17268:111::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17341:14:::1;:30:::0;17268:111::o;17832:196::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17919:9:::1;17915:106;17934:19:::0;;::::1;17915:106;;;17987:9;:22;17997:8;;18006:1;17997:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17987:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17987:22:0;17980:29;;-1:-1:-1;;17980:29:0::1;::::0;;17955:3;::::1;::::0;::::1;:::i;:::-;;;;17915:106;;;;17832:196:::0;;:::o;12980:92::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13044:12:0::1;13059:5;13044:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13044:20:0::1;::::0;;12980:92::o;16478:292::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;16613:14:::1;:30:::0;;;;16654:15:::1;:32:::0;;;;16697:12:::1;:26:::0;16734:13:::1;:28:::0;16478:292::o;17013:101::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17080:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17080:26:0::1;-1:-1:-1::0;;;;17080:26:0;;::::1;::::0;;;::::1;::::0;;17013:101::o;12560:235::-;12626:19;;-1:-1:-1;;;;;12626:19:0;179:10;-1:-1:-1;;;;;12610:35:0;;:72;;;-1:-1:-1;12665:17:0;;-1:-1:-1;;;;;12665:17:0;179:10;-1:-1:-1;;;;;12649:33:0;;12610:72;12602:81;;;;;;12723:21;12755:32;12723:21;12755:12;:32::i;:::-;12591:204;12560:235::o;6978:138::-;-1:-1:-1;;;;;7091:16:0;;7044:7;7091:16;;;:7;:16;;;;;;7071:37;;:19;:37::i;1554:148::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;1661:1:::1;1645:6:::0;;1624:40:::1;::::0;-1:-1:-1;;;;;1645:6:0;;::::1;::::0;1624:40:::1;::::0;1661:1;;1624:40:::1;1692:1;1675:19:::0;;-1:-1:-1;;;;;;1675:19:0::1;::::0;;1554:148::o;17153:107::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17226:12:::1;:26:::0;17153:107::o;16822:139::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;16913:19:::1;:40:::0;16822:139::o;7124:199::-;7229:4;7251:42;179:10;7275:9;7286:6;7251:9;:42::i;17629:195::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17715:9:::1;17711:106;17730:19:::0;;::::1;17711:106;;;17801:4;17776:9;:22;17786:8;;17795:1;17786:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17776:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17776:22:0;:29;;-1:-1:-1;;17776:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17751:3;::::1;::::0;::::1;:::i;:::-;;;;17711:106;;12316:236:::0;12382:19;;-1:-1:-1;;;;;12382:19:0;179:10;-1:-1:-1;;;;;12366:35:0;;:72;;;-1:-1:-1;12421:17:0;;-1:-1:-1;;;;;12421:17:0;179:10;-1:-1:-1;;;;;12405:33:0;;12366:72;12358:81;;;;;;12450:23;12476:24;12494:4;12476:9;:24::i;:::-;12450:50;;12511:33;12528:15;12511:16;:33::i;17387:234::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17504:9:::1;17500:114;17519:19:::0;;::::1;17500:114;;;17594:8;17560:18;:31;17579:8;;17588:1;17579:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17560:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17560:31:0;:42;;-1:-1:-1;;17560:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17540:3;::::1;::::0;::::1;:::i;:::-;;;;17500:114;;;;17387:234:::0;;;:::o;1710:244::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1799:22:0;::::1;1791:73;;;::::0;-1:-1:-1;;;1791:73:0;;7796:2:1;1791:73:0::1;::::0;::::1;7778:21:1::0;7835:2;7815:18;;;7808:30;7874:34;7854:18;;;7847:62;-1:-1:-1;;;7925:18:1;;;7918:36;7971:19;;1791:73:0::1;7594:402:1::0;1791:73:0::1;1901:6;::::0;;1880:38:::1;::::0;-1:-1:-1;;;;;1880:38:0;;::::1;::::0;1901:6;::::1;::::0;1880:38:::1;::::0;::::1;1929:6;:17:::0;;-1:-1:-1;;;;;;1929:17:0::1;-1:-1:-1::0;;;;;1929:17:0;;;::::1;::::0;;;::::1;::::0;;1710:244::o;8861:369::-;-1:-1:-1;;;;;8988:19:0;;8980:68;;;;-1:-1:-1;;;8980:68:0;;8203:2:1;8980:68:0;;;8185:21:1;8242:2;8222:18;;;8215:30;8281:34;8261:18;;;8254:62;-1:-1:-1;;;8332:18:1;;;8325:34;8376:19;;8980:68:0;8001:400:1;8980:68:0;-1:-1:-1;;;;;9067:21:0;;9059:68;;;;-1:-1:-1;;;9059:68:0;;8608:2:1;9059:68:0;;;8590:21:1;8647:2;8627:18;;;8620:30;8686:34;8666:18;;;8659:62;-1:-1:-1;;;8737:18:1;;;8730:32;8779:19;;9059:68:0;8406:398:1;9059:68:0;-1:-1:-1;;;;;9138:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9190:32;;3041:25:1;;;9190:32:0;;3014:18:1;9190:32:0;;;;;;;8861:369;;;:::o;9238:2369::-;-1:-1:-1;;;;;9360:18:0;;9352:68;;;;-1:-1:-1;;;9352:68:0;;9011:2:1;9352:68:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;-1:-1:-1;;;9140:18:1;;;9133:35;9185:19;;9352:68:0;8809:401:1;9352:68:0;-1:-1:-1;;;;;9439:16:0;;9431:64;;;;-1:-1:-1;;;9431:64:0;;9417:2:1;9431:64:0;;;9399:21:1;9456:2;9436:18;;;9429:30;9495:34;9475:18;;;9468:62;-1:-1:-1;;;9546:18:1;;;9539:33;9589:19;;9431:64:0;9215:399:1;9431:64:0;9523:1;9514:6;:10;9506:64;;;;-1:-1:-1;;;9506:64:0;;9821:2:1;9506:64:0;;;9803:21:1;9860:2;9840:18;;;9833:30;9899:34;9879:18;;;9872:62;-1:-1:-1;;;9950:18:1;;;9943:39;9999:19;;9506:64:0;9619:405:1;9506:64:0;1378:7;1405:6;-1:-1:-1;;;;;9588:15:0;;;1405:6;;9588:15;;;;:32;;-1:-1:-1;1378:7:0;1405:6;-1:-1:-1;;;;;9607:13:0;;;1405:6;;9607:13;;9588:32;:52;;;;-1:-1:-1;;;;;;9625:15:0;;;;;;:9;:15;;;;;;;;9624:16;9588:52;:70;;;;-1:-1:-1;;;;;;9645:13:0;;;;;;:9;:13;;;;;;;;9644:14;9588:70;9584:1297;;;9715:11;;-1:-1:-1;;;9715:11:0;;;;9710:144;;-1:-1:-1;;;;;9755:15:0;;;;;;:9;:15;;;;;;;;9747:91;;;;-1:-1:-1;;;9747:91:0;;10231:2:1;9747:91:0;;;10213:21:1;10270:2;10250:18;;;10243:30;10309:34;10289:18;;;10282:62;10380:33;10360:18;;;10353:61;10431:19;;9747:91:0;10029:427:1;9747:91:0;9888:12;;9878:6;:22;;9870:63;;;;-1:-1:-1;;;9870:63:0;;10663:2:1;9870:63:0;;;10645:21:1;10702:2;10682:18;;;10675:30;10741;10721:18;;;10714:58;10789:18;;9870:63:0;10461:352:1;9870:63:0;-1:-1:-1;;;;;9957:10:0;;;;;;:4;:10;;;;;;;;9956:11;:24;;;;-1:-1:-1;;;;;;9972:8:0;;;;;;:4;:8;;;;;;;;9971:9;9956:24;9948:72;;;;-1:-1:-1;;;9948:72:0;;11020:2:1;9948:72:0;;;11002:21:1;11059:2;11039:18;;;11032:30;11098:34;11078:18;;;11071:62;-1:-1:-1;;;11149:18:1;;;11142:33;11192:19;;9948:72:0;10818:399:1;9948:72:0;10046:13;;-1:-1:-1;;;;;10040:19:0;;;10046:13;;10040:19;10037:146;;10113:14;;10104:6;10088:13;10098:2;10088:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10080:87;;;;-1:-1:-1;;;10080:87:0;;11557:2:1;10080:87:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:33;11729:19;;10080:87:0;11355:399:1;10080:87:0;10199:28;10230:24;10248:4;10230:9;:24::i;:::-;10308:19;;10371:12;;10199:55;;-1:-1:-1;10284:43:0;;;;10347:36;;10344:124;;10440:12;;10417:35;;10344:124;10488:7;:18;;;;-1:-1:-1;10500:6:0;;-1:-1:-1;;;10500:6:0;;;;10499:7;10488:18;:43;;;;-1:-1:-1;10518:13:0;;-1:-1:-1;;;;;10510:21:0;;;10518:13;;10510:21;;10488:43;:58;;;;-1:-1:-1;10535:11:0;;-1:-1:-1;;;10535:11:0;;;;10488:58;:87;;;;-1:-1:-1;;;;;;10551:24:0;;;;;;:18;:24;;;;;;;;10550:25;10488:87;:114;;;;-1:-1:-1;;;;;;10580:22:0;;;;;;:18;:22;;;;;;;;10579:23;10488:114;10484:386;;;10623:38;10640:20;10623:16;:38::i;:::-;10709:21;10753:22;;10749:106;;10800:35;10813:21;10800:12;:35::i;:::-;10604:266;10484:386;9660:1221;;9584:1297;-1:-1:-1;;;;;10957:24:0;;10893:12;10957:24;;;:18;:24;;;;;;10908:4;;10957:24;;;:50;;-1:-1:-1;;;;;;10985:22:0;;;;;;:18;:22;;;;;;;;10957:50;10956:102;;;-1:-1:-1;11021:13:0;;-1:-1:-1;;;;;11013:21:0;;;11021:13;;11013:21;;;;:44;;-1:-1:-1;11044:13:0;;-1:-1:-1;;;;;11038:19:0;;;11044:13;;11038:19;;11013:44;10952:594;;;-1:-1:-1;11085:5:0;10952:594;;;11168:13;;-1:-1:-1;;;;;11160:21:0;;;11168:13;;11160:21;:55;;;;-1:-1:-1;11199:15:0;;-1:-1:-1;;;;;11185:30:0;;;11199:15;;11185:30;;11160:55;11157:162;;;11248:14;;11236:9;:26;11291:12;;11281:7;:22;11157:162;11378:13;;-1:-1:-1;;;;;11372:19:0;;;11378:13;;11372:19;:55;;;;-1:-1:-1;11411:15:0;;-1:-1:-1;;;;;11395:32:0;;;11411:15;;11395:32;;11372:55;11368:165;;;11460:15;;11448:9;:27;11504:13;;11494:7;:23;11368:165;11558:41;11573:4;11579:2;11583:6;11591:7;11558:14;:41::i;2318:224::-;2438:7;2474:12;2466:6;;;;2458:29;;;;-1:-1:-1;;;2458:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2498:9:0;2510:5;2514:1;2510;:5;:::i;:::-;2498:17;2318:224;-1:-1:-1;;;;;2318:224:0:o;12106:99::-;12163:17;;:34;;-1:-1:-1;;;;;12163:17:0;;;;:34;;;;;12190:6;;12163:17;:34;:17;:34;12190:6;12163:17;:34;;;;;;;;;;;;;;;;;;;8178:323;8273:7;8331;;8320;:18;;8298:110;;;;-1:-1:-1;;;8298:110:0;;12091:2:1;8298:110:0;;;12073:21:1;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;-1:-1:-1;;;12220:18:1;;;12213:40;12270:19;;8298:110:0;11889:406:1;8298:110:0;8419:19;8441:10;:8;:10::i;:::-;8419:32;-1:-1:-1;8469:24:0;:7;8419:32;8469:11;:24::i;:::-;8462:31;8178:323;-1:-1:-1;;;8178:323:0:o;11615:483::-;5890:6;:13;;-1:-1:-1;;;;5890:13:0;-1:-1:-1;;;5890:13:0;;;11717:16:::1;::::0;;11731:1:::1;11717:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11717:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11717:16:0::1;11693:40;;11762:4;11744;11749:1;11744:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11744:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11788:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11788:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11744:7;;11788:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11778:4;11783:1;11778:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11778:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11853:15:::1;::::0;11821:62:::1;::::0;11838:4:::1;::::0;11853:15:::1;11871:11:::0;11821:8:::1;:62::i;:::-;11894:15;::::0;:196:::1;::::0;-1:-1:-1;;;11894:196:0;;-1:-1:-1;;;;;11894:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11975:11;;11894:15:::1;::::0;12017:4;;12044::::1;::::0;12064:15:::1;::::0;11894:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5926:6:0;:14;;-1:-1:-1;;;;5926:14:0;;;-1:-1:-1;;;;11615:483:0:o;13080:282::-;13236:7;13231:28;;13245:14;:12;:14::i;:::-;13270:44;13288:6;13296:9;13307:6;13270:17;:44::i;:::-;13330:7;13325:29;;13339:15;8792:17;;8780:9;:29;8830:15;;8820:7;:25;8736:117;16041:164;16083:7;16104:15;16121;16140:19;:17;:19::i;:::-;16103:56;;-1:-1:-1;16103:56:0;-1:-1:-1;16177:20:0;16103:56;;16177:11;:20::i;:::-;16170:27;;;;16041:164;:::o;2804:132::-;2862:7;2889:39;2893:1;2896;2889:39;;;;;;;;;;;;;;;;;:3;:39::i;8509:219::-;8556:9;;:14;:30;;;;-1:-1:-1;8574:7:0;;:12;8556:30;8552:43;;;8509:219::o;8552:43::-;8627:9;;;8607:17;:29;8665:7;;;8647:15;:25;-1:-1:-1;8685:13:0;;;;8709:11;8509:219::o;13370:610::-;13517:15;13547:23;13585:12;13612:23;13650:12;13677:13;13704:19;13715:7;13704:10;:19::i;:::-;-1:-1:-1;;;;;13752:15:0;;;;;;:7;:15;;;;;;13502:221;;-1:-1:-1;13502:221:0;;-1:-1:-1;13502:221:0;;-1:-1:-1;13502:221:0;-1:-1:-1;13502:221:0;-1:-1:-1;13502:221:0;-1:-1:-1;13752:28:0;;13502:221;13752:19;:28::i;:::-;-1:-1:-1;;;;;13734:15:0;;;;;;;:7;:15;;;;;;:46;;;;13812:18;;;;;;;:39;;13835:15;13812:22;:39::i;:::-;-1:-1:-1;;;;;13791:18:0;;;;;;:7;:18;;;;;:60;13862:16;13872:5;13862:9;:16::i;:::-;13889:23;13901:4;13907;13889:11;:23::i;:::-;13945:9;-1:-1:-1;;;;;13928:44:0;13937:6;-1:-1:-1;;;;;13928:44:0;;13956:15;13928:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;13928:44:0;;;;;;;;13491:489;;;;;;13370:610;;;:::o;16213:257::-;16311:7;;16264;;;;4609:16;16379:20;16311:7;4609:16;16379:11;:20::i;:::-;16369:7;:30;16365:61;;;-1:-1:-1;;16409:7:0;;;4609:16;;-1:-1:-1;16213:257:0;-1:-1:-1;16213:257:0:o;16365:61::-;16445:7;;16454;;-1:-1:-1;16213:257:0;-1:-1:-1;16213:257:0:o;2944:223::-;3064:7;3099:12;3092:5;3084:28;;;;-1:-1:-1;;;3084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3123:9:0;3135:5;3139:1;3135;:5;:::i;14399:615::-;14499:7;14521;14543;14565;14587;14609;14645:23;14670:12;14684:13;14714:40;14726:7;14735:9;;14746:7;;14714:11;:40::i;:::-;14644:110;;;;;;14765:19;14787:10;:8;:10::i;:::-;14765:32;;14809:15;14826:23;14851:12;14880:46;14892:7;14901:4;14907:5;14914:11;14880;:46::i;:::-;14808:118;;-1:-1:-1;14808:118:0;-1:-1:-1;14808:118:0;-1:-1:-1;14977:15:0;;-1:-1:-1;14994:4:0;;-1:-1:-1;15000:5:0;;-1:-1:-1;;;;;14399:615:0;;;;;;;:::o;2174:136::-;2232:7;2259:43;2263:1;2266;2259:43;;;;;;;;;;;;;;;;;:3;:43::i;1987:179::-;2045:7;;2077:5;2081:1;2077;:5;:::i;:::-;2065:17;;2106:1;2101;:6;;2093:46;;;;-1:-1:-1;;;2093:46:0;;13965:2:1;2093:46:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:29;14023:18;;;14016:57;14090:18;;2093:46:0;13763:351:1;13988:211:0;14041:19;14063:10;:8;:10::i;:::-;14041:32;-1:-1:-1;14084:13:0;14100:22;:5;14041:32;14100:9;:22::i;:::-;14174:4;14158:22;;;;:7;:22;;;;;;14084:38;;-1:-1:-1;14158:33:0;;14084:38;14158:26;:33::i;:::-;14149:4;14133:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13988:211:0:o;14207:147::-;14285:7;;:17;;14297:4;14285:11;:17::i;:::-;14275:7;:27;14326:10;;:20;;14341:4;14326:14;:20::i;:::-;14313:10;:33;-1:-1:-1;;14207:147:0:o;15022:469::-;15191:7;;;;15285:30;15311:3;15285:21;:7;15297:8;15285:11;:21::i;:::-;:25;;:30::i;:::-;15270:45;-1:-1:-1;15326:13:0;15342:28;15366:3;15342:19;:7;15354:6;15342:11;:19::i;:28::-;15326:44;-1:-1:-1;15381:23:0;15407:28;15326:44;15407:17;:7;15419:4;15407:11;:17::i;:::-;:21;;:28::i;:::-;15381:54;15471:4;;-1:-1:-1;15477:5:0;;-1:-1:-1;15022:469:0;;-1:-1:-1;;;;;15022:469:0:o;15499:534::-;15693:7;;;;15790:24;:7;15802:11;15790;:24::i;:::-;15772:42;-1:-1:-1;15825:12:0;15840:21;:4;15849:11;15840:8;:21::i;:::-;15825:36;-1:-1:-1;15872:13:0;15888:22;:5;15898:11;15888:9;:22::i;:::-;15872:38;-1:-1:-1;15921:23:0;15947:28;15872:38;15947:17;:7;15959:4;15947:11;:17::i;:28::-;15994:7;;;;-1:-1:-1;16020:4:0;;-1:-1:-1;15499:534:0;;-1:-1:-1;;;;;;;15499:534:0:o;2550:246::-;2608:7;2632:1;2637;2632:6;2628:47;;-1:-1:-1;2662:1:0;2655:8;;2628:47;2685:9;2697:5;2701:1;2697;:5;:::i;:::-;2685:17;-1:-1:-1;2730:1:0;2721:5;2725:1;2685:17;2721:5;:::i;:::-;:10;2713:56;;;;-1:-1:-1;;;2713:56:0;;14494:2:1;2713:56:0;;;14476:21:1;14533:2;14513:18;;;14506:30;14572:34;14552:18;;;14545:62;-1:-1:-1;;;14623:18:1;;;14616:31;14664:19;;2713:56:0;14292:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:160::-;4000:20;;4056:13;;4049:21;4039:32;;4029:60;;4085:1;4082;4075:12;4100:180;4156:6;4209:2;4197:9;4188:7;4184:23;4180:32;4177:52;;;4225:1;4222;4215:12;4177:52;4248:26;4264:9;4248:26;:::i;4285:180::-;4344:6;4397:2;4385:9;4376:7;4372:23;4368:32;4365:52;;;4413:1;4410;4403:12;4365:52;-1:-1:-1;4436:23:1;;4285:180;-1:-1:-1;4285:180:1:o;4470:367::-;4533:8;4543:6;4597:3;4590:4;4582:6;4578:17;4574:27;4564:55;;4615:1;4612;4605:12;4564:55;-1:-1:-1;4638:20:1;;4681:18;4670:30;;4667:50;;;4713:1;4710;4703:12;4667:50;4750:4;4742:6;4738:17;4726:29;;4810:3;4803:4;4793:6;4790:1;4786:14;4778:6;4774:27;4770:38;4767:47;4764:67;;;4827:1;4824;4817:12;4764:67;4470:367;;;;;:::o;4842:437::-;4928:6;4936;4989:2;4977:9;4968:7;4964:23;4960:32;4957:52;;;5005:1;5002;4995:12;4957:52;5045:9;5032:23;5078:18;5070:6;5067:30;5064:50;;;5110:1;5107;5100:12;5064:50;5149:70;5211:7;5202:6;5191:9;5187:22;5149:70;:::i;:::-;5238:8;;5123:96;;-1:-1:-1;4842:437:1;-1:-1:-1;;;;4842:437:1:o;5284:247::-;5343:6;5396:2;5384:9;5375:7;5371:23;5367:32;5364:52;;;5412:1;5409;5402:12;5364:52;5451:9;5438:23;5470:31;5495:5;5470:31;:::i;5536:385::-;5622:6;5630;5638;5646;5699:3;5687:9;5678:7;5674:23;5670:33;5667:53;;;5716:1;5713;5706:12;5667:53;-1:-1:-1;;5739:23:1;;;5809:2;5794:18;;5781:32;;-1:-1:-1;5860:2:1;5845:18;;5832:32;;5911:2;5896:18;5883:32;;-1:-1:-1;5536:385:1;-1:-1:-1;5536:385:1:o;5926:505::-;6018:6;6026;6034;6087:2;6075:9;6066:7;6062:23;6058:32;6055:52;;;6103:1;6100;6093:12;6055:52;6143:9;6130:23;6176:18;6168:6;6165:30;6162:50;;;6208:1;6205;6198:12;6162:50;6247:70;6309:7;6300:6;6289:9;6285:22;6247:70;:::i;:::-;6336:8;;-1:-1:-1;6221:96:1;-1:-1:-1;6390:35:1;;-1:-1:-1;6421:2:1;6406:18;;6390:35;:::i;:::-;6380:45;;5926:505;;;;;:::o;6436:388::-;6504:6;6512;6565:2;6553:9;6544:7;6540:23;6536:32;6533:52;;;6581:1;6578;6571:12;6533:52;6620:9;6607:23;6639:31;6664:5;6639:31;:::i;:::-;6689:5;-1:-1:-1;6746:2:1;6731:18;;6718:32;6759:33;6718:32;6759:33;:::i;:::-;6811:7;6801:17;;;6436:388;;;;;:::o;6829:356::-;7031:2;7013:21;;;7050:18;;;7043:30;7109:34;7104:2;7089:18;;7082:62;7176:2;7161:18;;6829:356::o;7190:127::-;7251:10;7246:3;7242:20;7239:1;7232:31;7282:4;7279:1;7272:15;7306:4;7303:1;7296:15;7322:127;7383:10;7378:3;7374:20;7371:1;7364:31;7414:4;7411:1;7404:15;7438:4;7435:1;7428:15;7454:135;7493:3;7514:17;;;7511:43;;7534:18;;:::i;:::-;-1:-1:-1;7581:1:1;7570:13;;7454:135::o;11222:128::-;11262:3;11293:1;11289:6;11286:1;11283:13;11280:39;;;11299:18;;:::i;:::-;-1:-1:-1;11335:9:1;;11222:128::o;11759:125::-;11799:4;11827:1;11824;11821:8;11818:34;;;11832:18;;:::i;:::-;-1:-1:-1;11869:9:1;;11759:125::o;12300:251::-;12370:6;12423:2;12411:9;12402:7;12398:23;12394:32;12391:52;;;12439:1;12436;12429:12;12391:52;12471:9;12465:16;12490:31;12515:5;12490:31;:::i;12556:980::-;12818:4;12866:3;12855:9;12851:19;12897:6;12886:9;12879:25;12923:2;12961:6;12956:2;12945:9;12941:18;12934:34;13004:3;12999:2;12988:9;12984:18;12977:31;13028:6;13063;13057:13;13094:6;13086;13079:22;13132:3;13121:9;13117:19;13110:26;;13171:2;13163:6;13159:15;13145:29;;13192:1;13202:195;13216:6;13213:1;13210:13;13202:195;;;13281:13;;-1:-1:-1;;;;;13277:39:1;13265:52;;13372:15;;;;13337:12;;;;13313:1;13231:9;13202:195;;;-1:-1:-1;;;;;;;13453:32:1;;;;13448:2;13433:18;;13426:60;-1:-1:-1;;;13517:3:1;13502:19;13495:35;13414:3;12556:980;-1:-1:-1;;;12556:980:1:o;13541:217::-;13581:1;13607;13597:132;;13651:10;13646:3;13642:20;13639:1;13632:31;13686:4;13683:1;13676:15;13714:4;13711:1;13704:15;13597:132;-1:-1:-1;13743:9:1;;13541:217::o;14119:168::-;14159:7;14225:1;14221;14217:6;14213:14;14210:1;14207:21;14202:1;14195:9;14188:17;14184:45;14181:71;;;14232:18;;:::i;:::-;-1:-1:-1;14272:9:1;;14119:168::o

Swarm Source

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