ETH Price: $2,524.67 (+2.35%)

Token

Squid Chain (SC)
 

Overview

Max Total Supply

10,000,000 SC

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
75,000 SC

Value
$0.00
0x18e1d3967346b6af7394c39b422b808fcb9e008f
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:
SquidChain

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-18
*/

// SPDX-License-Identifier: MIT

// Squid Chain
// Website: https://squidchain.xyz/
// Telegram: https://t.me/SquidChainETH
// X: https://twitter.com/squidchaineth

//BLOCKCHAIN INFO: 
//RPC: https://rpc.squidchain.xyz
//Chain ID: 100
//Symbol: SC
//Explorer: https://scan.squidchain.xyz

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _owner = address(0);
    }
}

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
    function approve(address spender, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

contract SquidChain is Ownable {
    string private constant _name = unicode"Squid Chain";
    string private constant _symbol = unicode"SC";
    uint256 private constant _totalSupply = 10_000_000 * 1e18;

    uint256 public maxTransactionAmount = 100_000 * 1e18; //1%
    uint256 public maxWallet = 100_000 * 1e18; //1%
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000; //0.02%

    address public revWallet = 0x6b7c311d35A7ecCf30a86ED6408953f0134ff808;
    address public treasuryWallet = 0xc38DA82910638059E88988990c06d063CA5944AE;
    address public teamWallet = 0xE0a6797379a4CbD7eC814B30E2fbf5a9E86871B5;
    address public blockchainreserveWallet = 0x45057faccb3a424D39eCD9cC6F2e683EAb60D25b;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 250;
    uint8 public sellTotalFees = 250;

    uint8 public revFee = 40;
    uint8 public treasuryFee = 40;
    uint8 public teamFee = 20;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;

    constructor() {

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);
        setExcludedFromFees(0x093E5859f51CbAf380C59fA8342d8E87A03Abb41, true);
        setExcludedFromFees(0x61A731F06fFfae2ea893263e65480ff7AaA7A1F1, true);
        setExcludedFromFees(0xd6d2A9cdD008C439b9Cf72CB1121E94Bddd2b5aB, true);
        setExcludedFromFees(0x2704D8619dc1883ADf818eA6437e58327493E26F, true);
        setExcludedFromFees(0x381bC4EbBe0f99a14A25795Ea5E65FE68E4C4e59, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);
        setExcludedFromMaxTransaction(blockchainreserveWallet, true);
        setExcludedFromMaxTransaction(0x093E5859f51CbAf380C59fA8342d8E87A03Abb41, true);
        setExcludedFromMaxTransaction(0x61A731F06fFfae2ea893263e65480ff7AaA7A1F1, true);
        setExcludedFromMaxTransaction(0xd6d2A9cdD008C439b9Cf72CB1121E94Bddd2b5aB, true);
        setExcludedFromMaxTransaction(0x2704D8619dc1883ADf818eA6437e58327493E26F, true);
        setExcludedFromMaxTransaction(0x381bC4EbBe0f99a14A25795Ea5E65FE68E4C4e59, true);


        _balances[blockchainreserveWallet] = 900_000 * 1e18;
        emit Transfer(address(0), blockchainreserveWallet, _balances[blockchainreserveWallet]);

        _balances[treasuryWallet] = 1_000_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);

        _balances[teamWallet] = 1_000_000 * 1e18;
        emit Transfer(address(0), teamWallet, _balances[teamWallet]);

        _balances[address(this)] = 6_600_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

         _balances[0x093E5859f51CbAf380C59fA8342d8E87A03Abb41] = 100_000 * 1e18;
        emit Transfer(address(0), 0x093E5859f51CbAf380C59fA8342d8E87A03Abb41, _balances[0x093E5859f51CbAf380C59fA8342d8E87A03Abb41]);
        _balances[0x61A731F06fFfae2ea893263e65480ff7AaA7A1F1] = 100_000 * 1e18;
        emit Transfer(address(0), 0x61A731F06fFfae2ea893263e65480ff7AaA7A1F1, _balances[0x61A731F06fFfae2ea893263e65480ff7AaA7A1F1]);
        _balances[0xd6d2A9cdD008C439b9Cf72CB1121E94Bddd2b5aB] = 100_000 * 1e18;
        emit Transfer(address(0), 0xd6d2A9cdD008C439b9Cf72CB1121E94Bddd2b5aB, _balances[0xd6d2A9cdD008C439b9Cf72CB1121E94Bddd2b5aB]);
        _balances[0x2704D8619dc1883ADf818eA6437e58327493E26F] = 100_000 * 1e18;
        emit Transfer(address(0), 0x2704D8619dc1883ADf818eA6437e58327493E26F, _balances[0x2704D8619dc1883ADf818eA6437e58327493E26F]);
        _balances[0x381bC4EbBe0f99a14A25795Ea5E65FE68E4C4e59] = 100_000 * 1e18;
        emit Transfer(address(0), 0x381bC4EbBe0f99a14A25795Ea5E65FE68E4C4e59, _balances[0x381bC4EbBe0f99a14A25795Ea5E65FE68E4C4e59]);
    }

    receive() external payable {}

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

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    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 (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution must to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 20, "Buy fees must be less than or equal to 2%");
        require(_sellTotalFees <= 20, "Sell fees must be less than or equal to 2%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function bulkSendTokens(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTheFloodGates() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function LetsTheGamesBegin() external payable onlyOwner {
        require(!launched, "Already launched");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);

        _approve(address(this), address(uniswapV2Pair), type(uint256).max);

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);

        automatedMarketMakerPairs[uniswapV2Pair] = true;

        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LetsTheGamesBegin","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockchainreserveWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTheFloodGates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269152d02c7e14af680000060015569152d02c7e14af68000006002556127106a084595161401484a00000060026200003d919062000982565b620000499190620009ac565b600355600480546001600160a01b0319908116736b7c311d35a7eccf30a86ed6408953f0134ff8081790915560058054821673c38da82910638059e88988990c06d063ca5944ae1790556006805490911673e0a6797379a4cbd7ec814b30e2fbf5a9e86871b5179055600780547a0100142828fafa45057faccb3a424d39ecd9cc6f2e683eab60d25b600161ff0160c81b0319909116179055348015620000ee575f80fd5b505f80546001600160a01b031916331790556200011e620001165f546001600160a01b031690565b600162000751565b6200012b30600162000751565b6200013a61dead600162000751565b60065462000153906001600160a01b0316600162000751565b6004546200016c906001600160a01b0316600162000751565b60055462000185906001600160a01b0316600162000751565b620001a673093e5859f51cbaf380c59fa8342d8e87a03abb41600162000751565b620001c77361a731f06fffae2ea893263e65480ff7aaa7a1f1600162000751565b620001e873d6d2a9cdd008c439b9cf72cb1121e94bddd2b5ab600162000751565b62000209732704d8619dc1883adf818ea6437e58327493e26f600162000751565b6200022a73381bc4ebbe0f99a14a25795ea5e65fe68e4c4e59600162000751565b62000248620002405f546001600160a01b031690565b6001620007d8565b62000269737a250d5630b4cf539739df2c5dacb4c659f2488d6001620007d8565b62000276306001620007d8565b6200028561dead6001620007d8565b600d546200029e906001600160a01b03166001620007d8565b600654620002b7906001600160a01b03166001620007d8565b600454620002d0906001600160a01b03166001620007d8565b600554620002e9906001600160a01b03166001620007d8565b60075462000302906001600160a01b03166001620007d8565b6200032373093e5859f51cbaf380c59fa8342d8e87a03abb416001620007d8565b620003447361a731f06fffae2ea893263e65480ff7aaa7a1f16001620007d8565b6200036573d6d2a9cdd008c439b9cf72cb1121e94bddd2b5ab6001620007d8565b62000386732704d8619dc1883adf818ea6437e58327493e26f6001620007d8565b620003a773381bc4ebbe0f99a14a25795ea5e65fe68e4c4e596001620007d8565b600780546001600160a01b039081165f9081526008602052604080822069be951906eba2aa8000009055925490911680825282822054925190925f805160206200364783398151915291620003fe91815260200190565b60405180910390a3600580546001600160a01b039081165f9081526008602052604080822069d3c21bcecceda10000009055925490911680825282822054925190925f8051602062003647833981519152916200045d91815260200190565b60405180910390a3600680546001600160a01b039081165f9081526008602052604080822069d3c21bcecceda10000009055925490911680825282822054925190925f805160206200364783398151915291620004bc91815260200190565b60405180910390a3305f8181526008602090815260408083206a05759ab78815538d0000009081905590519081525f8051602062003647833981519152910160405180910390a36200052530737a250d5630b4cf539739df2c5dacb4c659f2488d5f196200085b565b73093e5859f51cbaf380c59fa8342d8e87a03abb415f8181526008602090815269152d02c7e14af68000007f4b9617760cc90b15980ad2e262c4b55718bff185116c9377e2166d1be1fa3b248190556040519081525f8051602062003647833981519152910160405180910390a37361a731f06fffae2ea893263e65480ff7aaa7a1f15f8181526008602090815269152d02c7e14af68000007fe075dd46f0321d92586788c85f1febc484b2d55be0c69426b660a96580ad31658190556040519081525f8051602062003647833981519152910160405180910390a373d6d2a9cdd008c439b9cf72cb1121e94bddd2b5ab5f8181526008602090815269152d02c7e14af68000007f42c415c54142f4f789294c32ad4b6a401b8c88586b87b080f0cd6b719268ed968190556040519081525f8051602062003647833981519152910160405180910390a3732704d8619dc1883adf818ea6437e58327493e26f5f8181526008602090815269152d02c7e14af68000007ffc049e861c117c315f1b9fcd1181eb448581ab1ed3792285d96c7c96103d06e98190556040519081525f8051602062003647833981519152910160405180910390a373381bc4ebbe0f99a14a25795ea5e65fe68e4c4e595f8181526008602090815269152d02c7e14af68000007fb07931b8eb8e30706957b62f0e690f7be553fe57d88385332a8a6ed589678ea48190556040519081525f8051602062003647833981519152910160405180910390a3620009cc565b33620007645f546001600160a01b031690565b6001600160a01b031614620007ae5760405162461bcd60e51b815260206004820181905260248201525f805160206200362783398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33620007eb5f546001600160a01b031690565b6001600160a01b031614620008315760405162461bcd60e51b815260206004820181905260248201525f80516020620036278339815191526044820152606401620007a5565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b038316620008bf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620007a5565b6001600160a01b038216620009225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620007a5565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b8082028115828204841417620009a657634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620009c757634e487b7160e01b5f52601260045260245ffd5b500490565b612c4d80620009da5f395ff3fe608060405260043610610262575f3560e01c806373d4d03c1161013f578063adfa29e5116100b3578063d7c94efd11610078578063d7c94efd14610764578063d85ba06314610784578063dd62ed3e146107a4578063e2f45605146107e8578063edecdae6146107fd578063f8b45b051461081c575f80fd5b8063adfa29e5146106d2578063bc205ad3146106f1578063c8c8ebe414610710578063cc32d17614610725578063d201b01e14610745575f80fd5b806385ecafd71161010457806385ecafd7146105f85780638da5cb5b1461062f57806395d89b411461064b5780639a7a23d614610675578063a7d5b7ea14610694578063a9059cbb146106b3575f80fd5b806373d4d03c1461057f57806374010ece14610587578063751039fc146105a65780637cb332bb146105ba578063809d458d146105d9575f80fd5b806349bd5a5e116101d657806362beb0b51161019b57806362beb0b5146104c55780636402511e146104d957806366650dae146104f85780636a486a8e1461051757806370a0823114610537578063715018a61461056b575f80fd5b806349bd5a5e146104295780634a62bb65146104485780634fcd244614610468578063590ffdce1461048757806359927044146104a6575f80fd5b806323b872dd1161022757806323b872dd1461037957806327a14fc21461039857806329dde842146103b9578063313ce567146103d85780633c090c46146103eb5780634626402b1461040a575f80fd5b806306fdde031461026d578063095ea7b3146102b25780631694505e146102e157806318160ddd1461032057806321d37e3914610347575f80fd5b3661026957005b5f80fd5b348015610278575f80fd5b5060408051808201909152600b81526a29b8bab4b21021b430b4b760a91b60208201525b6040516102a9919061261f565b60405180910390f35b3480156102bd575f80fd5b506102d16102cc366004612668565b610831565b60405190151581526020016102a9565b3480156102ec575f80fd5b50610308737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102a9565b34801561032b575f80fd5b506a084595161401484a0000005b6040519081526020016102a9565b348015610352575f80fd5b5060075461036790600160b01b900460ff1681565b60405160ff90911681526020016102a9565b348015610384575f80fd5b506102d1610393366004612692565b610847565b3480156103a3575f80fd5b506103b76103b23660046126d0565b6108fb565b005b3480156103c4575f80fd5b506103b76103d33660046127b7565b6109de565b3480156103e3575f80fd5b506012610367565b3480156103f6575f80fd5b506103b7610405366004612888565b610bfa565b348015610415575f80fd5b50600554610308906001600160a01b031681565b348015610434575f80fd5b50600d54610308906001600160a01b031681565b348015610453575f80fd5b506007546102d190600160d01b900460ff1681565b348015610473575f80fd5b506103b76104823660046128c8565b610cfd565b348015610492575f80fd5b506103b76104a1366004612906565b610e36565b3480156104b1575f80fd5b50600654610308906001600160a01b031681565b3480156104d0575f80fd5b506103b7610e98565b3480156104e4575f80fd5b506103b76104f33660046126d0565b610f0f565b348015610503575f80fd5b506103b7610512366004612906565b61106c565b348015610522575f80fd5b5060075461036790600160a81b900460ff1681565b348015610542575f80fd5b5061033961055136600461293d565b6001600160a01b03165f9081526008602052604090205490565b348015610576575f80fd5b506103b76110ce565b6103b7611117565b348015610592575f80fd5b506103b76105a13660046126d0565b61140c565b3480156105b1575f80fd5b506103b76114f4565b3480156105c5575f80fd5b506103b76105d436600461293d565b61153b565b3480156105e4575f80fd5b506103b76105f336600461293d565b6115bb565b348015610603575f80fd5b506102d161061236600461293d565b6001600160a01b03165f908152600a602052604090205460ff1690565b34801561063a575f80fd5b505f546001600160a01b0316610308565b348015610656575f80fd5b50604080518082019091526002815261534360f01b602082015261029c565b348015610680575f80fd5b506103b761068f366004612906565b61163b565b34801561069f575f80fd5b50600754610308906001600160a01b031681565b3480156106be575f80fd5b506102d16106cd366004612668565b6116fb565b3480156106dd575f80fd5b506103b76106ec36600461293d565b611707565b3480156106fc575f80fd5b506103b761070b36600461295f565b611787565b34801561071b575f80fd5b5061033960015481565b348015610730575f80fd5b5060075461036790600160b81b900460ff1681565b348015610750575f80fd5b506103b761075f36600461293d565b611834565b34801561076f575f80fd5b5060075461036790600160c01b900460ff1681565b34801561078f575f80fd5b5060075461036790600160a01b900460ff1681565b3480156107af575f80fd5b506103396107be36600461295f565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107f3575f80fd5b5061033960035481565b348015610808575f80fd5b50600454610308906001600160a01b031681565b348015610827575f80fd5b5061033960025481565b5f61083d33848461194b565b5060015b92915050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1981146108e557828110156108d85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108e5853385840361194b565b6108f0858585611a6e565b506001949350505050565b3361090d5f546001600160a01b031690565b6001600160a01b0316146109335760405162461bcd60e51b81526004016108cf9061298b565b670de0b6b3a76400006103e86109556a084595161401484a00000060016129d4565b61095f91906129eb565b61096991906129eb565b8110156109c65760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016108cf565b6109d881670de0b6b3a76400006129d4565b60025550565b336109f05f546001600160a01b031690565b6001600160a01b031614610a165760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff1615610a405760405162461bcd60e51b81526004016108cf90612a0a565b5f5b8251811015610bf557818181518110610a5d57610a5d612a34565b602002602001015160085f336001600160a01b03166001600160a01b031681526020019081526020015f20541015610aa75760405162461bcd60e51b81526004016108cf90612a48565b818181518110610ab957610ab9612a34565b602002602001015160085f858481518110610ad657610ad6612a34565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610b0b9190612a8e565b92505081905550818181518110610b2457610b24612a34565b602002602001015160085f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254610b5d9190612aa1565b92505081905550828181518110610b7657610b76612a34565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610bc457610bc4612a34565b6020026020010151604051610bdb91815260200190565b60405180910390a380610bed81612ab4565b915050610a42565b505050565b33610c0c5f546001600160a01b031690565b6001600160a01b031614610c325760405162461bcd60e51b81526004016108cf9061298b565b6007805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b868516810291909117948590558404831693610c9393918104821692900416612acc565b610c9d9190612acc565b60ff16606414610bf55760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206d75737420746f20626520657175616c20746f604482015264203130302560d81b60648201526084016108cf565b33610d0f5f546001600160a01b031690565b6001600160a01b031614610d355760405162461bcd60e51b81526004016108cf9061298b565b60148260ff161115610d9b5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20322560b81b60648201526084016108cf565b60148160ff161115610e025760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20322560b01b60648201526084016108cf565b6007805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610e485f546001600160a01b031690565b6001600160a01b031614610e6e5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eaa5f546001600160a01b031690565b6001600160a01b031614610ed05760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff1615610efa5760405162461bcd60e51b81526004016108cf90612a0a565b6007805460ff60d81b1916600160d81b179055565b33610f215f546001600160a01b031690565b6001600160a01b031614610f475760405162461bcd60e51b81526004016108cf9061298b565b620186a0610f616a084595161401484a00000060016129d4565b610f6b91906129eb565b811015610fd85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016108cf565b6103e8610ff16a084595161401484a00000060056129d4565b610ffb91906129eb565b8111156110675760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016108cf565b600355565b3361107e5f546001600160a01b031690565b6001600160a01b0316146110a45760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b336110e05f546001600160a01b031690565b6001600160a01b0316146111065760405162461bcd60e51b81526004016108cf9061298b565b5f80546001600160a01b0319169055565b336111295f546001600160a01b031690565b6001600160a01b03161461114f5760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff16156111795760405162461bcd60e51b81526004016108cf90612a0a565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190612ae5565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af115801561124c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112709190612ae5565b600d80546001600160a01b0319166001600160a01b0392909216918217905561129c9030905f1961194b565b600d5460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b039091169063095ea7b3906044016020604051808303815f875af11580156112fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113229190612b00565b50600d80546001600160a01b039081165f908152600c60205260409020805460ff19166001908117909155915461135b9291169061106c565b305f8181526008602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156113e7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bf59190612b1b565b3361141e5f546001600160a01b031690565b6001600160a01b0316146114445760405162461bcd60e51b81526004016108cf9061298b565b670de0b6b3a76400006103e86114666a084595161401484a00000060016129d4565b61147091906129eb565b61147a91906129eb565b8110156114dc5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016108cf565b6114ee81670de0b6b3a76400006129d4565b60015550565b336115065f546001600160a01b031690565b6001600160a01b03161461152c5760405162461bcd60e51b81526004016108cf9061298b565b6007805460ff60d01b19169055565b3361154d5f546001600160a01b031690565b6001600160a01b0316146115735760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166115995760405162461bcd60e51b81526004016108cf90612b46565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336115cd5f546001600160a01b031690565b6001600160a01b0316146115f35760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166116195760405162461bcd60e51b81526004016108cf90612b46565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361164d5f546001600160a01b031690565b6001600160a01b0316146116735760405162461bcd60e51b81526004016108cf9061298b565b600d546001600160a01b03908116908316036116d15760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016108cf565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f61083d338484611a6e565b336117195f546001600160a01b031690565b6001600160a01b03161461173f5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166117655760405162461bcd60e51b81526004016108cf90612b46565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336117995f546001600160a01b031690565b6001600160a01b0316146117bf5760405162461bcd60e51b81526004016108cf9061298b565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611803573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118279190612b76565b9050610bf58383836121e7565b336118465f546001600160a01b031690565b6001600160a01b03161461186c5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166118b45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016108cf565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146118fd576040519150601f19603f3d011682016040523d82523d5f602084013e611902565b606091505b50509050806119475760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016108cf565b5050565b6001600160a01b0383166119ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cf565b6001600160a01b038216611a0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cf565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ad25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cf565b6001600160a01b038216611b345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cf565b5f8111611b955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cf565b600754600160d81b900460ff16158015611be957505f546001600160a01b03848116911614801590611bd057506001600160a01b0383163014155b8015611be957505f546001600160a01b03838116911614155b15611c2c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108cf565b600754600160d01b900460ff1615611eed575f546001600160a01b03848116911614801590611c6857505f546001600160a01b03838116911614155b8015611c7c57506001600160a01b03821615155b8015611c9357506001600160a01b03821661dead14155b8015611ca95750600754600160c81b900460ff16155b15611eed576001600160a01b0383165f908152600c602052604090205460ff168015611ced57506001600160a01b0382165f908152600b602052604090205460ff16155b15611dc057600154811115611d525760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016108cf565b6002546001600160a01b0383165f90815260086020526040902054611d779083612a8e565b1115611dbb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108cf565b611eed565b6001600160a01b0382165f908152600c602052604090205460ff168015611dff57506001600160a01b0383165f908152600b602052604090205460ff16155b15611e6557600154811115611dbb5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016108cf565b6001600160a01b0382165f908152600b602052604090205460ff16611eed576002546001600160a01b0383165f90815260086020526040902054611ea99083612a8e565b1115611eed5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108cf565b600354305f90815260086020526040902054108015908190611f195750600754600160c81b900460ff16155b8015611f3d57506001600160a01b0384165f908152600c602052604090205460ff16155b8015611f6157506001600160a01b0384165f908152600a602052604090205460ff16155b8015611f8557506001600160a01b0383165f908152600a602052604090205460ff16155b15611fb3576007805460ff60c81b1916600160c81b179055611fa561230e565b6007805460ff60c81b191690555b6007546001600160a01b0385165f908152600a602052604090205460ff600160c81b909204821615911680611fff57506001600160a01b0384165f908152600a602052604090205460ff165b1561200757505f5b6001600160a01b0385165f908152600860205260409020548381101561203f5760405162461bcd60e51b81526004016108cf90612a48565b5f8215612175576001600160a01b0386165f908152600c602052604090205460ff1680156120785750600754600160a81b900460ff1615155b156120a9576007546103e89061209890600160a81b900460ff16876129d4565b6120a291906129eb565b9050612108565b6001600160a01b0387165f908152600c602052604090205460ff1680156120db5750600754600160a01b900460ff1615155b15612108576007546103e8906120fb90600160a01b900460ff16876129d4565b61210591906129eb565b90505b8015612175576001600160a01b0387165f8181526008602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526008602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121d69089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908716916122429190612b8d565b5f604051808303815f865af19150503d805f811461227b576040519150601f19603f3d011682016040523d82523d5f602084013e612280565b606091505b50915091508180156122aa5750805115806122aa5750808060200190518101906122aa9190612b00565b6123075760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b60648201526084016108cf565b5050505050565b6003545f61231d8260146129d4565b305f908152600860205260409020541115612343576003546123409060146129d4565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061237657612376612a34565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106123be576123be612a34565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906124159086905f90869030904290600401612ba8565b5f604051808303815f87803b15801561242c575f80fd5b505af115801561243e573d5f803e3d5ffd5b5047925050811590506125f7576007545f9060649061246790600160b01b900460ff16846129d4565b61247191906129eb565b6007549091505f9060649061249090600160c01b900460ff16856129d4565b61249a91906129eb565b90505f816124a88486612aa1565b6124b29190612aa1565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146124fd576040519150601f19603f3d011682016040523d82523d5f602084013e612502565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461254f576040519150601f19603f3d011682016040523d82523d5f602084013e612554565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f81146125a1576040519150601f19603f3d011682016040523d82523d5f602084013e6125a6565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156126175781810151838201526020016125ff565b50505f910152565b602081525f825180602084015261263d8160408501602087016125fd565b601f01601f19169190910160400192915050565b6001600160a01b0381168114612665575f80fd5b50565b5f8060408385031215612679575f80fd5b823561268481612651565b946020939093013593505050565b5f805f606084860312156126a4575f80fd5b83356126af81612651565b925060208401356126bf81612651565b929592945050506040919091013590565b5f602082840312156126e0575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612724576127246126e7565b604052919050565b5f67ffffffffffffffff821115612745576127456126e7565b5060051b60200190565b5f82601f83011261275e575f80fd5b8135602061277361276e8361272c565b6126fb565b82815260059290921b84018101918181019086841115612791575f80fd5b8286015b848110156127ac5780358352918301918301612795565b509695505050505050565b5f80604083850312156127c8575f80fd5b823567ffffffffffffffff808211156127df575f80fd5b818501915085601f8301126127f2575f80fd5b8135602061280261276e8361272c565b82815260059290921b84018101918181019089841115612820575f80fd5b948201945b8386101561284757853561283881612651565b82529482019490820190612825565b9650508601359250508082111561285c575f80fd5b506128698582860161274f565b9150509250929050565b803560ff81168114612883575f80fd5b919050565b5f805f6060848603121561289a575f80fd5b6128a384612873565b92506128b160208501612873565b91506128bf60408501612873565b90509250925092565b5f80604083850312156128d9575f80fd5b6128e283612873565b91506128f060208401612873565b90509250929050565b8015158114612665575f80fd5b5f8060408385031215612917575f80fd5b823561292281612651565b91506020830135612932816128f9565b809150509250929050565b5f6020828403121561294d575f80fd5b813561295881612651565b9392505050565b5f8060408385031215612970575f80fd5b823561297b81612651565b9150602083013561293281612651565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610841576108416129c0565b5f82612a0557634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b80820180821115610841576108416129c0565b81810381811115610841576108416129c0565b5f60018201612ac557612ac56129c0565b5060010190565b60ff8181168382160190811115610841576108416129c0565b5f60208284031215612af5575f80fd5b815161295881612651565b5f60208284031215612b10575f80fd5b8151612958816128f9565b5f805f60608486031215612b2d575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612b86575f80fd5b5051919050565b5f8251612b9e8184602087016125fd565b9190910192915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612bf65784516001600160a01b031683529383019391830191600101612bd1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f21dc898ca672052408581a7265fb323ca63c1e178c31dd91a04159aacb7ae6064736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610262575f3560e01c806373d4d03c1161013f578063adfa29e5116100b3578063d7c94efd11610078578063d7c94efd14610764578063d85ba06314610784578063dd62ed3e146107a4578063e2f45605146107e8578063edecdae6146107fd578063f8b45b051461081c575f80fd5b8063adfa29e5146106d2578063bc205ad3146106f1578063c8c8ebe414610710578063cc32d17614610725578063d201b01e14610745575f80fd5b806385ecafd71161010457806385ecafd7146105f85780638da5cb5b1461062f57806395d89b411461064b5780639a7a23d614610675578063a7d5b7ea14610694578063a9059cbb146106b3575f80fd5b806373d4d03c1461057f57806374010ece14610587578063751039fc146105a65780637cb332bb146105ba578063809d458d146105d9575f80fd5b806349bd5a5e116101d657806362beb0b51161019b57806362beb0b5146104c55780636402511e146104d957806366650dae146104f85780636a486a8e1461051757806370a0823114610537578063715018a61461056b575f80fd5b806349bd5a5e146104295780634a62bb65146104485780634fcd244614610468578063590ffdce1461048757806359927044146104a6575f80fd5b806323b872dd1161022757806323b872dd1461037957806327a14fc21461039857806329dde842146103b9578063313ce567146103d85780633c090c46146103eb5780634626402b1461040a575f80fd5b806306fdde031461026d578063095ea7b3146102b25780631694505e146102e157806318160ddd1461032057806321d37e3914610347575f80fd5b3661026957005b5f80fd5b348015610278575f80fd5b5060408051808201909152600b81526a29b8bab4b21021b430b4b760a91b60208201525b6040516102a9919061261f565b60405180910390f35b3480156102bd575f80fd5b506102d16102cc366004612668565b610831565b60405190151581526020016102a9565b3480156102ec575f80fd5b50610308737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102a9565b34801561032b575f80fd5b506a084595161401484a0000005b6040519081526020016102a9565b348015610352575f80fd5b5060075461036790600160b01b900460ff1681565b60405160ff90911681526020016102a9565b348015610384575f80fd5b506102d1610393366004612692565b610847565b3480156103a3575f80fd5b506103b76103b23660046126d0565b6108fb565b005b3480156103c4575f80fd5b506103b76103d33660046127b7565b6109de565b3480156103e3575f80fd5b506012610367565b3480156103f6575f80fd5b506103b7610405366004612888565b610bfa565b348015610415575f80fd5b50600554610308906001600160a01b031681565b348015610434575f80fd5b50600d54610308906001600160a01b031681565b348015610453575f80fd5b506007546102d190600160d01b900460ff1681565b348015610473575f80fd5b506103b76104823660046128c8565b610cfd565b348015610492575f80fd5b506103b76104a1366004612906565b610e36565b3480156104b1575f80fd5b50600654610308906001600160a01b031681565b3480156104d0575f80fd5b506103b7610e98565b3480156104e4575f80fd5b506103b76104f33660046126d0565b610f0f565b348015610503575f80fd5b506103b7610512366004612906565b61106c565b348015610522575f80fd5b5060075461036790600160a81b900460ff1681565b348015610542575f80fd5b5061033961055136600461293d565b6001600160a01b03165f9081526008602052604090205490565b348015610576575f80fd5b506103b76110ce565b6103b7611117565b348015610592575f80fd5b506103b76105a13660046126d0565b61140c565b3480156105b1575f80fd5b506103b76114f4565b3480156105c5575f80fd5b506103b76105d436600461293d565b61153b565b3480156105e4575f80fd5b506103b76105f336600461293d565b6115bb565b348015610603575f80fd5b506102d161061236600461293d565b6001600160a01b03165f908152600a602052604090205460ff1690565b34801561063a575f80fd5b505f546001600160a01b0316610308565b348015610656575f80fd5b50604080518082019091526002815261534360f01b602082015261029c565b348015610680575f80fd5b506103b761068f366004612906565b61163b565b34801561069f575f80fd5b50600754610308906001600160a01b031681565b3480156106be575f80fd5b506102d16106cd366004612668565b6116fb565b3480156106dd575f80fd5b506103b76106ec36600461293d565b611707565b3480156106fc575f80fd5b506103b761070b36600461295f565b611787565b34801561071b575f80fd5b5061033960015481565b348015610730575f80fd5b5060075461036790600160b81b900460ff1681565b348015610750575f80fd5b506103b761075f36600461293d565b611834565b34801561076f575f80fd5b5060075461036790600160c01b900460ff1681565b34801561078f575f80fd5b5060075461036790600160a01b900460ff1681565b3480156107af575f80fd5b506103396107be36600461295f565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107f3575f80fd5b5061033960035481565b348015610808575f80fd5b50600454610308906001600160a01b031681565b348015610827575f80fd5b5061033960025481565b5f61083d33848461194b565b5060015b92915050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1981146108e557828110156108d85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108e5853385840361194b565b6108f0858585611a6e565b506001949350505050565b3361090d5f546001600160a01b031690565b6001600160a01b0316146109335760405162461bcd60e51b81526004016108cf9061298b565b670de0b6b3a76400006103e86109556a084595161401484a00000060016129d4565b61095f91906129eb565b61096991906129eb565b8110156109c65760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016108cf565b6109d881670de0b6b3a76400006129d4565b60025550565b336109f05f546001600160a01b031690565b6001600160a01b031614610a165760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff1615610a405760405162461bcd60e51b81526004016108cf90612a0a565b5f5b8251811015610bf557818181518110610a5d57610a5d612a34565b602002602001015160085f336001600160a01b03166001600160a01b031681526020019081526020015f20541015610aa75760405162461bcd60e51b81526004016108cf90612a48565b818181518110610ab957610ab9612a34565b602002602001015160085f858481518110610ad657610ad6612a34565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610b0b9190612a8e565b92505081905550818181518110610b2457610b24612a34565b602002602001015160085f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254610b5d9190612aa1565b92505081905550828181518110610b7657610b76612a34565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610bc457610bc4612a34565b6020026020010151604051610bdb91815260200190565b60405180910390a380610bed81612ab4565b915050610a42565b505050565b33610c0c5f546001600160a01b031690565b6001600160a01b031614610c325760405162461bcd60e51b81526004016108cf9061298b565b6007805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b868516810291909117948590558404831693610c9393918104821692900416612acc565b610c9d9190612acc565b60ff16606414610bf55760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206d75737420746f20626520657175616c20746f604482015264203130302560d81b60648201526084016108cf565b33610d0f5f546001600160a01b031690565b6001600160a01b031614610d355760405162461bcd60e51b81526004016108cf9061298b565b60148260ff161115610d9b5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20322560b81b60648201526084016108cf565b60148160ff161115610e025760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20322560b01b60648201526084016108cf565b6007805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610e485f546001600160a01b031690565b6001600160a01b031614610e6e5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eaa5f546001600160a01b031690565b6001600160a01b031614610ed05760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff1615610efa5760405162461bcd60e51b81526004016108cf90612a0a565b6007805460ff60d81b1916600160d81b179055565b33610f215f546001600160a01b031690565b6001600160a01b031614610f475760405162461bcd60e51b81526004016108cf9061298b565b620186a0610f616a084595161401484a00000060016129d4565b610f6b91906129eb565b811015610fd85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016108cf565b6103e8610ff16a084595161401484a00000060056129d4565b610ffb91906129eb565b8111156110675760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016108cf565b600355565b3361107e5f546001600160a01b031690565b6001600160a01b0316146110a45760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b336110e05f546001600160a01b031690565b6001600160a01b0316146111065760405162461bcd60e51b81526004016108cf9061298b565b5f80546001600160a01b0319169055565b336111295f546001600160a01b031690565b6001600160a01b03161461114f5760405162461bcd60e51b81526004016108cf9061298b565b600754600160d81b900460ff16156111795760405162461bcd60e51b81526004016108cf90612a0a565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190612ae5565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af115801561124c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112709190612ae5565b600d80546001600160a01b0319166001600160a01b0392909216918217905561129c9030905f1961194b565b600d5460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b039091169063095ea7b3906044016020604051808303815f875af11580156112fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113229190612b00565b50600d80546001600160a01b039081165f908152600c60205260409020805460ff19166001908117909155915461135b9291169061106c565b305f8181526008602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156113e7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bf59190612b1b565b3361141e5f546001600160a01b031690565b6001600160a01b0316146114445760405162461bcd60e51b81526004016108cf9061298b565b670de0b6b3a76400006103e86114666a084595161401484a00000060016129d4565b61147091906129eb565b61147a91906129eb565b8110156114dc5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016108cf565b6114ee81670de0b6b3a76400006129d4565b60015550565b336115065f546001600160a01b031690565b6001600160a01b03161461152c5760405162461bcd60e51b81526004016108cf9061298b565b6007805460ff60d01b19169055565b3361154d5f546001600160a01b031690565b6001600160a01b0316146115735760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166115995760405162461bcd60e51b81526004016108cf90612b46565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336115cd5f546001600160a01b031690565b6001600160a01b0316146115f35760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166116195760405162461bcd60e51b81526004016108cf90612b46565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361164d5f546001600160a01b031690565b6001600160a01b0316146116735760405162461bcd60e51b81526004016108cf9061298b565b600d546001600160a01b03908116908316036116d15760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016108cf565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f61083d338484611a6e565b336117195f546001600160a01b031690565b6001600160a01b03161461173f5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166117655760405162461bcd60e51b81526004016108cf90612b46565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336117995f546001600160a01b031690565b6001600160a01b0316146117bf5760405162461bcd60e51b81526004016108cf9061298b565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611803573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118279190612b76565b9050610bf58383836121e7565b336118465f546001600160a01b031690565b6001600160a01b03161461186c5760405162461bcd60e51b81526004016108cf9061298b565b6001600160a01b0381166118b45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016108cf565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146118fd576040519150601f19603f3d011682016040523d82523d5f602084013e611902565b606091505b50509050806119475760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016108cf565b5050565b6001600160a01b0383166119ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cf565b6001600160a01b038216611a0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cf565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ad25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cf565b6001600160a01b038216611b345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cf565b5f8111611b955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cf565b600754600160d81b900460ff16158015611be957505f546001600160a01b03848116911614801590611bd057506001600160a01b0383163014155b8015611be957505f546001600160a01b03838116911614155b15611c2c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108cf565b600754600160d01b900460ff1615611eed575f546001600160a01b03848116911614801590611c6857505f546001600160a01b03838116911614155b8015611c7c57506001600160a01b03821615155b8015611c9357506001600160a01b03821661dead14155b8015611ca95750600754600160c81b900460ff16155b15611eed576001600160a01b0383165f908152600c602052604090205460ff168015611ced57506001600160a01b0382165f908152600b602052604090205460ff16155b15611dc057600154811115611d525760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016108cf565b6002546001600160a01b0383165f90815260086020526040902054611d779083612a8e565b1115611dbb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108cf565b611eed565b6001600160a01b0382165f908152600c602052604090205460ff168015611dff57506001600160a01b0383165f908152600b602052604090205460ff16155b15611e6557600154811115611dbb5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016108cf565b6001600160a01b0382165f908152600b602052604090205460ff16611eed576002546001600160a01b0383165f90815260086020526040902054611ea99083612a8e565b1115611eed5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108cf565b600354305f90815260086020526040902054108015908190611f195750600754600160c81b900460ff16155b8015611f3d57506001600160a01b0384165f908152600c602052604090205460ff16155b8015611f6157506001600160a01b0384165f908152600a602052604090205460ff16155b8015611f8557506001600160a01b0383165f908152600a602052604090205460ff16155b15611fb3576007805460ff60c81b1916600160c81b179055611fa561230e565b6007805460ff60c81b191690555b6007546001600160a01b0385165f908152600a602052604090205460ff600160c81b909204821615911680611fff57506001600160a01b0384165f908152600a602052604090205460ff165b1561200757505f5b6001600160a01b0385165f908152600860205260409020548381101561203f5760405162461bcd60e51b81526004016108cf90612a48565b5f8215612175576001600160a01b0386165f908152600c602052604090205460ff1680156120785750600754600160a81b900460ff1615155b156120a9576007546103e89061209890600160a81b900460ff16876129d4565b6120a291906129eb565b9050612108565b6001600160a01b0387165f908152600c602052604090205460ff1680156120db5750600754600160a01b900460ff1615155b15612108576007546103e8906120fb90600160a01b900460ff16876129d4565b61210591906129eb565b90505b8015612175576001600160a01b0387165f8181526008602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526008602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121d69089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908716916122429190612b8d565b5f604051808303815f865af19150503d805f811461227b576040519150601f19603f3d011682016040523d82523d5f602084013e612280565b606091505b50915091508180156122aa5750805115806122aa5750808060200190518101906122aa9190612b00565b6123075760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b60648201526084016108cf565b5050505050565b6003545f61231d8260146129d4565b305f908152600860205260409020541115612343576003546123409060146129d4565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061237657612376612a34565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106123be576123be612a34565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906124159086905f90869030904290600401612ba8565b5f604051808303815f87803b15801561242c575f80fd5b505af115801561243e573d5f803e3d5ffd5b5047925050811590506125f7576007545f9060649061246790600160b01b900460ff16846129d4565b61247191906129eb565b6007549091505f9060649061249090600160c01b900460ff16856129d4565b61249a91906129eb565b90505f816124a88486612aa1565b6124b29190612aa1565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146124fd576040519150601f19603f3d011682016040523d82523d5f602084013e612502565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461254f576040519150601f19603f3d011682016040523d82523d5f602084013e612554565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f81146125a1576040519150601f19603f3d011682016040523d82523d5f602084013e6125a6565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156126175781810151838201526020016125ff565b50505f910152565b602081525f825180602084015261263d8160408501602087016125fd565b601f01601f19169190910160400192915050565b6001600160a01b0381168114612665575f80fd5b50565b5f8060408385031215612679575f80fd5b823561268481612651565b946020939093013593505050565b5f805f606084860312156126a4575f80fd5b83356126af81612651565b925060208401356126bf81612651565b929592945050506040919091013590565b5f602082840312156126e0575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612724576127246126e7565b604052919050565b5f67ffffffffffffffff821115612745576127456126e7565b5060051b60200190565b5f82601f83011261275e575f80fd5b8135602061277361276e8361272c565b6126fb565b82815260059290921b84018101918181019086841115612791575f80fd5b8286015b848110156127ac5780358352918301918301612795565b509695505050505050565b5f80604083850312156127c8575f80fd5b823567ffffffffffffffff808211156127df575f80fd5b818501915085601f8301126127f2575f80fd5b8135602061280261276e8361272c565b82815260059290921b84018101918181019089841115612820575f80fd5b948201945b8386101561284757853561283881612651565b82529482019490820190612825565b9650508601359250508082111561285c575f80fd5b506128698582860161274f565b9150509250929050565b803560ff81168114612883575f80fd5b919050565b5f805f6060848603121561289a575f80fd5b6128a384612873565b92506128b160208501612873565b91506128bf60408501612873565b90509250925092565b5f80604083850312156128d9575f80fd5b6128e283612873565b91506128f060208401612873565b90509250929050565b8015158114612665575f80fd5b5f8060408385031215612917575f80fd5b823561292281612651565b91506020830135612932816128f9565b809150509250929050565b5f6020828403121561294d575f80fd5b813561295881612651565b9392505050565b5f8060408385031215612970575f80fd5b823561297b81612651565b9150602083013561293281612651565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610841576108416129c0565b5f82612a0557634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b80820180821115610841576108416129c0565b81810381811115610841576108416129c0565b5f60018201612ac557612ac56129c0565b5060010190565b60ff8181168382160190811115610841576108416129c0565b5f60208284031215612af5575f80fd5b815161295881612651565b5f60208284031215612b10575f80fd5b8151612958816128f9565b5f805f60608486031215612b2d575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612b86575f80fd5b5051919050565b5f8251612b9e8184602087016125fd565b9190910192915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612bf65784516001600160a01b031683529383019391830191600101612bd1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f21dc898ca672052408581a7265fb323ca63c1e178c31dd91a04159aacb7ae6064736f6c63430008150033

