ETH Price: $3,491.87 (+6.48%)
Gas: 8 Gwei

Token

UNO (1)
 

Overview

Max Total Supply

1 1

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.019532657 1

Value
$0.00
0xaa1151c5affa9ffee31f054eb718fb085a360b14
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:
UNO

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-31
*/

/*
UNO- The principle
1 token total supply.
*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.1;

 
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 internal _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 UNO is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "UNO";
    string private constant _symbol = "1";
    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 = 1* 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 0;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 0;
 
    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; 
    address payable private _developmentAddress = payable(0xFF25c8965559C6eAC359e0Ce7e0d0134f610919f); 
    address payable private _marketingAddress = payable(0xFF25c8965559C6eAC359e0Ce7e0d0134f610919f);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000);
 
    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()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "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.mul(3).div(5));
        _developmentAddress.transfer(amount.mul(2).div(5));
    }
 
    function setTrading(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 blockBots(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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be between 0% and 0%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "Buy tax must be between 0% and 99%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be between 0% and 0%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 99%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    function setMaxTxnAmount(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxTxAmount = (_tTotal * amountPercent ) / 100;
    }

    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

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

}

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":"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":"blockBots","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":[],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"}]

608060405262000016633b9aca0060001962000675565b62000024906000196200065b565b600655600060088190556009819055600a819055600b819055600c819055600d819055600e819055600f556012805473ff25c8965559c6eac359e0ce7e0d0134f610919f6001600160a01b0319918216811790925560138054909116909117905560158054600160b01b61ffff60a81b19909116179055620000d26064620000be633b9aca00600262000446602090811b62000d9917901c565b620004a660201b62000de51790919060201c565b601655620000fa6064620000be6002633b9aca006200044660201b62000d991790919060201c565b601755620001236103e8620000be6005633b9aca006200044660201b62000d991790919060201c565b6018553480156200013357600080fd5b50600062000140620004f0565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654600260006200019b620004f0565b6001600160a01b03168152602080820192909252604090810160002092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a015592600480840193829003018186803b1580156200021757600080fd5b505afa1580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025291906200053f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029b57600080fd5b505afa158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d691906200053f565b6040518363ffffffff1660e01b8152600401620002f592919062000568565b602060405180830381600087803b1580156200031057600080fd5b505af115801562000325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034b91906200053f565b601580546001600160a01b0319166001600160a01b03929092169190911790556001600560006200037b620004f4565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155601254821684528284208054861682179055601354909116835291208054909216179055620003ee620004f0565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef633b9aca0060405162000437919062000619565b60405180910390a350620006b8565b6000826200045757506000620004a0565b600062000465838562000639565b90508262000474858362000622565b146200049d5760405162461bcd60e51b81526004016200049490620005d8565b60405180910390fd5b90505b92915050565b60006200049d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200050360201b60201c565b3390565b6000546001600160a01b031690565b60008183620005275760405162461bcd60e51b815260040162000494919062000582565b50600062000536848662000622565b95945050505050565b60006020828403121562000551578081fd5b81516001600160a01b03811681146200049d578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015620005b05785810183015185820160400152820162000592565b81811115620005c25783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b600082620006345762000634620006a2565b500490565b60008160001904831182151516156200065657620006566200068c565b500290565b6000828210156200067057620006706200068c565b500390565b600082620006875762000687620006a2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b61226d80620006c86000396000f3fe6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146104f9578063dd62ed3e14610519578063ea1644d514610539578063f2fde38b14610559576101e2565b8063a2a957bb14610484578063a9059cbb146104a4578063bfd79284146104c4578063c3c8cd80146104e4576101e2565b80638f70ccf7116100d15780638f70ccf71461041a5780638f9a55c01461043a57806395d89b411461044f57806398a5c31514610464576101e2565b8063751039fc146103bb5780637d1db4a5146103d05780637f2feddc146103e55780638da5cb5b14610405576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461035157806370a0823114610366578063715018a61461038657806374010ece1461039b576101e2565b8063313ce567146102da57806349bd5a5e146102fc5780636b999053146103115780636d8aa8f814610331576101e2565b80631694505e116101b65780631694505e1461026157806318160ddd1461028357806323b872dd146102a55780632fd689e3146102c5576101e2565b8062b8cf2a146101e757806306fdde0314610209578063095ea7b314610234576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b50610207610202366004611a65565b610579565b005b34801561021557600080fd5b5061021e610631565b60405161022b9190611bad565b60405180910390f35b34801561024057600080fd5b5061025461024f3660046119bc565b61064e565b60405161022b9190611ba2565b34801561026d57600080fd5b5061027661066c565b60405161022b9190611b8e565b34801561028f57600080fd5b5061029861067b565b60405161022b91906120be565b3480156102b157600080fd5b506102546102c036600461197c565b610683565b3480156102d157600080fd5b5061029861070a565b3480156102e657600080fd5b506102ef610710565b60405161022b9190612137565b34801561030857600080fd5b50610276610715565b34801561031d57600080fd5b5061020761032c36600461190c565b610724565b34801561033d57600080fd5b5061020761034c366004611b2b565b61077a565b34801561035d57600080fd5b506102076107cd565b34801561037257600080fd5b5061029861038136600461190c565b610826565b34801561039257600080fd5b50610207610850565b3480156103a757600080fd5b506102076103b6366004611b45565b6108cf565b3480156103c757600080fd5b50610207610931565b3480156103dc57600080fd5b50610298610975565b3480156103f157600080fd5b5061029861040036600461190c565b61097b565b34801561041157600080fd5b5061027661098d565b34801561042657600080fd5b50610207610435366004611b2b565b61099c565b34801561044657600080fd5b506102986109ef565b34801561045b57600080fd5b5061021e6109f5565b34801561047057600080fd5b5061020761047f366004611b45565b610a10565b34801561049057600080fd5b5061020761049f366004611b5d565b610a4a565b3480156104b057600080fd5b506102546104bf3660046119bc565b610b11565b3480156104d057600080fd5b506102546104df36600461190c565b610b25565b3480156104f057600080fd5b50610207610b3a565b34801561050557600080fd5b506102076105143660046119e7565b610b9c565b34801561052557600080fd5b50610298610534366004611944565b610c56565b34801561054557600080fd5b50610207610554366004611b45565b610c81565b34801561056557600080fd5b5061020761057436600461190c565b610ce3565b610581610e27565b6000546001600160a01b039081169116146105b75760405162461bcd60e51b81526004016105ae90611eaa565b60405180910390fd5b60005b815181101561062d576001601060008484815181106105e957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610625816121b3565b9150506105ba565b5050565b604080518082019091526003815262554e4f60e81b602082015290565b600061066261065b610e27565b8484610e2b565b5060015b92915050565b6014546001600160a01b031681565b633b9aca0090565b6000610690848484610edf565b6107008461069c610e27565b6106fb85604051806060016040528060288152602001612210602891396001600160a01b038a166000908152600460205260408120906106da610e27565b6001600160a01b031681526020810191909152604001600020549190611282565b610e2b565b5060019392505050565b60185481565b600990565b6015546001600160a01b031681565b61072c610e27565b6000546001600160a01b039081169116146107595760405162461bcd60e51b81526004016105ae90611eaa565b6001600160a01b03166000908152601060205260409020805460ff19169055565b610782610e27565b6000546001600160a01b039081169116146107af5760405162461bcd60e51b81526004016105ae90611eaa565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b03166107e1610e27565b6001600160a01b0316148061081057506013546001600160a01b0316610805610e27565b6001600160a01b0316145b61081957600080fd5b47610823816112bc565b50565b6001600160a01b03811660009081526002602052604081205461084890611351565b90505b919050565b610858610e27565b6000546001600160a01b039081169116146108855760405162461bcd60e51b81526004016105ae90611eaa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6108d7610e27565b6000546001600160a01b039081169116146109045760405162461bcd60e51b81526004016105ae90611eaa565b6000811161091157600080fd5b606461092182633b9aca0061217d565b61092b919061215d565b60165550565b610939610e27565b6000546001600160a01b039081169116146109665760405162461bcd60e51b81526004016105ae90611eaa565b633b9aca006016819055601755565b60165481565b60116020526000908152604090205481565b6000546001600160a01b031690565b6109a4610e27565b6000546001600160a01b039081169116146109d15760405162461bcd60e51b81526004016105ae90611eaa565b60158054911515600160a01b0260ff60a01b19909216919091179055565b60175481565b6040805180820190915260018152603160f81b602082015290565b610a18610e27565b6000546001600160a01b03908116911614610a455760405162461bcd60e51b81526004016105ae90611eaa565b601855565b610a52610e27565b6000546001600160a01b03908116911614610a7f5760405162461bcd60e51b81526004016105ae90611eaa565b8315610a9d5760405162461bcd60e51b81526004016105ae90611f28565b6063821115610abe5760405162461bcd60e51b81526004016105ae9061207c565b8215610adc5760405162461bcd60e51b81526004016105ae90611e23565b6063811115610afd5760405162461bcd60e51b81526004016105ae90611ff5565b600893909355600a91909155600955600b55565b6000610662610b1e610e27565b8484610edf565b60106020526000908152604090205460ff1681565b6012546001600160a01b0316610b4e610e27565b6001600160a01b03161480610b7d57506013546001600160a01b0316610b72610e27565b6001600160a01b0316145b610b8657600080fd5b6000610b9130610826565b90506108238161138b565b610ba4610e27565b6000546001600160a01b03908116911614610bd15760405162461bcd60e51b81526004016105ae90611eaa565b60005b82811015610c50578160056000868685818110610c0157634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610c16919061190c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c48816121b3565b915050610bd4565b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610c89610e27565b6000546001600160a01b03908116911614610cb65760405162461bcd60e51b81526004016105ae90611eaa565b60008111610cc357600080fd5b6064610cd382633b9aca0061217d565b610cdd919061215d565b60175550565b610ceb610e27565b6000546001600160a01b03908116911614610d185760405162461bcd60e51b81526004016105ae90611eaa565b6001600160a01b038116610d3e5760405162461bcd60e51b81526004016105ae90611d21565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610da857506000610666565b6000610db4838561217d565b905082610dc1858361215d565b14610dde5760405162461bcd60e51b81526004016105ae90611e69565b9392505050565b6000610dde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611530565b3390565b6001600160a01b038316610e515760405162461bcd60e51b81526004016105ae90612038565b6001600160a01b038216610e775760405162461bcd60e51b81526004016105ae90611d67565b6001600160a01b0380841660008181526004602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ed29085906120be565b60405180910390a3505050565b6001600160a01b038316610f055760405162461bcd60e51b81526004016105ae90611f6d565b6001600160a01b038216610f2b5760405162461bcd60e51b81526004016105ae90611c00565b60008111610f4b5760405162461bcd60e51b81526004016105ae90611edf565b610f5361098d565b6001600160a01b0316836001600160a01b031614158015610f8d5750610f7761098d565b6001600160a01b0316826001600160a01b031614155b1561117b57601554600160a01b900460ff16610fdb57610fab61098d565b6001600160a01b0316836001600160a01b031614610fdb5760405162461bcd60e51b81526004016105ae90611c43565b601654811115610ffd5760405162461bcd60e51b81526004016105ae90611cea565b6001600160a01b03831660009081526010602052604090205460ff1615801561103f57506001600160a01b03821660009081526010602052604090205460ff16155b61105b5760405162461bcd60e51b81526004016105ae90611da9565b6015546001600160a01b038381169116146110a4576017548161107d84610826565b6110879190612145565b106110a45760405162461bcd60e51b81526004016105ae90611fb2565b60006110af30610826565b6018546016549192508210159082106110c85760165491505b8080156110df5750601554600160a81b900460ff16155b80156110f957506015546001600160a01b03868116911614155b801561110e5750601554600160b01b900460ff165b801561113357506001600160a01b03851660009081526005602052604090205460ff16155b801561115857506001600160a01b03841660009081526005602052604090205460ff16155b15611178576111668261138b565b47801561117657611176476112bc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806111bd57506001600160a01b03831660009081526005602052604090205460ff165b806111ef57506015546001600160a01b038581169116148015906111ef57506015546001600160a01b03848116911614155b156111fc57506000611276565b6015546001600160a01b03858116911614801561122757506014546001600160a01b03848116911614155b1561123957600854600c55600954600d555b6015546001600160a01b03848116911614801561126457506014546001600160a01b03858116911614155b1561127657600a54600c55600b54600d555b610c508484848461155e565b600081848411156112a65760405162461bcd60e51b81526004016105ae9190611bad565b5060006112b3848661219c565b95945050505050565b6013546001600160a01b03166108fc6112e160056112db856003610d99565b90610de5565b6040518115909202916000818181858888f19350505050158015611309573d6000803e3d6000fd5b506012546001600160a01b03166108fc61132960056112db856002610d99565b6040518115909202916000818181858888f1935050505015801561062d573d6000803e3d6000fd5b60006006548211156113755760405162461bcd60e51b81526004016105ae90611ca0565b600061137f611583565b9050610dde8382610de5565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d9190611928565b8160018151811061148e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526014546114b49130911684610e2b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ed9085906000908690309042906004016120c7565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600081836115515760405162461bcd60e51b81526004016105ae9190611bad565b5060006112b3848661215d565b8061156b5761156b6115a6565b6115768484846115d8565b80610c5057610c506116cd565b60008060006115906116db565b909250905061159f8282610de5565b9250505090565b600c541580156115b65750600d54155b156115c0576115d6565b600c8054600e55600d8054600f55600091829055555b565b6000806000806000806115ea87611716565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061161c9087611773565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461164b90866117b5565b6001600160a01b03891660009081526002602052604090205561166d816117e4565b611677848361182e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116ba91906120be565b60405180910390a3505050505050505050565b600e54600c55600f54600d55565b6006546000908190633b9aca006116f28282610de5565b82101561170c57600654633b9aca00935093505050611712565b90925090505b9091565b60008060008060008060008060006117338a600c54600d54611852565b9250925092506000611743611583565b905060008060006117568e8787876118a1565b919e509c509a509598509396509194505050505091939550919395565b6000610dde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611282565b6000806117c28385612145565b905083811015610dde5760405162461bcd60e51b81526004016105ae90611dec565b60006117ee611583565b905060006117fc8383610d99565b3060009081526002602052604090205490915061181990826117b5565b30600090815260026020526040902055505050565b60065461183b9083611773565b60065560075461184b90826117b5565b6007555050565b600080808061186660646112db8989610d99565b9050600061187960646112db8a89610d99565b905060006118918261188b8b86611773565b90611773565b9992985090965090945050505050565b60008080806118b08886610d99565b905060006118be8887610d99565b905060006118cc8888610d99565b905060006118de8261188b8686611773565b939b939a50919850919650505050505050565b803561084b816121fa565b8035801515811461084b57600080fd5b60006020828403121561191d578081fd5b8135610dde816121fa565b600060208284031215611939578081fd5b8151610dde816121fa565b60008060408385031215611956578081fd5b8235611961816121fa565b91506020830135611971816121fa565b809150509250929050565b600080600060608486031215611990578081fd5b833561199b816121fa565b925060208401356119ab816121fa565b929592945050506040919091013590565b600080604083850312156119ce578182fd5b82356119d9816121fa565b946020939093013593505050565b6000806000604084860312156119fb578283fd5b833567ffffffffffffffff80821115611a12578485fd5b818601915086601f830112611a25578485fd5b813581811115611a33578586fd5b8760208083028501011115611a46578586fd5b602092830195509350611a5c91860190506118fc565b90509250925092565b60006020808385031215611a77578182fd5b823567ffffffffffffffff80821115611a8e578384fd5b818501915085601f830112611aa1578384fd5b813581811115611ab357611ab36121e4565b838102604051601f19603f83011681018181108582111715611ad757611ad76121e4565b604052828152858101935084860182860187018a1015611af5578788fd5b8795505b83861015611b1e57611b0a816118f1565b855260019590950194938601938601611af9565b5098975050505050505050565b600060208284031215611b3c578081fd5b610dde826118fc565b600060208284031215611b56578081fd5b5035919050565b60008060008060808587031215611b72578081fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015611bd957858101830151858201604001528201611bbd565b81811115611bea5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252603f908201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060408201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b6020808252601c908201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526023908201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460408201526265642160e81b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526026908201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604082015265616e6420302560d01b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f4275792072657761726473206d757374206265206265747765656e20302520616040820152646e6420302560d81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b60208082526023908201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060408201526239392560e81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f42757920746178206d757374206265206265747765656e20302520616e642039604082015261392560f01b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156121165784516001600160a01b0316835293830193918301916001016120f1565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115612158576121586121ce565b500190565b60008261217857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612197576121976121ce565b500290565b6000828210156121ae576121ae6121ce565b500390565b60006000198214156121c7576121c76121ce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461082357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220938bd932a4c6e13bc3fe5c71f7c3a5f2292673ee4b7327f1a62a4d7c0fa4266664736f6c63430008010033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146104f9578063dd62ed3e14610519578063ea1644d514610539578063f2fde38b14610559576101e2565b8063a2a957bb14610484578063a9059cbb146104a4578063bfd79284146104c4578063c3c8cd80146104e4576101e2565b80638f70ccf7116100d15780638f70ccf71461041a5780638f9a55c01461043a57806395d89b411461044f57806398a5c31514610464576101e2565b8063751039fc146103bb5780637d1db4a5146103d05780637f2feddc146103e55780638da5cb5b14610405576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461035157806370a0823114610366578063715018a61461038657806374010ece1461039b576101e2565b8063313ce567146102da57806349bd5a5e146102fc5780636b999053146103115780636d8aa8f814610331576101e2565b80631694505e116101b65780631694505e1461026157806318160ddd1461028357806323b872dd146102a55780632fd689e3146102c5576101e2565b8062b8cf2a146101e757806306fdde0314610209578063095ea7b314610234576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b50610207610202366004611a65565b610579565b005b34801561021557600080fd5b5061021e610631565b60405161022b9190611bad565b60405180910390f35b34801561024057600080fd5b5061025461024f3660046119bc565b61064e565b60405161022b9190611ba2565b34801561026d57600080fd5b5061027661066c565b60405161022b9190611b8e565b34801561028f57600080fd5b5061029861067b565b60405161022b91906120be565b3480156102b157600080fd5b506102546102c036600461197c565b610683565b3480156102d157600080fd5b5061029861070a565b3480156102e657600080fd5b506102ef610710565b60405161022b9190612137565b34801561030857600080fd5b50610276610715565b34801561031d57600080fd5b5061020761032c36600461190c565b610724565b34801561033d57600080fd5b5061020761034c366004611b2b565b61077a565b34801561035d57600080fd5b506102076107cd565b34801561037257600080fd5b5061029861038136600461190c565b610826565b34801561039257600080fd5b50610207610850565b3480156103a757600080fd5b506102076103b6366004611b45565b6108cf565b3480156103c757600080fd5b50610207610931565b3480156103dc57600080fd5b50610298610975565b3480156103f157600080fd5b5061029861040036600461190c565b61097b565b34801561041157600080fd5b5061027661098d565b34801561042657600080fd5b50610207610435366004611b2b565b61099c565b34801561044657600080fd5b506102986109ef565b34801561045b57600080fd5b5061021e6109f5565b34801561047057600080fd5b5061020761047f366004611b45565b610a10565b34801561049057600080fd5b5061020761049f366004611b5d565b610a4a565b3480156104b057600080fd5b506102546104bf3660046119bc565b610b11565b3480156104d057600080fd5b506102546104df36600461190c565b610b25565b3480156104f057600080fd5b50610207610b3a565b34801561050557600080fd5b506102076105143660046119e7565b610b9c565b34801561052557600080fd5b50610298610534366004611944565b610c56565b34801561054557600080fd5b50610207610554366004611b45565b610c81565b34801561056557600080fd5b5061020761057436600461190c565b610ce3565b610581610e27565b6000546001600160a01b039081169116146105b75760405162461bcd60e51b81526004016105ae90611eaa565b60405180910390fd5b60005b815181101561062d576001601060008484815181106105e957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610625816121b3565b9150506105ba565b5050565b604080518082019091526003815262554e4f60e81b602082015290565b600061066261065b610e27565b8484610e2b565b5060015b92915050565b6014546001600160a01b031681565b633b9aca0090565b6000610690848484610edf565b6107008461069c610e27565b6106fb85604051806060016040528060288152602001612210602891396001600160a01b038a166000908152600460205260408120906106da610e27565b6001600160a01b031681526020810191909152604001600020549190611282565b610e2b565b5060019392505050565b60185481565b600990565b6015546001600160a01b031681565b61072c610e27565b6000546001600160a01b039081169116146107595760405162461bcd60e51b81526004016105ae90611eaa565b6001600160a01b03166000908152601060205260409020805460ff19169055565b610782610e27565b6000546001600160a01b039081169116146107af5760405162461bcd60e51b81526004016105ae90611eaa565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b03166107e1610e27565b6001600160a01b0316148061081057506013546001600160a01b0316610805610e27565b6001600160a01b0316145b61081957600080fd5b47610823816112bc565b50565b6001600160a01b03811660009081526002602052604081205461084890611351565b90505b919050565b610858610e27565b6000546001600160a01b039081169116146108855760405162461bcd60e51b81526004016105ae90611eaa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6108d7610e27565b6000546001600160a01b039081169116146109045760405162461bcd60e51b81526004016105ae90611eaa565b6000811161091157600080fd5b606461092182633b9aca0061217d565b61092b919061215d565b60165550565b610939610e27565b6000546001600160a01b039081169116146109665760405162461bcd60e51b81526004016105ae90611eaa565b633b9aca006016819055601755565b60165481565b60116020526000908152604090205481565b6000546001600160a01b031690565b6109a4610e27565b6000546001600160a01b039081169116146109d15760405162461bcd60e51b81526004016105ae90611eaa565b60158054911515600160a01b0260ff60a01b19909216919091179055565b60175481565b6040805180820190915260018152603160f81b602082015290565b610a18610e27565b6000546001600160a01b03908116911614610a455760405162461bcd60e51b81526004016105ae90611eaa565b601855565b610a52610e27565b6000546001600160a01b03908116911614610a7f5760405162461bcd60e51b81526004016105ae90611eaa565b8315610a9d5760405162461bcd60e51b81526004016105ae90611f28565b6063821115610abe5760405162461bcd60e51b81526004016105ae9061207c565b8215610adc5760405162461bcd60e51b81526004016105ae90611e23565b6063811115610afd5760405162461bcd60e51b81526004016105ae90611ff5565b600893909355600a91909155600955600b55565b6000610662610b1e610e27565b8484610edf565b60106020526000908152604090205460ff1681565b6012546001600160a01b0316610b4e610e27565b6001600160a01b03161480610b7d57506013546001600160a01b0316610b72610e27565b6001600160a01b0316145b610b8657600080fd5b6000610b9130610826565b90506108238161138b565b610ba4610e27565b6000546001600160a01b03908116911614610bd15760405162461bcd60e51b81526004016105ae90611eaa565b60005b82811015610c50578160056000868685818110610c0157634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610c16919061190c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c48816121b3565b915050610bd4565b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610c89610e27565b6000546001600160a01b03908116911614610cb65760405162461bcd60e51b81526004016105ae90611eaa565b60008111610cc357600080fd5b6064610cd382633b9aca0061217d565b610cdd919061215d565b60175550565b610ceb610e27565b6000546001600160a01b03908116911614610d185760405162461bcd60e51b81526004016105ae90611eaa565b6001600160a01b038116610d3e5760405162461bcd60e51b81526004016105ae90611d21565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610da857506000610666565b6000610db4838561217d565b905082610dc1858361215d565b14610dde5760405162461bcd60e51b81526004016105ae90611e69565b9392505050565b6000610dde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611530565b3390565b6001600160a01b038316610e515760405162461bcd60e51b81526004016105ae90612038565b6001600160a01b038216610e775760405162461bcd60e51b81526004016105ae90611d67565b6001600160a01b0380841660008181526004602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ed29085906120be565b60405180910390a3505050565b6001600160a01b038316610f055760405162461bcd60e51b81526004016105ae90611f6d565b6001600160a01b038216610f2b5760405162461bcd60e51b81526004016105ae90611c00565b60008111610f4b5760405162461bcd60e51b81526004016105ae90611edf565b610f5361098d565b6001600160a01b0316836001600160a01b031614158015610f8d5750610f7761098d565b6001600160a01b0316826001600160a01b031614155b1561117b57601554600160a01b900460ff16610fdb57610fab61098d565b6001600160a01b0316836001600160a01b031614610fdb5760405162461bcd60e51b81526004016105ae90611c43565b601654811115610ffd5760405162461bcd60e51b81526004016105ae90611cea565b6001600160a01b03831660009081526010602052604090205460ff1615801561103f57506001600160a01b03821660009081526010602052604090205460ff16155b61105b5760405162461bcd60e51b81526004016105ae90611da9565b6015546001600160a01b038381169116146110a4576017548161107d84610826565b6110879190612145565b106110a45760405162461bcd60e51b81526004016105ae90611fb2565b60006110af30610826565b6018546016549192508210159082106110c85760165491505b8080156110df5750601554600160a81b900460ff16155b80156110f957506015546001600160a01b03868116911614155b801561110e5750601554600160b01b900460ff165b801561113357506001600160a01b03851660009081526005602052604090205460ff16155b801561115857506001600160a01b03841660009081526005602052604090205460ff16155b15611178576111668261138b565b47801561117657611176476112bc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806111bd57506001600160a01b03831660009081526005602052604090205460ff165b806111ef57506015546001600160a01b038581169116148015906111ef57506015546001600160a01b03848116911614155b156111fc57506000611276565b6015546001600160a01b03858116911614801561122757506014546001600160a01b03848116911614155b1561123957600854600c55600954600d555b6015546001600160a01b03848116911614801561126457506014546001600160a01b03858116911614155b1561127657600a54600c55600b54600d555b610c508484848461155e565b600081848411156112a65760405162461bcd60e51b81526004016105ae9190611bad565b5060006112b3848661219c565b95945050505050565b6013546001600160a01b03166108fc6112e160056112db856003610d99565b90610de5565b6040518115909202916000818181858888f19350505050158015611309573d6000803e3d6000fd5b506012546001600160a01b03166108fc61132960056112db856002610d99565b6040518115909202916000818181858888f1935050505015801561062d573d6000803e3d6000fd5b60006006548211156113755760405162461bcd60e51b81526004016105ae90611ca0565b600061137f611583565b9050610dde8382610de5565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143557600080fd5b505afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d9190611928565b8160018151811061148e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526014546114b49130911684610e2b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ed9085906000908690309042906004016120c7565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600081836115515760405162461bcd60e51b81526004016105ae9190611bad565b5060006112b3848661215d565b8061156b5761156b6115a6565b6115768484846115d8565b80610c5057610c506116cd565b60008060006115906116db565b909250905061159f8282610de5565b9250505090565b600c541580156115b65750600d54155b156115c0576115d6565b600c8054600e55600d8054600f55600091829055555b565b6000806000806000806115ea87611716565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061161c9087611773565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461164b90866117b5565b6001600160a01b03891660009081526002602052604090205561166d816117e4565b611677848361182e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116ba91906120be565b60405180910390a3505050505050505050565b600e54600c55600f54600d55565b6006546000908190633b9aca006116f28282610de5565b82101561170c57600654633b9aca00935093505050611712565b90925090505b9091565b60008060008060008060008060006117338a600c54600d54611852565b9250925092506000611743611583565b905060008060006117568e8787876118a1565b919e509c509a509598509396509194505050505091939550919395565b6000610dde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611282565b6000806117c28385612145565b905083811015610dde5760405162461bcd60e51b81526004016105ae90611dec565b60006117ee611583565b905060006117fc8383610d99565b3060009081526002602052604090205490915061181990826117b5565b30600090815260026020526040902055505050565b60065461183b9083611773565b60065560075461184b90826117b5565b6007555050565b600080808061186660646112db8989610d99565b9050600061187960646112db8a89610d99565b905060006118918261188b8b86611773565b90611773565b9992985090965090945050505050565b60008080806118b08886610d99565b905060006118be8887610d99565b905060006118cc8888610d99565b905060006118de8261188b8686611773565b939b939a50919850919650505050505050565b803561084b816121fa565b8035801515811461084b57600080fd5b60006020828403121561191d578081fd5b8135610dde816121fa565b600060208284031215611939578081fd5b8151610dde816121fa565b60008060408385031215611956578081fd5b8235611961816121fa565b91506020830135611971816121fa565b809150509250929050565b600080600060608486031215611990578081fd5b833561199b816121fa565b925060208401356119ab816121fa565b929592945050506040919091013590565b600080604083850312156119ce578182fd5b82356119d9816121fa565b946020939093013593505050565b6000806000604084860312156119fb578283fd5b833567ffffffffffffffff80821115611a12578485fd5b818601915086601f830112611a25578485fd5b813581811115611a33578586fd5b8760208083028501011115611a46578586fd5b602092830195509350611a5c91860190506118fc565b90509250925092565b60006020808385031215611a77578182fd5b823567ffffffffffffffff80821115611a8e578384fd5b818501915085601f830112611aa1578384fd5b813581811115611ab357611ab36121e4565b838102604051601f19603f83011681018181108582111715611ad757611ad76121e4565b604052828152858101935084860182860187018a1015611af5578788fd5b8795505b83861015611b1e57611b0a816118f1565b855260019590950194938601938601611af9565b5098975050505050505050565b600060208284031215611b3c578081fd5b610dde826118fc565b600060208284031215611b56578081fd5b5035919050565b60008060008060808587031215611b72578081fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015611bd957858101830151858201604001528201611bbd565b81811115611bea5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252603f908201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060408201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b6020808252601c908201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526023908201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460408201526265642160e81b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526026908201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604082015265616e6420302560d01b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f4275792072657761726473206d757374206265206265747765656e20302520616040820152646e6420302560d81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b60208082526023908201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060408201526239392560e81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526022908201527f42757920746178206d757374206265206265747765656e20302520616e642039604082015261392560f01b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156121165784516001600160a01b0316835293830193918301916001016120f1565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115612158576121586121ce565b500190565b60008261217857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612197576121976121ce565b500290565b6000828210156121ae576121ae6121ce565b500390565b60006000198214156121c7576121c76121ce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461082357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220938bd932a4c6e13bc3fe5c71f7c3a5f2292673ee4b7327f1a62a4d7c0fa4266664736f6c63430008010033

Deployed Bytecode Sourcemap

4143:14141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12920:169;;;;;;;;;;-1:-1:-1;12920:169:0;;;;;:::i;:::-;;:::i;:::-;;6639:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7571:193;;;;;;;;;;-1:-1:-1;7571:193:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5456:41::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6919:95::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7773:446::-;;;;;;;;;;-1:-1:-1;7773:446:0;;;;;:::i;:::-;;:::i;5771:61::-;;;;;;;;;;;;;:::i;6827:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5504:28::-;;;;;;;;;;;;;:::i;13098:92::-;;;;;;;;;;-1:-1:-1;13098:92:0;;;;;:::i;:::-;;:::i;17457:101::-;;;;;;;;;;-1:-1:-1;17457:101:0;;;;;:::i;:::-;;:::i;12676:235::-;;;;;;;;;;;;;:::i;7023:138::-;;;;;;;;;;-1:-1:-1;7023:138:0;;;;;:::i;:::-;;:::i;1617:148::-;;;;;;;;;;;;;:::i;17567:166::-;;;;;;;;;;-1:-1:-1;17567:166:0;;;;;:::i;:::-;;:::i;17918:118::-;;;;;;;;;;;;;:::i;5648:53::-;;;;;;;;;;;;;:::i;5195:43::-;;;;;;;;;;-1:-1:-1;5195:43:0;;;;;:::i;:::-;;:::i;1401:79::-;;;;;;;;;;;;;:::i;12321:101::-;;;;;;;;;;-1:-1:-1;12321:101:0;;;;;:::i;:::-;;:::i;5708:55::-;;;;;;;;;;;;;:::i;6731:87::-;;;;;;;;;;;;;:::i;17309:139::-;;;;;;;;;;-1:-1:-1;17309:139:0;;;;;:::i;:::-;;:::i;16607:693::-;;;;;;;;;;-1:-1:-1;16607:693:0;;;;;:::i;:::-;;:::i;7170:199::-;;;;;;;;;;-1:-1:-1;7170:199:0;;;;;:::i;:::-;;:::i;5157:36::-;;;;;;;;;;-1:-1:-1;5157:36:0;;;;;:::i;:::-;;:::i;12431:236::-;;;;;;;;;;;;;:::i;18045:234::-;;;;;;;;;;-1:-1:-1;18045:234:0;;;;;:::i;:::-;;:::i;7378:184::-;;;;;;;;;;-1:-1:-1;7378:184:0;;;;;:::i;:::-;;:::i;17741:169::-;;;;;;;;;;-1:-1:-1;17741:169:0;;;;;:::i;:::-;;:::i;1774:244::-;;;;;;;;;;-1:-1:-1;1774:244:0;;;;;:::i;:::-;;:::i;12920:169::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;;;;;;;;;12996:9:::1;12991:91;13015:5;:12;13011:1;:16;12991:91;;;13066:4;13049;:14;13054:5;13060:1;13054:8;;;;;;-1:-1:-1::0;;;13054:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13049:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13049:14:0;:21;;-1:-1:-1;;13049:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13029:3;::::1;::::0;::::1;:::i;:::-;;;;12991:91;;;;12920:169:::0;:::o;6639:83::-;6709:5;;;;;;;;;;;;-1:-1:-1;;;6709:5:0;;;;6639:83;:::o;7571:193::-;7673:4;7695:39;7704:12;:10;:12::i;:::-;7718:7;7727:6;7695:8;:39::i;:::-;-1:-1:-1;7752:4:0;7571:193;;;;;:::o;5456:41::-;;;-1:-1:-1;;;;;5456:41:0;;:::o;6919:95::-;4680:8;6919:95;:::o;7773:446::-;7905:4;7922:36;7932:6;7940:9;7951:6;7922:9;:36::i;:::-;7969:220;7992:6;8013:12;:10;:12::i;:::-;8040:138;8096:6;8040:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8040:19:0;;;;;;:11;:19;;;;;;8060:12;:10;:12::i;:::-;-1:-1:-1;;;;;8040:33:0;;;;;;;;;;;;-1:-1:-1;8040:33:0;;;:138;:37;:138::i;:::-;7969:8;:220::i;:::-;-1:-1:-1;8207:4:0;7773:446;;;;;:::o;5771:61::-;;;;:::o;6827:83::-;4353:1;6827:83;:::o;5504:28::-;;;-1:-1:-1;;;;;5504:28:0;;:::o;13098:92::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13162:12:0::1;13177:5;13162:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13162:20:0::1;::::0;;13098:92::o;17457:101::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;17524:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17524:26:0::1;-1:-1:-1::0;;;;17524:26:0;;::::1;::::0;;;::::1;::::0;;17457:101::o;12676:235::-;12742:19;;-1:-1:-1;;;;;12742:19:0;12726:12;:10;:12::i;:::-;-1:-1:-1;;;;;12726:35:0;;:72;;;-1:-1:-1;12781:17:0;;-1:-1:-1;;;;;12781:17:0;12765:12;:10;:12::i;:::-;-1:-1:-1;;;;;12765:33:0;;12726:72;12718:81;;;;;;12839:21;12871:32;12839:21;12871:12;:32::i;:::-;12676:235;:::o;7023:138::-;-1:-1:-1;;;;;7136:16:0;;7089:7;7136:16;;;:7;:16;;;;;;7116:37;;:19;:37::i;:::-;7109:44;;7023:138;;;;:::o;1617:148::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;1724:1:::1;1708:6:::0;;1687:40:::1;::::0;-1:-1:-1;;;;;1708:6:0;;::::1;::::0;1687:40:::1;::::0;1724:1;;1687:40:::1;1755:1;1738:19:::0;;-1:-1:-1;;;;;;1738:19:0::1;::::0;;1617:148::o;17567:166::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;17665:1:::1;17651:13;:15;17643:24;;;::::0;::::1;;17722:3;17694:23;17704:13:::0;4680:8:::1;17694:23;:::i;:::-;17693:32;;;;:::i;:::-;17678:12;:47:::0;-1:-1:-1;17567:166:0:o;17918:118::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;4680:8:::1;17971:12;:22:::0;;;18004:14:::1;:24:::0;17918:118::o;5648:53::-;;;;:::o;5195:43::-;;;;;;;;;;;;;:::o;1401:79::-;1439:7;1466:6;-1:-1:-1;;;;;1466:6:0;1401:79;:::o;12321:101::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;12388:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12388:26:0::1;-1:-1:-1::0;;;;12388:26:0;;::::1;::::0;;;::::1;::::0;;12321:101::o;5708:55::-;;;;:::o;6731:87::-;6803:7;;;;;;;;;;;;-1:-1:-1;;;6803:7:0;;;;6731:87;:::o;17309:139::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;17400:19:::1;:40:::0;17309:139::o;16607:693::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;16771:18;;16741:90:::1;;;;-1:-1:-1::0;;;16741:90:0::1;;;;;;;:::i;:::-;16885:2;16870:11;:17;;16842:84;;;;-1:-1:-1::0;;;16842:84:0::1;;;;;;;:::i;:::-;16968:19:::0;;16937:93:::1;;;;-1:-1:-1::0;;;16937:93:0::1;;;;;;;:::i;:::-;17086:2;17070:12;:18;;17041:87;;;;-1:-1:-1::0;;;17041:87:0::1;;;;;;;:::i;:::-;17141:14;:30:::0;;;;17182:15:::1;:32:::0;;;;17225:12:::1;:26:::0;17262:13:::1;:28:::0;16607:693::o;7170:199::-;7275:4;7297:42;7307:12;:10;:12::i;:::-;7321:9;7332:6;7297:9;:42::i;5157:36::-;;;;;;;;;;;;;;;:::o;12431:236::-;12497:19;;-1:-1:-1;;;;;12497:19:0;12481:12;:10;:12::i;:::-;-1:-1:-1;;;;;12481:35:0;;:72;;;-1:-1:-1;12536:17:0;;-1:-1:-1;;;;;12536:17:0;12520:12;:10;:12::i;:::-;-1:-1:-1;;;;;12520:33:0;;12481:72;12473:81;;;;;;12565:23;12591:24;12609:4;12591:9;:24::i;:::-;12565:50;;12626:33;12643:15;12626:16;:33::i;18045:234::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;18162:9:::1;18158:114;18177:19:::0;;::::1;18158:114;;;18252:8;18218:18;:31;18237:8;;18246:1;18237:11;;;;;-1:-1:-1::0;;;18237:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18218:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18218:31:0;:42;;-1:-1:-1;;18218:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18198:3;::::1;::::0;::::1;:::i;:::-;;;;18158:114;;;;18045:234:::0;;;:::o;7378:184::-;-1:-1:-1;;;;;7527:18:0;;;7495:7;7527:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7378:184::o;17741:169::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;17840:1:::1;17826:13;:15;17818:24;;;::::0;::::1;;17899:3;17871:23;17881:13:::0;4680:8:::1;17871:23;:::i;:::-;17870:32;;;;:::i;:::-;17853:14;:49:::0;-1:-1:-1;17741:169:0:o;1774:244::-;1539:12;:10;:12::i;:::-;1529:6;;-1:-1:-1;;;;;1529:6:0;;;:22;;;1521:67;;;;-1:-1:-1;;;1521:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1863:22:0;::::1;1855:73;;;;-1:-1:-1::0;;;1855:73:0::1;;;;;;;:::i;:::-;1965:6;::::0;;1944:38:::1;::::0;-1:-1:-1;;;;;1944:38:0;;::::1;::::0;1965:6;::::1;::::0;1944:38:::1;::::0;::::1;1993:6;:17:::0;;-1:-1:-1;;;;;;1993:17:0::1;-1:-1:-1::0;;;;;1993:17:0;;;::::1;::::0;;;::::1;::::0;;1774:244::o;2618:246::-;2676:7;2700:6;2696:47;;-1:-1:-1;2730:1:0;2723:8;;2696:47;2753:9;2765:5;2769:1;2765;:5;:::i;:::-;2753:17;-1:-1:-1;2798:1:0;2789:5;2793:1;2753:17;2789:5;:::i;:::-;:10;2781:56;;;;-1:-1:-1;;;2781:56:0;;;;;;;:::i;:::-;2855:1;2618:246;-1:-1:-1;;;2618:246:0:o;2873:132::-;2931:7;2958:39;2962:1;2965;2958:39;;;;;;;;;;;;;;;;;:3;:39::i;149:98::-;229:10;149:98;:::o;8916:369::-;-1:-1:-1;;;;;9043:19:0;;9035:68;;;;-1:-1:-1;;;9035:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9122:21:0;;9114:68;;;;-1:-1:-1;;;9114:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9193:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;9245:32;;;;;9223:6;;9245:32;:::i;:::-;;;;;;;;8916:369;;;:::o;9294:2343::-;-1:-1:-1;;;;;9416:18:0;;9408:68;;;;-1:-1:-1;;;9408:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9495:16:0;;9487:64;;;;-1:-1:-1;;;9487:64:0;;;;;;;:::i;:::-;9579:1;9570:6;:10;9562:64;;;;-1:-1:-1;;;9562:64:0;;;;;;;:::i;:::-;9652:7;:5;:7::i;:::-;-1:-1:-1;;;;;9644:15:0;:4;-1:-1:-1;;;;;9644:15:0;;;:32;;;;;9669:7;:5;:7::i;:::-;-1:-1:-1;;;;;9663:13:0;:2;-1:-1:-1;;;;;9663:13:0;;;9644:32;9640:1265;;;9734:11;;-1:-1:-1;;;9734:11:0;;;;9729:144;;9782:7;:5;:7::i;:::-;-1:-1:-1;;;;;9774:15:0;:4;-1:-1:-1;;;;;9774:15:0;;9766:91;;;;-1:-1:-1;;;9766:91:0;;;;;;;:::i;:::-;9908:12;;9898:6;:22;;9890:63;;;;-1:-1:-1;;;9890:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9977:10:0;;;;;;:4;:10;;;;;;;;9976:11;:24;;;;-1:-1:-1;;;;;;9992:8:0;;;;;;:4;:8;;;;;;;;9991:9;9976:24;9968:72;;;;-1:-1:-1;;;9968:72:0;;;;;;;:::i;:::-;10067:13;;-1:-1:-1;;;;;10061:19:0;;;10067:13;;10061:19;10058:146;;10134:14;;10125:6;10109:13;10119:2;10109:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10101:87;;;;-1:-1:-1;;;10101:87:0;;;;;;;:::i;:::-;10221:28;10252:24;10270:4;10252:9;:24::i;:::-;10330:19;;10394:12;;10221:55;;-1:-1:-1;10306:43:0;;;;10370:36;;10367:124;;10463:12;;10440:35;;10367:124;10512:7;:18;;;;-1:-1:-1;10524:6:0;;-1:-1:-1;;;10524:6:0;;;;10523:7;10512:18;:43;;;;-1:-1:-1;10542:13:0;;-1:-1:-1;;;;;10534:21:0;;;10542:13;;10534:21;;10512:43;:58;;;;-1:-1:-1;10559:11:0;;-1:-1:-1;;;10559:11:0;;;;10512:58;:87;;;;-1:-1:-1;;;;;;10575:24:0;;;;;;:18;:24;;;;;;;;10574:25;10512:87;:114;;;;-1:-1:-1;;;;;;10604:22:0;;;;;;:18;:22;;;;;;;;10603:23;10512:114;10508:386;;;10647:38;10664:20;10647:16;:38::i;:::-;10733:21;10777:22;;10773:106;;10824:35;10837:21;10824:12;:35::i;:::-;10508:386;;9640:1265;;;-1:-1:-1;;;;;10983:24:0;;10918:12;10983:24;;;:18;:24;;;;;;10933:4;;10983:24;;;:50;;-1:-1:-1;;;;;;11011:22:0;;;;;;:18;:22;;;;;;;;10983:50;10982:102;;;-1:-1:-1;11047:13:0;;-1:-1:-1;;;;;11039:21:0;;;11047:13;;11039:21;;;;:44;;-1:-1:-1;11070:13:0;;-1:-1:-1;;;;;11064:19:0;;;11070:13;;11064:19;;11039:44;10978:597;;;-1:-1:-1;11111:5:0;10978:597;;;11195:13;;-1:-1:-1;;;;;11187:21:0;;;11195:13;;11187:21;:55;;;;-1:-1:-1;11226:15:0;;-1:-1:-1;;;;;11212:30:0;;;11226:15;;11212:30;;11187:55;11184:162;;;11275:14;;11263:9;:26;11318:12;;11308:7;:22;11184:162;11406:13;;-1:-1:-1;;;;;11400:19:0;;;11406:13;;11400:19;:55;;;;-1:-1:-1;11439:15:0;;-1:-1:-1;;;;;11423:32:0;;;11439:15;;11423:32;;11400:55;11396:165;;;11488:15;;11476:9;:27;11532:13;;11522:7;:23;11396:165;11588:41;11603:4;11609:2;11613:6;11621:7;11588:14;:41::i;2385:224::-;2505:7;2541:12;2533:6;;;;2525:29;;;;-1:-1:-1;;;2525:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2565:9:0;2577:5;2581:1;2577;:5;:::i;:::-;2565:17;2385:224;-1:-1:-1;;;;;2385:224:0:o;12138:174::-;12195:17;;-1:-1:-1;;;;;12195:17:0;:48;12222:20;12240:1;12222:13;:6;12233:1;12222:10;:13::i;:::-;:17;;:20::i;:::-;12195:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12254:19:0;;-1:-1:-1;;;;;12254:19:0;:50;12283:20;12301:1;12283:13;:6;12294:1;12283:10;:13::i;:20::-;12254:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8228:323;8323:7;8381;;8370;:18;;8348:110;;;;-1:-1:-1;;;8348:110:0;;;;;;;:::i;:::-;8469:19;8491:10;:8;:10::i;:::-;8469:32;-1:-1:-1;8519:24:0;:7;8469:32;8519:11;:24::i;11646:483::-;5927:6;:13;;-1:-1:-1;;;;5927:13:0;-1:-1:-1;;;5927:13:0;;;11748:16:::1;::::0;;11762:1:::1;11748:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11748:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11748:16:0::1;11724:40;;11793:4;11775;11780:1;11775:7;;;;;;-1:-1:-1::0;;;11775:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11775:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11819:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11819:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11775:7;;11819:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11809:4;11814:1;11809:7;;;;;;-1:-1:-1::0;;;11809:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11809:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11884:15:::1;::::0;11852:62:::1;::::0;11869:4:::1;::::0;11884:15:::1;11902:11:::0;11852:8:::1;:62::i;:::-;11925:15;::::0;:196:::1;::::0;-1:-1:-1;;;11925:196:0;;-1:-1:-1;;;;;11925:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12006:11;;11925:15:::1;::::0;12048:4;;12075::::1;::::0;12095:15:::1;::::0;11925:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5963:6:0;:14;;-1:-1:-1;;;;5963:14:0;;;-1:-1:-1;;;;11646:483:0:o;3014:223::-;3134:7;3169:12;3162:5;3154:28;;;;-1:-1:-1;;;3154:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3193:9:0;3205:5;3209:1;3205;:5;:::i;13199:282::-;13355:7;13350:28;;13364:14;:12;:14::i;:::-;13389:44;13407:6;13415:9;13426:6;13389:17;:44::i;:::-;13449:7;13444:29;;13458:15;:13;:15::i;16168:164::-;16210:7;16231:15;16248;16267:19;:17;:19::i;:::-;16230:56;;-1:-1:-1;16230:56:0;-1:-1:-1;16304:20:0;16230:56;;16304:11;:20::i;:::-;16297:27;;;;16168:164;:::o;8560:221::-;8607:9;;:14;:30;;;;-1:-1:-1;8625:7:0;;:12;8607:30;8603:43;;;8639:7;;8603:43;8679:9;;;8659:17;:29;8717:7;;;8699:15;:25;-1:-1:-1;8738:13:0;;;;8762:11;8560:221;:::o;13490:610::-;13637:15;13667:23;13705:12;13732:23;13770:12;13797:13;13824:19;13835:7;13824:10;:19::i;:::-;-1:-1:-1;;;;;13872:15:0;;;;;;:7;:15;;;;;;13622:221;;-1:-1:-1;13622:221:0;;-1:-1:-1;13622:221:0;;-1:-1:-1;13622:221:0;-1:-1:-1;13622:221:0;-1:-1:-1;13622:221:0;-1:-1:-1;13872:28:0;;13622:221;13872:19;:28::i;:::-;-1:-1:-1;;;;;13854:15:0;;;;;;;:7;:15;;;;;;:46;;;;13932:18;;;;;;;:39;;13955:15;13932:22;:39::i;:::-;-1:-1:-1;;;;;13911:18:0;;;;;;:7;:18;;;;;:60;13982:16;13992:5;13982:9;:16::i;:::-;14009:23;14021:4;14027;14009:11;:23::i;:::-;14065:9;-1:-1:-1;;;;;14048:44:0;14057:6;-1:-1:-1;;;;;14048:44:0;;14076:15;14048:44;;;;;;:::i;:::-;;;;;;;;13490:610;;;;;;;;;:::o;8790:117::-;8846:17;;8834:9;:29;8884:15;;8874:7;:25;8790:117::o;16341:257::-;16439:7;;16392;;;;4680:8;16507:20;16439:7;4680:8;16507:11;:20::i;:::-;16497:7;:30;16493:61;;;16537:7;;4680:8;16529:25;;;;;;;;16493:61;16573:7;;-1:-1:-1;16582:7:0;-1:-1:-1;16341:257:0;;;:::o;14523:615::-;14623:7;14645;14667;14689;14711;14733;14769:23;14794:12;14808:13;14838:40;14850:7;14859:9;;14870:7;;14838:11;:40::i;:::-;14768:110;;;;;;14889:19;14911:10;:8;:10::i;:::-;14889:32;;14933:15;14950:23;14975:12;15004:46;15016:7;15025:4;15031:5;15038:11;15004;:46::i;:::-;14932:118;;-1:-1:-1;14932:118:0;-1:-1:-1;14932:118:0;-1:-1:-1;15101:15:0;;-1:-1:-1;15118:4:0;;-1:-1:-1;15124:5:0;;-1:-1:-1;;;;;14523:615:0;;;;;;;:::o;2240:136::-;2298:7;2325:43;2329:1;2332;2325:43;;;;;;;;;;;;;;;;;:3;:43::i;2052:179::-;2110:7;;2142:5;2146:1;2142;:5;:::i;:::-;2130:17;;2171:1;2166;:6;;2158:46;;;;-1:-1:-1;;;2158:46:0;;;;;;;:::i;14109:211::-;14162:19;14184:10;:8;:10::i;:::-;14162:32;-1:-1:-1;14205:13:0;14221:22;:5;14162:32;14221:9;:22::i;:::-;14295:4;14279:22;;;;:7;:22;;;;;;14205:38;;-1:-1:-1;14279:33:0;;14205:38;14279:26;:33::i;:::-;14270:4;14254:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14109:211:0:o;14329:147::-;14407:7;;:17;;14419:4;14407:11;:17::i;:::-;14397:7;:27;14448:10;;:20;;14463:4;14448:14;:20::i;:::-;14435:10;:33;-1:-1:-1;;14329:147:0:o;15147:469::-;15316:7;;;;15410:30;15436:3;15410:21;:7;15422:8;15410:11;:21::i;:30::-;15395:45;-1:-1:-1;15451:13:0;15467:28;15491:3;15467:19;:7;15479:6;15467:11;:19::i;:28::-;15451:44;-1:-1:-1;15506:23:0;15532:28;15451:44;15532:17;:7;15544:4;15532:11;:17::i;:::-;:21;;:28::i;:::-;15506:54;15596:4;;-1:-1:-1;15602:5:0;;-1:-1:-1;15147:469:0;;-1:-1:-1;;;;;15147:469:0:o;15625:534::-;15819:7;;;;15916:24;:7;15928:11;15916;:24::i;:::-;15898:42;-1:-1:-1;15951:12:0;15966:21;:4;15975:11;15966:8;:21::i;:::-;15951:36;-1:-1:-1;15998:13:0;16014:22;:5;16024:11;16014:9;:22::i;:::-;15998:38;-1:-1:-1;16047:23:0;16073:28;15998:38;16073:17;:7;16085:4;16073:11;:17::i;:28::-;16120:7;;;;-1:-1:-1;16146:4:0;;-1:-1:-1;15625:534:0;;-1:-1:-1;;;;;;;15625:534:0:o;14:138:1:-;84:20;;113:33;84:20;113:33;:::i;157:162::-;224:20;;280:13;;273:21;263:32;;253:2;;309:1;306;299:12;324:259;;436:2;424:9;415:7;411:23;407:32;404:2;;;457:6;449;442:22;404:2;501:9;488:23;520:33;547:5;520:33;:::i;588:263::-;;711:2;699:9;690:7;686:23;682:32;679:2;;;732:6;724;717:22;679:2;769:9;763:16;788:33;815:5;788:33;:::i;856:402::-;;;985:2;973:9;964:7;960:23;956:32;953:2;;;1006:6;998;991:22;953:2;1050:9;1037:23;1069:33;1096:5;1069:33;:::i;:::-;1121:5;-1:-1:-1;1178:2:1;1163:18;;1150:32;1191:35;1150:32;1191:35;:::i;:::-;1245:7;1235:17;;;943:315;;;;;:::o;1263:470::-;;;;1409:2;1397:9;1388:7;1384:23;1380:32;1377:2;;;1430:6;1422;1415:22;1377:2;1474:9;1461:23;1493:33;1520:5;1493:33;:::i;:::-;1545:5;-1:-1:-1;1602:2:1;1587:18;;1574:32;1615:35;1574:32;1615:35;:::i;:::-;1367:366;;1669:7;;-1:-1:-1;;;1723:2:1;1708:18;;;;1695:32;;1367:366::o;1738:327::-;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1888:6;1880;1873:22;1835:2;1932:9;1919:23;1951:33;1978:5;1951:33;:::i;:::-;2003:5;2055:2;2040:18;;;;2027:32;;-1:-1:-1;;;1825:240:1:o;2070:744::-;;;;2231:2;2219:9;2210:7;2206:23;2202:32;2199:2;;;2252:6;2244;2237:22;2199:2;2297:9;2284:23;2326:18;2367:2;2359:6;2356:14;2353:2;;;2388:6;2380;2373:22;2353:2;2431:6;2420:9;2416:22;2406:32;;2476:7;2469:4;2465:2;2461:13;2457:27;2447:2;;2503:6;2495;2488:22;2447:2;2548;2535:16;2574:2;2566:6;2563:14;2560:2;;;2595:6;2587;2580:22;2560:2;2658:7;2651:4;2643;2635:6;2631:17;2627:2;2623:26;2619:37;2616:50;2613:2;;;2684:6;2676;2669:22;2613:2;2720:4;2712:13;;;;-1:-1:-1;2744:6:1;-1:-1:-1;2769:39:1;;2787:20;;;-1:-1:-1;2769:39:1;:::i;:::-;2759:49;;2189:625;;;;;:::o;2819:1180::-;;2934:2;2977;2965:9;2956:7;2952:23;2948:32;2945:2;;;2998:6;2990;2983:22;2945:2;3043:9;3030:23;3072:18;3113:2;3105:6;3102:14;3099:2;;;3134:6;3126;3119:22;3099:2;3177:6;3166:9;3162:22;3152:32;;3222:7;3215:4;3211:2;3207:13;3203:27;3193:2;;3249:6;3241;3234:22;3193:2;3290;3277:16;3312:2;3308;3305:10;3302:2;;;3318:18;;:::i;:::-;3365:2;3361;3357:11;3397:2;3391:9;3460:2;3456:7;3451:2;3447;3443:11;3439:25;3431:6;3427:38;3515:6;3503:10;3500:22;3495:2;3483:10;3480:18;3477:46;3474:2;;;3526:18;;:::i;:::-;3562:2;3555:22;3612:18;;;3646:15;;;;-1:-1:-1;3681:11:1;;;3711;;;3707:20;;3704:33;-1:-1:-1;3701:2:1;;;3755:6;3747;3740:22;3701:2;3782:6;3773:15;;3797:171;3811:2;3808:1;3805:9;3797:171;;;3868:25;3889:3;3868:25;:::i;:::-;3856:38;;3829:1;3822:9;;;;;3914:12;;;;3946;;3797:171;;;-1:-1:-1;3987:6:1;2914:1085;-1:-1:-1;;;;;;;;2914:1085:1:o;4004:192::-;;4113:2;4101:9;4092:7;4088:23;4084:32;4081:2;;;4134:6;4126;4119:22;4081:2;4162:28;4180:9;4162:28;:::i;4201:190::-;;4313:2;4301:9;4292:7;4288:23;4284:32;4281:2;;;4334:6;4326;4319:22;4281:2;-1:-1:-1;4362:23:1;;4271:120;-1:-1:-1;4271:120:1:o;4396:395::-;;;;;4559:3;4547:9;4538:7;4534:23;4530:33;4527:2;;;4581:6;4573;4566:22;4527:2;-1:-1:-1;;4609:23:1;;;4679:2;4664:18;;4651:32;;-1:-1:-1;4730:2:1;4715:18;;4702:32;;4781:2;4766:18;4753:32;;-1:-1:-1;4517:274:1;-1:-1:-1;4517:274:1:o;4796:203::-;-1:-1:-1;;;;;4960:32:1;;;;4942:51;;4930:2;4915:18;;4897:102::o;5004:187::-;5169:14;;5162:22;5144:41;;5132:2;5117:18;;5099:92::o;5430:603::-;;5571:2;5600;5589:9;5582:21;5632:6;5626:13;5675:6;5670:2;5659:9;5655:18;5648:34;5700:4;5713:140;5727:6;5724:1;5721:13;5713:140;;;5822:14;;;5818:23;;5812:30;5788:17;;;5807:2;5784:26;5777:66;5742:10;;5713:140;;;5871:6;5868:1;5865:13;5862:2;;;5941:4;5936:2;5927:6;5916:9;5912:22;5908:31;5901:45;5862:2;-1:-1:-1;6017:2:1;5996:15;-1:-1:-1;;5992:29:1;5977:45;;;;6024:2;5973:54;;5551:482;-1:-1:-1;;;5551:482:1:o;6038:399::-;6240:2;6222:21;;;6279:2;6259:18;;;6252:30;6318:34;6313:2;6298:18;;6291:62;-1:-1:-1;;;6384:2:1;6369:18;;6362:33;6427:3;6412:19;;6212:225::o;6442:427::-;6644:2;6626:21;;;6683:2;6663:18;;;6656:30;6722:34;6717:2;6702:18;;6695:62;6793:33;6788:2;6773:18;;6766:61;6859:3;6844:19;;6616:253::o;6874:406::-;7076:2;7058:21;;;7115:2;7095:18;;;7088:30;7154:34;7149:2;7134:18;;7127:62;-1:-1:-1;;;7220:2:1;7205:18;;7198:40;7270:3;7255:19;;7048:232::o;7285:352::-;7487:2;7469:21;;;7526:2;7506:18;;;7499:30;7565;7560:2;7545:18;;7538:58;7628:2;7613:18;;7459:178::o;7642:402::-;7844:2;7826:21;;;7883:2;7863:18;;;7856:30;7922:34;7917:2;7902:18;;7895:62;-1:-1:-1;;;7988:2:1;7973:18;;7966:36;8034:3;8019:19;;7816:228::o;8049:398::-;8251:2;8233:21;;;8290:2;8270:18;;;8263:30;8329:34;8324:2;8309:18;;8302:62;-1:-1:-1;;;8395:2:1;8380:18;;8373:32;8437:3;8422:19;;8223:224::o;8452:399::-;8654:2;8636:21;;;8693:2;8673:18;;;8666:30;8732:34;8727:2;8712:18;;8705:62;-1:-1:-1;;;8798:2:1;8783:18;;8776:33;8841:3;8826:19;;8626:225::o;8856:351::-;9058:2;9040:21;;;9097:2;9077:18;;;9070:30;9136:29;9131:2;9116:18;;9109:57;9198:2;9183:18;;9030:177::o;9212:402::-;9414:2;9396:21;;;9453:2;9433:18;;;9426:30;9492:34;9487:2;9472:18;;9465:62;-1:-1:-1;;;9558:2:1;9543:18;;9536:36;9604:3;9589:19;;9386:228::o;9619:397::-;9821:2;9803:21;;;9860:2;9840:18;;;9833:30;9899:34;9894:2;9879:18;;9872:62;-1:-1:-1;;;9965:2:1;9950:18;;9943:31;10006:3;9991:19;;9793:223::o;10021:356::-;10223:2;10205:21;;;10242:18;;;10235:30;10301:34;10296:2;10281:18;;10274:62;10368:2;10353:18;;10195:182::o;10382:405::-;10584:2;10566:21;;;10623:2;10603:18;;;10596:30;10662:34;10657:2;10642:18;;10635:62;-1:-1:-1;;;10728:2:1;10713:18;;10706:39;10777:3;10762:19;;10556:231::o;10792:401::-;10994:2;10976:21;;;11033:2;11013:18;;;11006:30;11072:34;11067:2;11052:18;;11045:62;-1:-1:-1;;;11138:2:1;11123:18;;11116:35;11183:3;11168:19;;10966:227::o;11198:401::-;11400:2;11382:21;;;11439:2;11419:18;;;11412:30;11478:34;11473:2;11458:18;;11451:62;-1:-1:-1;;;11544:2:1;11529:18;;11522:35;11589:3;11574:19;;11372:227::o;11604:399::-;11806:2;11788:21;;;11845:2;11825:18;;;11818:30;11884:34;11879:2;11864:18;;11857:62;-1:-1:-1;;;11950:2:1;11935:18;;11928:33;11993:3;11978:19;;11778:225::o;12008:399::-;12210:2;12192:21;;;12249:2;12229:18;;;12222:30;12288:34;12283:2;12268:18;;12261:62;-1:-1:-1;;;12354:2:1;12339:18;;12332:33;12397:3;12382:19;;12182:225::o;12412:400::-;12614:2;12596:21;;;12653:2;12633:18;;;12626:30;12692:34;12687:2;12672:18;;12665:62;-1:-1:-1;;;12758:2:1;12743:18;;12736:34;12802:3;12787:19;;12586:226::o;12817:398::-;13019:2;13001:21;;;13058:2;13038:18;;;13031:30;13097:34;13092:2;13077:18;;13070:62;-1:-1:-1;;;13163:2:1;13148:18;;13141:32;13205:3;13190:19;;12991:224::o;13220:177::-;13366:25;;;13354:2;13339:18;;13321:76::o;13402:983::-;;13712:3;13701:9;13697:19;13743:6;13732:9;13725:25;13769:2;13807:6;13802:2;13791:9;13787:18;13780:34;13850:3;13845:2;13834:9;13830:18;13823:31;13874:6;13909;13903:13;13940:6;13932;13925:22;13978:3;13967:9;13963:19;13956:26;;14017:2;14009:6;14005:15;13991:29;;14038:4;14051:195;14065:6;14062:1;14059:13;14051:195;;;14130:13;;-1:-1:-1;;;;;14126:39:1;14114:52;;14221:15;;;;14186:12;;;;14162:1;14080:9;14051:195;;;-1:-1:-1;;;;;;;14302:32:1;;;;14297:2;14282:18;;14275:60;-1:-1:-1;;;14366:3:1;14351:19;14344:35;14263:3;13673:712;-1:-1:-1;;;13673:712:1:o;14390:184::-;14562:4;14550:17;;;;14532:36;;14520:2;14505:18;;14487:87::o;14579:128::-;;14650:1;14646:6;14643:1;14640:13;14637:2;;;14656:18;;:::i;:::-;-1:-1:-1;14692:9:1;;14627:80::o;14712:217::-;;14778:1;14768:2;;-1:-1:-1;;;14803:31:1;;14857:4;14854:1;14847:15;14885:4;14810:1;14875:15;14768:2;-1:-1:-1;14914:9:1;;14758:171::o;14934:168::-;;15040:1;15036;15032:6;15028:14;15025:1;15022:21;15017:1;15010:9;15003:17;14999:45;14996:2;;;15047:18;;:::i;:::-;-1:-1:-1;15087:9:1;;14986:116::o;15107:125::-;;15175:1;15172;15169:8;15166:2;;;15180:18;;:::i;:::-;-1:-1:-1;15217:9:1;;15156:76::o;15237:135::-;;-1:-1:-1;;15297:17:1;;15294:2;;;15317:18;;:::i;:::-;-1:-1:-1;15364:1:1;15353:13;;15284:88::o;15377:127::-;15438:10;15433:3;15429:20;15426:1;15419:31;15469:4;15466:1;15459:15;15493:4;15490:1;15483:15;15509:127;15570:10;15565:3;15561:20;15558:1;15551:31;15601:4;15598:1;15591:15;15625:4;15622:1;15615:15;15641:133;-1:-1:-1;;;;;15718:31:1;;15708:42;;15698:2;;15764:1;15761;15754:12

Swarm Source

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