Deployed Bytecode Sourcemap

2092:15699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7444:83;;;;;;;;;;-1:-1:-1;7514:5:0;;;;;;;;;;;;-1:-1:-1;;;7514:5:0;;;;7444:83;;;;;;;:::i;:::-;;;;;;;;8073:152;;;;;;;;;;-1:-1:-1;8073:152:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;8073:152:0;1126:187:1;3779:115:0;;;;;;;;;;;;3851:42;3779:115;;;;;-1:-1:-1;;;;;1508:32:1;;;1490:51;;1478:2;1463:18;3779:115:0;1318:229:1;7714:91:0;;;;;;;;;;-1:-1:-1;2281:17:0;7714:91;;;1698:25:1;;;1686:2;1671:18;7714:91:0;1552:177:1;2989:24:0;;;;;;;;;;-1:-1:-1;2989:24:0;;;;-1:-1:-1;;;2989:24:0;;;;;;;;;1906:4:1;1894:17;;;1876:36;;1864:2;1849:18;2989:24:0;1734:184:1;8744:520:0;;;;;;;;;;-1:-1:-1;8744:520:0;;;;;:::i;:::-;;:::i;15233:235::-;;;;;;;;;;-1:-1:-1;15233:235:0;;;;;:::i;:::-;;:::i;:::-;;13012:492;;;;;;;;;;-1:-1:-1;13012:492:0;;;;;:::i;:::-;;:::i;7630:76::-;;;;;;;;;;-1:-1:-1;7696:2:0;7630:76;;12049:300;;;;;;;;;;-1:-1:-1;12049:300:0;;;;;:::i;:::-;;:::i;2579:74::-;;;;;;;;;;-1:-1:-1;2579:74:0;;;;-1:-1:-1;;;;;2579:74:0;;;3901:28;;;;;;;;;;-1:-1:-1;3901:28:0;;;;-1:-1:-1;;;;;3901:28:0;;;3118:33;;;;;;;;;;-1:-1:-1;3118:33:0;;;;-1:-1:-1;;;3118:33:0;;;;;;12357:337;;;;;;;;;;-1:-1:-1;12357:337:0;;;;;:::i;:::-;;:::i;12702:136::-;;;;;;;;;;-1:-1:-1;12702:136:0;;;;;:::i;:::-;;:::i;2660:70::-;;;;;;;;;;-1:-1:-1;2660:70:0;;;;-1:-1:-1;;;;;2660:70:0;;;13512:131;;;;;;;;;;;;;:::i;14620:361::-;;;;;;;;;;-1:-1:-1;14620:361:0;;;;;:::i;:::-;;:::i;12846:158::-;;;;;;;;;;-1:-1:-1;12846:158:0;;;;;:::i;:::-;;:::i;2948:32::-;;;;;;;;;;-1:-1:-1;2948:32:0;;;;-1:-1:-1;;;2948:32:0;;;;;;7813:110;;;;;;;;;;-1:-1:-1;7813:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;7897:18:0;7870:7;7897:18;;;:9;:18;;;;;;;7813:110;709:92;;;;;;;;;;;;;:::i;13651:742::-;;;:::i;14989:236::-;;;;;;;;;;-1:-1:-1;14989:236:0;;;;;:::i;:::-;;:::i;11957:84::-;;;;;;;;;;;;;:::i;15852:177::-;;;;;;;;;;-1:-1:-1;15852:177:0;;;;;:::i;:::-;;:::i;15659:185::-;;;;;;;;;;-1:-1:-1;15659:185:0;;;;;:::i;:::-;;:::i;16037:123::-;;;;;;;;;;-1:-1:-1;16037:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;16124:28:0;16100:4;16124:28;;;:19;:28;;;;;;;;;16037:123;488:87;;;;;;;;;;-1:-1:-1;534:7:0;561:6;-1:-1:-1;;;;;561:6:0;488:87;;7535;;;;;;;;;;-1:-1:-1;7607:7:0;;;;;;;;;;;;-1:-1:-1;;;7607:7:0;;;;7535:87;;14401:211;;;;;;;;;;-1:-1:-1;14401:211:0;;;;;:::i;:::-;;:::i;2737:83::-;;;;;;;;;;-1:-1:-1;2737:83:0;;;;-1:-1:-1;;;;;2737:83:0;;;8578:158;;;;;;;;;;-1:-1:-1;8578:158:0;;;;;:::i;:::-;;:::i;15476:175::-;;;;;;;;;;-1:-1:-1;15476:175:0;;;;;:::i;:::-;;:::i;16168:240::-;;;;;;;;;;-1:-1:-1;16168:240:0;;;;;:::i;:::-;;:::i;2307:52::-;;;;;;;;;;;;;;;;3020:29;;;;;;;;;;-1:-1:-1;3020:29:0;;;;-1:-1:-1;;;3020:29:0;;;;;;16416:247;;;;;;;;;;-1:-1:-1;16416:247:0;;;;;:::i;:::-;;:::i;3056:25::-;;;;;;;;;;-1:-1:-1;3056:25:0;;;;-1:-1:-1;;;3056:25:0;;;;;;2910:31;;;;;;;;;;-1:-1:-1;2910:31:0;;;;-1:-1:-1;;;2910:31:0;;;;;;7931:134;;;;;;;;;;-1:-1:-1;7931:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;8030:18:0;;;8003:7;8030:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7931:134;2424:62;;;;;;;;;;;;;;;;2503:69;;;;;;;;;;-1:-1:-1;2503:69:0;;;;-1:-1:-1;;;;;2503:69:0;;;2371:41;;;;;;;;;;;;;;;;8073:152;8141:4;8158:37;8167:10;8179:7;8188:6;8158:8;:37::i;:::-;-1:-1:-1;8213:4:0;8073:152;;;;;:::o;8744:520::-;-1:-1:-1;;;;;8879:19:0;;8835:4;8879:19;;;:11;:19;;;;;;;;8899:10;8879:31;;;;;;;;-1:-1:-1;;8925:37:0;;8921:263;;9007:6;8987:16;:26;;8979:79;;;;-1:-1:-1;;;8979:79:0;;7366:2:1;8979:79:0;;;7348:21:1;7405:2;7385:18;;;7378:30;7444:34;7424:18;;;7417:62;-1:-1:-1;;;7495:18:1;;;7488:38;7543:19;;8979:79:0;;;;;;;;;9102:55;9111:6;9119:10;9150:6;9131:16;:25;9102:8;:55::i;:::-;9196:36;9206:6;9214:9;9225:6;9196:9;:36::i;:::-;-1:-1:-1;9252:4:0;;8744:520;-1:-1:-1;;;;8744:520:0:o;15233:235::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;15368:4:::1;15360;15339:17;2281::::0;15355:1:::1;15339:17;:::i;:::-;15338:26;;;;:::i;:::-;15337:35;;;;:::i;:::-;15321:12;:51;;15313:101;;;::::0;-1:-1:-1;;;15313:101:0;;8663:2:1;15313:101:0::1;::::0;::::1;8645:21:1::0;8702:2;8682:18;;;8675:30;8741:34;8721:18;;;8714:62;-1:-1:-1;;;8792:18:1;;;8785:35;8837:19;;15313:101:0::1;8461:401:1::0;15313:101:0::1;15437:23;:12:::0;15453:6:::1;15437:23;:::i;:::-;15425:9;:35:::0;-1:-1:-1;15233:235:0:o;13012:492::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;13129:8:::1;::::0;-1:-1:-1;;;13129:8:0;::::1;;;13128:9;13120:38;;;;-1:-1:-1::0;;;13120:38:0::1;;;;;;;:::i;:::-;13174:9;13169:328;13193:9;:16;13189:1;:20;13169:328;;;13264:7;13272:1;13264:10;;;;;;;;:::i;:::-;;;;;;;13239:9;:21;13249:10;-1:-1:-1::0;;;;;13239:21:0::1;-1:-1:-1::0;;;;;13239:21:0::1;;;;;;;;;;;;;:35;;13231:86;;;;-1:-1:-1::0;;;13231:86:0::1;;;;;;;:::i;:::-;13359:7;13367:1;13359:10;;;;;;;;:::i;:::-;;;;;;;13332:9;:23;13342:9;13352:1;13342:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13332:23:0::1;-1:-1:-1::0;;;;;13332:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;13409:7;13417:1;13409:10;;;;;;;;:::i;:::-;;;;;;;13384:9;:21;13394:10;-1:-1:-1::0;;;;;13384:21:0::1;-1:-1:-1::0;;;;;13384:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;13460:9;13470:1;13460:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13439:46:0::1;13448:10;-1:-1:-1::0;;;;;13439:46:0::1;;13474:7;13482:1;13474:10;;;;;;;;:::i;:::-;;;;;;;13439:46;;;;1698:25:1::0;;1686:2;1671:18;;1552:177;13439:46:0::1;;;;;;;;13211:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13169:328;;;;13012:492:::0;;:::o;12049:300::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;12159:6:::1;:16:::0;;-1:-1:-1;;;;12186:26:0;-1:-1:-1;;;12159:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;12186:26:0;;;;;-1:-1:-1;;;12186:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;12223:18:0::1;-1:-1:-1::0;;;12223:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12284:7;::::1;::::0;::::1;::::0;12261:20:::1;::::0;12270:11;;::::1;::::0;::::1;::::0;12261:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;12260:39;;12296:3;12260:39;12252:89;;;::::0;-1:-1:-1;;;12252:89:0;;10509:2:1;12252:89:0::1;::::0;::::1;10491:21:1::0;10548:2;10528:18;;;10521:30;10587:34;10567:18;;;10560:62;-1:-1:-1;;;10638:18:1;;;10631:35;10683:19;;12252:89:0::1;10307:401:1::0;12357:337:0;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;12472:2:::1;12455:13;:19;;;;12447:73;;;::::0;-1:-1:-1;;;12447:73:0;;10915:2:1;12447:73:0::1;::::0;::::1;10897:21:1::0;10954:2;10934:18;;;10927:30;10993:34;10973:18;;;10966:62;-1:-1:-1;;;11044:18:1;;;11037:39;11093:19;;12447:73:0::1;10713:405:1::0;12447:73:0::1;12557:2;12539:14;:20;;;;12531:75;;;::::0;-1:-1:-1;;;12531:75:0;;11325:2:1;12531:75:0::1;::::0;::::1;11307:21:1::0;11364:2;11344:18;;;11337:30;11403:34;11383:18;;;11376:62;-1:-1:-1;;;11454:18:1;;;11447:40;11504:19;;12531:75:0::1;11123:406:1::0;12531:75:0::1;12617:12;:28:::0;;-1:-1:-1;;;;12656:30:0;-1:-1:-1;;;12617:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;12656:30:0;;-1:-1:-1;;;12656:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12357:337::o;12702:136::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12791:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;12791:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12702:136::o;13512:131::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;13580:8:::1;::::0;-1:-1:-1;;;13580:8:0;::::1;;;13579:9;13571:38;;;;-1:-1:-1::0;;;13571:38:0::1;;;;;;;:::i;:::-;13620:8;:15:::0;;-1:-1:-1;;;;13620:15:0::1;-1:-1:-1::0;;;13620:15:0::1;::::0;;13512:131::o;14620:361::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;14745:6:::1;14724:17;2281::::0;14740:1:::1;14724:17;:::i;:::-;14723:28;;;;:::i;:::-;14706:13;:45;;14698:111;;;::::0;-1:-1:-1;;;14698:111:0;;11736:2:1;14698:111:0::1;::::0;::::1;11718:21:1::0;11775:2;11755:18;;;11748:30;11814:34;11794:18;;;11787:62;-1:-1:-1;;;11865:18:1;;;11858:51;11926:19;;14698:111:0::1;11534:417:1::0;14698:111:0::1;14867:4;14846:17;2281::::0;14862:1:::1;14846:17;:::i;:::-;14845:26;;;;:::i;:::-;14828:13;:43;;14820:108;;;::::0;-1:-1:-1;;;14820:108:0;;12158:2:1;14820:108:0::1;::::0;::::1;12140:21:1::0;12197:2;12177:18;;;12170:30;12236:34;12216:18;;;12209:62;-1:-1:-1;;;12287:18:1;;;12280:50;12347:19;;14820:108:0::1;11956:416:1::0;14820:108:0::1;14939:18;:34:::0;14620:361::o;12846:158::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12945:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;12945:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12846:158::o;709:92::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;791:1:::1;774:19:::0;;-1:-1:-1;;;;;;774:19:0::1;::::0;;709:92::o;13651:742::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;13727:8:::1;::::0;-1:-1:-1;;;13727:8:0;::::1;;;13726:9;13718:38;;;;-1:-1:-1::0;;;13718:38:0::1;;;;;;;:::i;:::-;3851:42;-1:-1:-1::0;;;;;13803:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13785:76;::::0;-1:-1:-1;;;13785:76:0;;13849:4:::1;13785:76;::::0;::::1;12845:34:1::0;2859:42:0::1;12895:18:1::0;;;12888:43;-1:-1:-1;;;;;13785:55:0;;;::::1;::::0;::::1;::::0;12780:18:1;;13785:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13769:13;:92:::0;;-1:-1:-1;;;;;;13769:92:0::1;-1:-1:-1::0;;;;;13769:92:0;;;::::1;::::0;;::::1;::::0;;13874:66:::1;::::0;13891:4:::1;::::0;-1:-1:-1;;13874:8:0::1;:66::i;:::-;13960:13;::::0;13953:73:::1;::::0;-1:-1:-1;;;13953:73:0;;3851:42:::1;13953:73;::::0;::::1;13116:51:1::0;-1:-1:-1;;13183:18:1;;;13176:34;-1:-1:-1;;;;;13960:13:0;;::::1;::::0;13953:29:::1;::::0;13089:18:1;;13953:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14065:13:0::1;::::0;;-1:-1:-1;;;;;14065:13:0;;::::1;14039:40;::::0;;;:25:::1;:40;::::0;;;;:47;;-1:-1:-1;;14039:47:0::1;14082:4;14039:47:::0;;::::1;::::0;;;14137:13;;14099:59:::1;::::0;14137:13;::::1;::::0;14099:29:::1;:59::i;:::-;14243:4;14263:24;::::0;;;:9:::1;:24;::::0;;;;;;14334:10:::1;::::0;14171:214;;-1:-1:-1;;;14171:214:0;;::::1;::::0;::::1;13812:34:1::0;;;;13862:18;;;13855:34;13905:18;;;13898:34;;;13948:18;;;13941:34;;;;-1:-1:-1;;;;;14334:10:0::1;13991:19:1::0;;;13984:44;14359:15:0::1;14044:19:1::0;;;14037:35;3851:42:0::1;::::0;14171:31:::1;::::0;14210:9:::1;::::0;13746:19:1;;14171:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14989:236::-:0;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;15113:4:::1;15105;15084:17;2281::::0;15100:1:::1;15084:17;:::i;:::-;15083:26;;;;:::i;:::-;15082:35;;;;:::i;:::-;15070:8;:47;;15062:102;;;::::0;-1:-1:-1;;;15062:102:0;;14596:2:1;15062:102:0::1;::::0;::::1;14578:21:1::0;14635:2;14615:18;;;14608:30;14674:34;14654:18;;;14647:62;-1:-1:-1;;;14725:18:1;;;14718:40;14775:19;;15062:102:0::1;14394:406:1::0;15062:102:0::1;15198:19;:8:::0;15210:6:::1;15198:19;:::i;:::-;15175:20;:42:::0;-1:-1:-1;14989:236:0:o;11957:84::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;12011:14:::1;:22:::0;;-1:-1:-1;;;;12011:22:0::1;::::0;;11957:84::o;15852:177::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15936:24:0;::::1;15928:59;;;;-1:-1:-1::0;;;15928:59:0::1;;;;;;;:::i;:::-;15998:10;:23:::0;;-1:-1:-1;;;;;;15998:23:0::1;-1:-1:-1::0;;;;;15998:23:0;;;::::1;::::0;;;::::1;::::0;;15852:177::o;15659:185::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15747:24:0;::::1;15739:59;;;;-1:-1:-1::0;;;15739:59:0::1;;;;;;;:::i;:::-;15809:14;:27:::0;;-1:-1:-1;;;;;;15809:27:0::1;-1:-1:-1::0;;;;;15809:27:0;;;::::1;::::0;;;::::1;::::0;;15659:185::o;14401:211::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;14510:13:::1;::::0;-1:-1:-1;;;;;14510:13:0;;::::1;14502:21:::0;;::::1;::::0;14494:60:::1;;;::::0;-1:-1:-1;;;14494:60:0;;15358:2:1;14494:60:0::1;::::0;::::1;15340:21:1::0;15397:2;15377:18;;;15370:30;15436:28;15416:18;;;15409:56;15482:18;;14494:60:0::1;15156:350:1::0;14494:60:0::1;-1:-1:-1::0;;;;;14565:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;14565:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14401:211::o;8578:158::-;8649:4;8666:40;8676:10;8688:9;8699:6;8666:9;:40::i;15476:175::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15559:24:0;::::1;15551:59;;;;-1:-1:-1::0;;;15551:59:0::1;;;;;;;:::i;:::-;15621:9;:22:::0;;-1:-1:-1;;;;;;15621:22:0::1;-1:-1:-1::0;;;;;15621:22:0;;;::::1;::::0;;;::::1;::::0;;15476:175::o;16168:240::-;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;16280:38:::1;::::0;-1:-1:-1;;;16280:38:0;;16312:4:::1;16280:38;::::0;::::1;1490:51:1::0;16253:24:0::1;::::0;-1:-1:-1;;;;;16280:23:0;::::1;::::0;::::1;::::0;1463:18:1;;16280:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16253:65;;16329:51;16352:5;16359:2;16363:16;16329:22;:51::i;16416:247::-:0;634:10;623:7;534;561:6;-1:-1:-1;;;;;561:6:0;;488:87;623:7;-1:-1:-1;;;;;623:21:0;;615:66;;;;-1:-1:-1;;;615:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16494:18:0;::::1;16486:46;;;::::0;-1:-1:-1;;;16486:46:0;;15902:2:1;16486:46:0::1;::::0;::::1;15884:21:1::0;15941:2;15921:18;;;15914:30;-1:-1:-1;;;15960:18:1;;;15953:45;16015:18;;16486:46:0::1;15700:339:1::0;16486:46:0::1;16546:12;16564:4;-1:-1:-1::0;;;;;16564:9:0::1;16581:21;16564:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16545:62;;;16626:7;16618:37;;;::::0;-1:-1:-1;;;16618:37:0;;16456:2:1;16618:37:0::1;::::0;::::1;16438:21:1::0;16495:2;16475:18;;;16468:30;-1:-1:-1;;;16514:18:1;;;16507:47;16571:18;;16618:37:0::1;16254:341:1::0;16618:37:0::1;16475:188;16416:247:::0;:::o;8233:337::-;-1:-1:-1;;;;;8326:19:0;;8318:68;;;;-1:-1:-1;;;8318:68:0;;16802:2:1;8318:68:0;;;16784:21:1;16841:2;16821:18;;;16814:30;16880:34;16860:18;;;16853:62;-1:-1:-1;;;16931:18:1;;;16924:34;16975:19;;8318:68:0;16600:400:1;8318:68:0;-1:-1:-1;;;;;8405:21:0;;8397:68;;;;-1:-1:-1;;;8397:68:0;;17207:2:1;8397:68:0;;;17189:21:1;17246:2;17226:18;;;17219:30;17285:34;17265:18;;;17258:62;-1:-1:-1;;;17336:18:1;;;17329:32;17378:19;;8397:68:0;17005:398:1;8397:68:0;-1:-1:-1;;;;;8478:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8530:32;;1698:25:1;;;8530:32:0;;1671:18:1;8530:32:0;;;;;;;8233:337;;;:::o;9272:2677::-;-1:-1:-1;;;;;9360:18:0;;9352:68;;;;-1:-1:-1;;;9352:68:0;;17610:2:1;9352:68:0;;;17592:21:1;17649:2;17629:18;;;17622:30;17688:34;17668:18;;;17661:62;-1:-1:-1;;;17739:18:1;;;17732:35;17784:19;;9352:68:0;17408:401:1;9352:68:0;-1:-1:-1;;;;;9439:16:0;;9431:64;;;;-1:-1:-1;;;9431:64:0;;18016:2:1;9431:64:0;;;17998:21:1;18055:2;18035:18;;;18028:30;18094:34;18074:18;;;18067:62;-1:-1:-1;;;18145:18:1;;;18138:33;18188:19;;9431:64:0;17814:399:1;9431:64:0;9523:1;9514:6;:10;9506:64;;;;-1:-1:-1;;;9506:64:0;;18420:2:1;9506:64:0;;;18402:21:1;18459:2;18439:18;;;18432:30;18498:34;18478:18;;;18471:62;-1:-1:-1;;;18549:18:1;;;18542:39;18598:19;;9506:64:0;18218:405:1;9506:64:0;9588:8;;-1:-1:-1;;;9588:8:0;;;;9587:9;:72;;;;-1:-1:-1;534:7:0;561:6;-1:-1:-1;;;;;9601:15:0;;;561:6;;9601:15;;;;:40;;-1:-1:-1;;;;;;9620:21:0;;9636:4;9620:21;;9601:40;:57;;;;-1:-1:-1;534:7:0;561:6;-1:-1:-1;;;;;9645:13:0;;;561:6;;9645:13;;9601:57;9583:134;;;9676:29;;-1:-1:-1;;;9676:29:0;;18830:2:1;9676:29:0;;;18812:21:1;18869:2;18849:18;;;18842:30;-1:-1:-1;;;18888:18:1;;;18881:49;18947:18;;9676:29:0;18628:343:1;9583:134:0;9733:14;;-1:-1:-1;;;9733:14:0;;;;9729:830;;;534:7;561:6;-1:-1:-1;;;;;9768:15:0;;;561:6;;9768:15;;;;:32;;-1:-1:-1;534:7:0;561:6;-1:-1:-1;;;;;9787:13:0;;;561:6;;9787:13;;9768:32;:52;;;;-1:-1:-1;;;;;;9804:16:0;;;;9768:52;:77;;;;-1:-1:-1;;;;;;9824:21:0;;9838:6;9824:21;;9768:77;:90;;;;-1:-1:-1;9850:8:0;;-1:-1:-1;;;9850:8:0;;;;9849:9;9768:90;9764:784;;;-1:-1:-1;;;;;9883:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;9919:35:0;;;;;;:31;:35;;;;;;;;9918:36;9883:71;9879:654;;;9997:20;;9987:6;:30;;9979:80;;;;-1:-1:-1;;;9979:80:0;;19178:2:1;9979:80:0;;;19160:21:1;19217:2;19197:18;;;19190:30;19256:34;19236:18;;;19229:62;-1:-1:-1;;;19307:18:1;;;19300:35;19352:19;;9979:80:0;18976:401:1;9979:80:0;10116:9;;-1:-1:-1;;;;;7897:18:0;;7870:7;7897:18;;;:9;:18;;;;;;10090:22;;:6;:22;:::i;:::-;:35;;10082:67;;;;-1:-1:-1;;;10082:67:0;;19584:2:1;10082:67:0;;;19566:21:1;19623:2;19603:18;;;19596:30;-1:-1:-1;;;19642:18:1;;;19635:49;19701:18;;10082:67:0;19382:343:1;10082:67:0;9879:654;;;-1:-1:-1;;;;;10179:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;10213:37:0;;;;;;:31;:37;;;;;;;;10212:38;10179:71;10175:358;;;10293:20;;10283:6;:30;;10275:80;;;;-1:-1:-1;;;10275:80:0;;19932:2:1;10275:80:0;;;19914:21:1;19971:2;19951:18;;;19944:30;20010:34;19990:18;;;19983:62;-1:-1:-1;;;20061:18:1;;;20054:36;20107:19;;10275:80:0;19730:402:1;10175:358:0;-1:-1:-1;;;;;10386:35:0;;;;;;:31;:35;;;;;;;;10381:152;;10480:9;;-1:-1:-1;;;;;7897:18:0;;7870:7;7897:18;;;:9;:18;;;;;;10454:22;;:6;:22;:::i;:::-;:35;;10446:67;;;;-1:-1:-1;;;10446:67:0;;19584:2:1;10446:67:0;;;19566:21:1;19623:2;19603:18;;;19596:30;-1:-1:-1;;;19642:18:1;;;19635:49;19701:18;;10446:67:0;19382:343:1;10446:67:0;10614:18;;10604:4;10571:12;7897:18;;;:9;:18;;;;;;-1:-1:-1;10586:46:0;;;;;10649:20;;-1:-1:-1;10661:8:0;;-1:-1:-1;;;10661:8:0;;;;10660:9;10649:20;:56;;;;-1:-1:-1;;;;;;10674:31:0;;;;;;:25;:31;;;;;;;;10673:32;10649:56;:86;;;;-1:-1:-1;;;;;;10710:25:0;;;;;;:19;:25;;;;;;;;10709:26;10649:86;:114;;;;-1:-1:-1;;;;;;10740:23:0;;;;;;:19;:23;;;;;;;;10739:24;10649:114;10645:218;;;10780:8;:15;;-1:-1:-1;;;;10780:15:0;-1:-1:-1;;;10780:15:0;;;10810:10;:8;:10::i;:::-;10835:8;:16;;-1:-1:-1;;;;10835:16:0;;;10645:218;10891:8;;-1:-1:-1;;;;;10916:25:0;;10875:12;10916:25;;;:19;:25;;;;;;10891:8;-1:-1:-1;;;10891:8:0;;;;;10890:9;;10916:25;;:52;;-1:-1:-1;;;;;;10945:23:0;;;;;;:19;:23;;;;;;;;10916:52;10912:100;;;-1:-1:-1;10995:5:0;10912:100;-1:-1:-1;;;;;11048:15:0;;11024:21;11048:15;;;:9;:15;;;;;;11082:23;;;;11074:74;;;;-1:-1:-1;;;11074:74:0;;;;;;;:::i;:::-;11161:12;11192:7;11188:602;;;-1:-1:-1;;;;;11220:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;11253:13:0;;-1:-1:-1;;;11253:13:0;;;;:17;;11220:50;11216:264;;;11308:13;;11325:4;;11299:22;;-1:-1:-1;;;11308:13:0;;;;11299:6;:22;:::i;:::-;11298:31;;;;:::i;:::-;11291:38;;11216:264;;;-1:-1:-1;;;;;11355:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;11390:12:0;;-1:-1:-1;;;11390:12:0;;;;:16;;11355:51;11351:129;;;11444:12;;11460:4;;11435:21;;-1:-1:-1;;;11444:12:0;;;;11435:6;:21;:::i;:::-;11434:30;;;;:::i;:::-;11427:37;;11351:129;11500:8;;11496:283;;-1:-1:-1;;;;;11607:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;11671:4;11653:24;;;;;;;:32;;;;;;11728:35;1698:25:1;;;11571:13:0;;;;;11671:4;;11607:15;11728:35;;1671:18:1;11728:35:0;;;;;;;11496:283;-1:-1:-1;;;;;11825:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;11865:13;;;;;;;;;;:23;;;;;;11915:26;;;;;;11844:6;1698:25:1;;1686:2;1671:18;;1552:177;11915:26:0;;;;;;;;9341:2608;;;;9272:2677;;;:::o;833:320::-;964:59;;;-1:-1:-1;;;;;13134:32:1;;;964:59:0;;;13116:51:1;13183:18;;;;13176:34;;;964:59:0;;;;;;;;;;13089:18:1;;;;964:59:0;;;;;;;-1:-1:-1;;;;;964:59:0;-1:-1:-1;;;964:59:0;;;953:71;;-1:-1:-1;;;;953:10:0;;;;:71;;964:59;953:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:107;;;;1043:7;:57;;;;-1:-1:-1;1055:11:0;;:16;;:44;;;1086:4;1075:24;;;;;;;;;;;;:::i;:::-;1035:110;;;;-1:-1:-1;;;1035:110:0;;20631:2:1;1035:110:0;;;20613:21:1;20670:2;20650:18;;;20643:30;20709:34;20689:18;;;20682:62;-1:-1:-1;;;20760:18:1;;;20753:38;20808:19;;1035:110:0;20429:404:1;1035:110:0;906:247;;833:320;;;:::o;16671:1117::-;16734:18;;16710:21;16819:23;16734:18;16840:2;16819:23;:::i;:::-;16810:4;7870:7;7897:18;;;:9;:18;;;;;;16792:50;16788:122;;;16875:18;;:23;;16896:2;16875:23;:::i;:::-;16859:39;;16788:122;16946:16;;;16960:1;16946:16;;;;;;;;16922:21;;16946:16;;;;;;;;;;-1:-1:-1;16946:16:0;16922:40;;16991:4;16973;16978:1;16973:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16973:23:0;;;-1:-1:-1;;;;;16973:23:0;;;;;2859:42;17007:4;17012:1;17007:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17007:14:0;;;:7;;;;;;;;;;;:14;17034:122;;-1:-1:-1;;;17034:122:0;;3851:42;;17034:66;;:122;;17101:13;;17116:1;;17119:4;;17133;;17140:15;;17034:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17190:21:0;;-1:-1:-1;;17226:14:0;;;-1:-1:-1;17222:559:0;;17291:6;;17257:17;;17301:3;;17278:19;;-1:-1:-1;;;17291:6:0;;;;17278:10;:19;:::i;:::-;17277:27;;;;:::i;:::-;17354:7;;17257:47;;-1:-1:-1;17319:18:0;;17365:3;;17341:20;;-1:-1:-1;;;17354:7:0;;;;17341:10;:20;:::i;:::-;17340:28;;;;:::i;:::-;17319:49;-1:-1:-1;17383:22:0;17319:49;17408:22;17421:9;17408:10;:22;:::i;:::-;:35;;;;:::i;:::-;17482:10;;17474:47;;17383:60;;-1:-1:-1;;;;;;17482:10:0;;17506;;17474:47;;;;17506:10;17482;17474:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17558:14:0;;17550:55;;17460:61;;-1:-1:-1;;;;;;17558:14:0;;17586;;17550:55;;;;17586:14;17558;17550:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17642:9:0;;17634:45;;17536:69;;-1:-1:-1;;;;;;17642:9:0;;17665;;17634:45;;;;17665:9;17642;17634:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17701:68:0;;;22054:25:1;;;22110:2;22095:18;;22088:34;;;22138:18;;;22131:34;;;22196:2;22181:18;;22174:34;;;17620:59:0;;-1:-1:-1;17701:68:0;;22041:3:1;22026:19;17701:68:0;;;;;;;17242:539;;;17222:559;16699:1089;;;;16671:1117::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;725:70;670:131;:::o;806:315::-;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1923:456::-;2000:6;2008;2016;2069:2;2057:9;2048:7;2044:23;2040:32;2037:52;;;2085:1;2082;2075:12;2037:52;2124:9;2111:23;2143:31;2168:5;2143:31;:::i;:::-;2193:5;-1:-1:-1;2250:2:1;2235:18;;2222:32;2263:33;2222:32;2263:33;:::i;:::-;1923:456;;2315:7;;-1:-1:-1;;;2369:2:1;2354:18;;;;2341:32;;1923:456::o;2384:180::-;2443:6;2496:2;2484:9;2475:7;2471:23;2467:32;2464:52;;;2512:1;2509;2502:12;2464:52;-1:-1:-1;2535:23:1;;2384:180;-1:-1:-1;2384:180:1:o;2569:127::-;2630:10;2625:3;2621:20;2618:1;2611:31;2661:4;2658:1;2651:15;2685:4;2682:1;2675:15;2701:275;2772:2;2766:9;2837:2;2818:13;;-1:-1:-1;;2814:27:1;2802:40;;2872:18;2857:34;;2893:22;;;2854:62;2851:88;;;2919:18;;:::i;:::-;2955:2;2948:22;2701:275;;-1:-1:-1;2701:275:1:o;2981:183::-;3041:4;3074:18;3066:6;3063:30;3060:56;;;3096:18;;:::i;:::-;-1:-1:-1;3141:1:1;3137:14;3153:4;3133:25;;2981:183::o;3169:662::-;3223:5;3276:3;3269:4;3261:6;3257:17;3253:27;3243:55;;3294:1;3291;3284:12;3243:55;3330:6;3317:20;3356:4;3380:60;3396:43;3436:2;3396:43;:::i;:::-;3380:60;:::i;:::-;3474:15;;;3560:1;3556:10;;;;3544:23;;3540:32;;;3505:12;;;;3584:15;;;3581:35;;;3612:1;3609;3602:12;3581:35;3648:2;3640:6;3636:15;3660:142;3676:6;3671:3;3668:15;3660:142;;;3742:17;;3730:30;;3780:12;;;;3693;;3660:142;;;-1:-1:-1;3820:5:1;3169:662;-1:-1:-1;;;;;;3169:662:1:o;3836:1215::-;3954:6;3962;4015:2;4003:9;3994:7;3990:23;3986:32;3983:52;;;4031:1;4028;4021:12;3983:52;4071:9;4058:23;4100:18;4141:2;4133:6;4130:14;4127:34;;;4157:1;4154;4147:12;4127:34;4195:6;4184:9;4180:22;4170:32;;4240:7;4233:4;4229:2;4225:13;4221:27;4211:55;;4262:1;4259;4252:12;4211:55;4298:2;4285:16;4320:4;4344:60;4360:43;4400:2;4360:43;:::i;4344:60::-;4438:15;;;4520:1;4516:10;;;;4508:19;;4504:28;;;4469:12;;;;4544:19;;;4541:39;;;4576:1;4573;4566:12;4541:39;4600:11;;;;4620:217;4636:6;4631:3;4628:15;4620:217;;;4716:3;4703:17;4733:31;4758:5;4733:31;:::i;:::-;4777:18;;4653:12;;;;4815;;;;4620:217;;;4856:5;-1:-1:-1;;4899:18:1;;4886:32;;-1:-1:-1;;4930:16:1;;;4927:36;;;4959:1;4956;4949:12;4927:36;;4982:63;5037:7;5026:8;5015:9;5011:24;4982:63;:::i;:::-;4972:73;;;3836:1215;;;;;:::o;5056:156::-;5122:20;;5182:4;5171:16;;5161:27;;5151:55;;5202:1;5199;5192:12;5151:55;5056:156;;;:::o;5217:322::-;5288:6;5296;5304;5357:2;5345:9;5336:7;5332:23;5328:32;5325:52;;;5373:1;5370;5363:12;5325:52;5396:27;5413:9;5396:27;:::i;:::-;5386:37;;5442:36;5474:2;5463:9;5459:18;5442:36;:::i;:::-;5432:46;;5497:36;5529:2;5518:9;5514:18;5497:36;:::i;:::-;5487:46;;5217:322;;;;;:::o;5752:252::-;5816:6;5824;5877:2;5865:9;5856:7;5852:23;5848:32;5845:52;;;5893:1;5890;5883:12;5845:52;5916:27;5933:9;5916:27;:::i;:::-;5906:37;;5962:36;5994:2;5983:9;5979:18;5962:36;:::i;:::-;5952:46;;5752:252;;;;;:::o;6009:118::-;6095:5;6088:13;6081:21;6074:5;6071:32;6061:60;;6117:1;6114;6107:12;6132:382;6197:6;6205;6258:2;6246:9;6237:7;6233:23;6229:32;6226:52;;;6274:1;6271;6264:12;6226:52;6313:9;6300:23;6332:31;6357:5;6332:31;:::i;:::-;6382:5;-1:-1:-1;6439:2:1;6424:18;;6411:32;6452:30;6411:32;6452:30;:::i;:::-;6501:7;6491:17;;;6132:382;;;;;:::o;6519:247::-;6578:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:52;;;6647:1;6644;6637:12;6599:52;6686:9;6673:23;6705:31;6730:5;6705:31;:::i;:::-;6755:5;6519:247;-1:-1:-1;;;6519:247:1:o;6771:388::-;6839:6;6847;6900:2;6888:9;6879:7;6875:23;6871:32;6868:52;;;6916:1;6913;6906:12;6868:52;6955:9;6942:23;6974:31;6999:5;6974:31;:::i;:::-;7024:5;-1:-1:-1;7081:2:1;7066:18;;7053:32;7094:33;7053:32;7094:33;:::i;7573:356::-;7775:2;7757:21;;;7794:18;;;7787:30;7853:34;7848:2;7833:18;;7826:62;7920:2;7905:18;;7573:356::o;7934:127::-;7995:10;7990:3;7986:20;7983:1;7976:31;8026:4;8023:1;8016:15;8050:4;8047:1;8040:15;8066:168;8139:9;;;8170;;8187:15;;;8181:22;;8167:37;8157:71;;8208:18;;:::i;8239:217::-;8279:1;8305;8295:132;;8349:10;8344:3;8340:20;8337:1;8330:31;8384:4;8381:1;8374:15;8412:4;8409:1;8402:15;8295:132;-1:-1:-1;8441:9:1;;8239:217::o;8867:340::-;9069:2;9051:21;;;9108:2;9088:18;;;9081:30;-1:-1:-1;;;9142:2:1;9127:18;;9120:46;9198:2;9183:18;;8867:340::o;9212:127::-;9273:10;9268:3;9264:20;9261:1;9254:31;9304:4;9301:1;9294:15;9328:4;9325:1;9318:15;9344:402;9546:2;9528:21;;;9585:2;9565:18;;;9558:30;9624:34;9619:2;9604:18;;9597:62;-1:-1:-1;;;9690:2:1;9675:18;;9668:36;9736:3;9721:19;;9344:402::o;9751:125::-;9816:9;;;9837:10;;;9834:36;;;9850:18;;:::i;9881:128::-;9948:9;;;9969:11;;;9966:37;;;9983:18;;:::i;10014:135::-;10053:3;10074:17;;;10071:43;;10094:18;;:::i;:::-;-1:-1:-1;10141:1:1;10130:13;;10014:135::o;10154:148::-;10242:4;10221:12;;;10235;;;10217:31;;10260:13;;10257:39;;;10276:18;;:::i;12377:251::-;12447:6;12500:2;12488:9;12479:7;12475:23;12471:32;12468:52;;;12516:1;12513;12506:12;12468:52;12548:9;12542:16;12567:31;12592:5;12567:31;:::i;13221:245::-;13288:6;13341:2;13329:9;13320:7;13316:23;13312:32;13309:52;;;13357:1;13354;13347:12;13309:52;13389:9;13383:16;13408:28;13430:5;13408:28;:::i;14083:306::-;14171:6;14179;14187;14240:2;14228:9;14219:7;14215:23;14211:32;14208:52;;;14256:1;14253;14246:12;14208:52;14285:9;14279:16;14269:26;;14335:2;14324:9;14320:18;14314:25;14304:35;;14379:2;14368:9;14364:18;14358:25;14348:35;;14083:306;;;;;:::o;14805:346::-;15007:2;14989:21;;;15046:2;15026:18;;;15019:30;-1:-1:-1;;;15080:2:1;15065:18;;15058:52;15142:2;15127:18;;14805:346::o;15511:184::-;15581:6;15634:2;15622:9;15613:7;15609:23;15605:32;15602:52;;;15650:1;15647;15640:12;15602:52;-1:-1:-1;15673:16:1;;15511:184;-1:-1:-1;15511:184:1:o;20137:287::-;20266:3;20304:6;20298:13;20320:66;20379:6;20374:3;20367:4;20359:6;20355:17;20320:66;:::i;:::-;20402:16;;;;;20137:287;-1:-1:-1;;20137:287:1:o;20838:980::-;21100:4;21148:3;21137:9;21133:19;21179:6;21168:9;21161:25;21205:2;21243:6;21238:2;21227:9;21223:18;21216:34;21286:3;21281:2;21270:9;21266:18;21259:31;21310:6;21345;21339:13;21376:6;21368;21361:22;21414:3;21403:9;21399:19;21392:26;;21453:2;21445:6;21441:15;21427:29;;21474:1;21484:195;21498:6;21495:1;21492:13;21484:195;;;21563:13;;-1:-1:-1;;;;;21559:39:1;21547:52;;21654:15;;;;21619:12;;;;21595:1;21513:9;21484:195;;;-1:-1:-1;;;;;;;21735:32:1;;;;21730:2;21715:18;;21708:60;-1:-1:-1;;;21799:3:1;21784:19;21777:35;21696:3;20838:980;-1:-1:-1;;;20838:980:1:o

Swarm Source

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