ETH Price: $3,257.39 (+2.60%)
Gas: 4 Gwei

Token

Bear (BEAR)
 

Overview

Max Total Supply

1,000,000,000,000,000 BEAR

Holders

99

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
651,245,772,686.081014390895776178 BEAR

Value
$0.00
0x8437db666a05d81fb770a5339a0b337c0f9c2b59
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:
Bear

Compiler Version
v0.8.23+commit.f704f362

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-15
*/

/**
$BEAR Eth - Bringing the bear into the bull!

https://twitter.com/BearIntoABull
https://t.me/tbeareth
https://www.bearish.app
*/

pragma solidity 0.8.23;

// SPDX-License-Identifier: MIT

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20{

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapTokensForExactTokens(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

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

contract Bear is ERC20, Ownable {

    mapping (address => bool) public feeExempt;
    mapping (address => bool) public limitExempt;

    bool public tradingActive;

    address creator;

    mapping (address => bool) public isPair;

    uint256 public maxTxn;
    uint256 public maxWallet;

    address public taxWallet;

    uint256 public totalBuyTax;

    uint256 public totalSellTax;

    bool public limits = true;

    bool public swapEnabled = true;
    bool private swapping;
    uint256 public swapTokensAtAmt;

    address public lpPair;
    IDexRouter public router;

    event UpdatedmaxTxn(uint256 newMax);
    event UpdatedMaxWallet(uint256 newMax);
    event SetFeeExempt(address _address, bool _isExempt);
    event SetLimitExempt(address _address, bool _isExempt);
    event LimitsRemoved();
    event UpdatedBuyTax(uint256 newAmt);
    event UpdatedSellTax(uint256 newAmt);


    //subcontract constructor
    constructor ()

        ERC20("Bear", "BEAR")
        {
        creator = msg.sender;
        _mint(creator, 1 * (10**15) * (10** decimals())); //one time mint, in constructor

        router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        maxTxn = totalSupply() * 6 / 1000; //0.6% max bag/buy at launch
        maxWallet = totalSupply() * 6 / 1000;
        swapTokensAtAmt = totalSupply() * 20 / 10000;  //contract won't swap until this amount, here 0.2%

        taxWallet = 0xc6325b682DCE012C0E0908Dbb15cFC20ee1F7e93;

        totalBuyTax = 20; //high to start, can only lower from here

        totalSellTax = 20; //high to start, can only lower from here

        lpPair = IDexFactory(router.factory()).createPair(address(this), router.WETH());

        isPair[lpPair] = true;

        limitExempt[lpPair] = true;
        limitExempt[msg.sender] = true;
        limitExempt[address(this)] = true;
    
        feeExempt[msg.sender] = true;
        feeExempt[address(this)] = true;
 
        _approve(address(this), address(router), type(uint256).max);
        _approve(address(msg.sender), address(router), totalSupply());
            
    }

    function setFeeExempt(address _address, bool _isExempt) external onlyOwner {
        feeExempt[_address] = _isExempt;
        emit SetFeeExempt(_address, _isExempt);
    }

    function setLimitExempt(address _address, bool _isExempt) external onlyOwner {
        if(!_isExempt){
            require(_address != lpPair, "LP pair");
        }
        limitExempt[_address] = _isExempt;
        emit SetLimitExempt(_address, _isExempt);
    }

    function updateSwapTokensAmount(uint256 _amount) external onlyOwner{
        require(_amount > 0);
        require(_amount < totalSupply() * 5 / 100);
        swapTokensAtAmt = _amount * (10**decimals());

    }

    function updateMaxTxn(uint256 _maxTxn) external onlyOwner {
        require(_maxTxn > maxTxn, "Only higher");
        require(_maxTxn <= totalSupply());
        require(_maxTxn >= (totalSupply() * 5 / 1000)/(10**decimals()), "Too low");
        maxTxn = _maxTxn * (10**decimals());
        emit UpdatedmaxTxn(maxTxn);
    }

    function updateMaxWallet(uint256 _maxWallet) external onlyOwner {
        require(_maxWallet > maxWallet, "Only higher");
        require(_maxWallet <= totalSupply());
        require(_maxWallet >= (totalSupply() * 5 / 1000)/(10**decimals()), "Too low");
        maxWallet = _maxWallet * (10**decimals());
        emit UpdatedMaxWallet(maxWallet);
    }

    function updateBuyTax(uint256 _buyTax) external onlyOwner {
        require(_buyTax < totalBuyTax,"Only lower");
        totalBuyTax = _buyTax;
        emit UpdatedBuyTax(totalBuyTax);
    }

    function updateSellTax(uint256 _sellTax) external onlyOwner {
        require(_sellTax < totalSellTax,"Only lower");
        totalSellTax = _sellTax;
        emit UpdatedSellTax(totalSellTax);
    }

    function startTrading() external onlyOwner {
        tradingActive = true;
    }

    function removeLimits() external {
        //This function turns off all limits + taxes to make the token CEX-worthy. When renounced, can still be used by deployer
        require(msg.sender == 0xd219D9f44812738ee05850A480B03dc6842dC49b);
        limits = false;
        maxTxn = totalSupply();
        maxWallet = totalSupply();
        totalBuyTax = 0;
        totalSellTax = 0;
        emit LimitsRemoved();
    }

    function airdropToWallets(address[] calldata wallets, uint256[] calldata amounts) external  {
        require (msg.sender == creator, "Done at contract creation only");
        require(tradingActive == false);
        require(wallets.length == amounts.length, "arrays length mismatch");
        for(uint256 i = 0; i < wallets.length; i++){
            super._transfer(msg.sender, wallets[i], (amounts[i]* (10**18)));
        }
    }

    function removeForeignTokens(address _token, address _to) external onlyOwner {
        require(_token != address(this), "cant take the tax tokens");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        SafeERC20.safeTransfer(IERC20(_token),_to, _contractBalance);
    }

    function clearStuckBalance() external  onlyOwner{
        uint256 amount = address(this).balance;
        payable(taxWallet).transfer(amount);
    }

    function updateTaxWallet(address _address) external onlyOwner {
        taxWallet = _address;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {

        if(feeExempt[from] || feeExempt[to]){
            super._transfer(from,to,amount);
            return;
        }
        
        checkLimits(from, to, amount);

        amount -= takeFees(from, to, amount);

        super._transfer(from,to,amount);
    }

    function checkLimits(address from, address to, uint256 amount) internal view {

        require(tradingActive);

        if(limits){
            // buy
            if (isPair[from] && !limitExempt[to]) {
                require(amount <= maxTxn, "Higher than max txn");
                require(amount + balanceOf(to) <= maxWallet, "Higher than max wallet");
            } 
            // sell
            else if (isPair[to] && !limitExempt[from]) {
                require(amount <= maxTxn, "higher than maxTxn.");
            }
            //transfer
            else if(!limitExempt[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Higher than max wallet");
            }
        }
    }

    function takeFees(address from, address to, uint256 amount) internal returns (uint256){

        if(balanceOf(address(this)) >= swapTokensAtAmt && swapEnabled && !swapping && isPair[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }
        
        uint256 tax = 0;

        // on sell
        if (isPair[to] && totalSellTax > 0){
            tax = amount * totalSellTax / 100;
        }

        // on buy
        else if(isPair[from] && totalBuyTax > 0) {
            tax = amount * totalBuyTax / 100;

        }
        
        if(tax > 0){    
            super._transfer(from, address(this), tax);
        }

        return tax;
    }

    function swapTokensForETH(uint256 tokenAmt) private {

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmt,
            0,
            path,
            address(taxWallet),
            block.timestamp
        );
    }


    function swapBack() private {

        uint256 swapAmount = balanceOf(address(this));

        //imposes a max amount of how much contract can swap at once
        if(swapAmount > swapTokensAtAmt * 5){
            swapAmount = swapTokensAtAmt * 5;
        }
        
        swapTokensForETH(swapAmount);
    }
}

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":[],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetLimitExempt","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedmaxTxn","type":"event"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxn","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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"removeForeignTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxn","type":"uint256"}],"name":"updateMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateSwapTokensAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600f805461ffff19166101011790553480156200001f575f80fd5b50604051806040016040528060048152602001632132b0b960e11b815250604051806040016040528060048152602001632122a0a960e11b81525081600390816200006b9190620006d0565b5060046200007a8282620006d0565b5050505f6200008e6200043e60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060088054610100338102610100600160a81b031990921691909117918290556200013891046001600160a01b031662000112601290565b6200011f90600a620008ab565b620001329066038d7ea4c68000620008c2565b62000442565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556103e86200016b60025490565b62000178906006620008c2565b620001849190620008dc565b600a556103e86200019460025490565b620001a1906006620008c2565b620001ad9190620008dc565b600b55612710620001bd60025490565b620001ca906014620008c2565b620001d69190620008dc565b601055600c80546001600160a01b03191673c6325b682dce012c0e0908dbb15cfc20ee1f7e931790556014600d819055600e556012546040805163c45a015560e01b815290516001600160a01b03929092169163c45a0155916004818101926020929091908290030181865afa15801562000253573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002799190620008fc565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ff9190620008fc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200034a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003709190620008fc565b601180546001600160a01b0319166001600160a01b0392831690811782555f908152600960209081526040808320805460ff19908116600190811790925594548616845260078352818420805486168217905533808552828520805487168317905530808652838620805488168417905590855260069093528184208054861682179055828452922080549093169091179091556012546200041592165f1962000507565b601254620004389033906001600160a01b03166200043260025490565b62000507565b6200093a565b3390565b6001600160a01b0382166200049e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620004b1919062000924565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200056b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000495565b6001600160a01b038216620005ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000495565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200065c57607f821691505b6020821081036200067b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200062e57805f5260205f20601f840160051c81016020851015620006a85750805b601f840160051c820191505b81811015620006c9575f8155600101620006b4565b5050505050565b81516001600160401b03811115620006ec57620006ec62000633565b6200070481620006fd845462000647565b8462000681565b602080601f8311600181146200073a575f8415620007225750858301515b5f19600386901b1c1916600185901b17855562000794565b5f85815260208120601f198616915b828110156200076a5788860151825594840194600190910190840162000749565b50858210156200078857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007f057815f1904821115620007d457620007d46200079c565b80851615620007e257918102915b93841c9390800290620007b5565b509250929050565b5f826200080857506001620008a5565b816200081657505f620008a5565b81600181146200082f57600281146200083a576200085a565b6001915050620008a5565b60ff8411156200084e576200084e6200079c565b50506001821b620008a5565b5060208310610133831016604e8410600b84101617156200087f575081810a620008a5565b6200088b8383620007b0565b805f1904821115620008a157620008a16200079c565b0290505b92915050565b5f620008bb60ff841683620007f8565b9392505050565b8082028115828204841417620008a557620008a56200079c565b5f82620008f757634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200090d575f80fd5b81516001600160a01b0381168114620008bb575f80fd5b80820180821115620008a557620008a56200079c565b61216580620009485f395ff3fe608060405234801561000f575f80fd5b506004361061024a575f3560e01c80636770474b11610140578063a457c2d7116100bf578063dd62ed3e11610084578063dd62ed3e146104e6578063e5e31b13146104f9578063e8792c1a1461051b578063f2fde38b14610524578063f887ea4014610537578063f8b45b051461054a575f80fd5b8063a457c2d714610497578063a9059cbb146104aa578063af25b7eb146104bd578063bbc0c742146104d0578063c78d0fa0146104dd575f80fd5b8063751039fc11610105578063751039fc14610456578063860aefcf1461045e5780638da5cb5b1461046b5780638ebfc7961461047c57806395d89b411461048f575f80fd5b80636770474b146103ee5780636ddd17131461040157806370a0823114610413578063715018a61461043b57806374c9f60314610443575f80fd5b80632bc4d48b116101cc578063398daa8511610191578063398daa851461038a57806340a24e6c146103ac578063436d3340146103bf578063452ed4f1146103d257806346469afb146103e5575f80fd5b80632bc4d48b146103225780632dc0562d14610335578063313ce56714610360578063364333f41461036f5780633950935114610377575f80fd5b80631c499ab0116102125780631c499ab0146102bf57806320a8d3fb146102d25780632307b441146102f457806323b872dd14610307578063293230b81461031a575f80fd5b806306fdde031461024e578063095ea7b31461026c57806312185a391461028f57806318160ddd146102a45780631bff7898146102b6575b5f80fd5b610256610553565b6040516102639190611c71565b60405180910390f35b61027f61027a366004611cb7565b6105e3565b6040519015158152602001610263565b6102a261029d366004611ce1565b6105fc565b005b6002545b604051908152602001610263565b6102a8600e5481565b6102a26102cd366004611ce1565b6106a9565b61027f6102e0366004611cf8565b60076020525f908152604090205460ff1681565b6102a2610302366004611d62565b6107db565b61027f610315366004611dc9565b610906565b6102a2610929565b6102a2610330366004611ce1565b610962565b600c54610348906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b60405160128152602001610263565b6102a2610a94565b61027f610385366004611cb7565b610af9565b61027f610398366004611cf8565b60066020525f908152604090205460ff1681565b6102a26103ba366004611e14565b610b1a565b6102a26103cd366004611ce1565b610bf4565b601154610348906001600160a01b031681565b6102a8600d5481565b6102a26103fc366004611ce1565b610c91565b600f5461027f90610100900460ff1681565b6102a8610421366004611cf8565b6001600160a01b03165f9081526020819052604090205490565b6102a2610d0c565b6102a2610451366004611cf8565b610d7f565b6102a2610dcb565b600f5461027f9060ff1681565b6005546001600160a01b0316610348565b6102a261048a366004611e14565b610e34565b610256610eb9565b61027f6104a5366004611cb7565b610ec8565b61027f6104b8366004611cb7565b610f42565b6102a26104cb366004611e4b565b610f4f565b60085461027f9060ff1681565b6102a860105481565b6102a86104f4366004611e4b565b61104b565b61027f610507366004611cf8565b60096020525f908152604090205460ff1681565b6102a8600a5481565b6102a2610532366004611cf8565b611075565b601254610348906001600160a01b031681565b6102a8600b5481565b60606003805461056290611e77565b80601f016020809104026020016040519081016040528092919081815260200182805461058e90611e77565b80156105d95780601f106105b0576101008083540402835291602001916105d9565b820191905f5260205f20905b8154815290600101906020018083116105bc57829003601f168201915b5050505050905090565b5f336105f081858561115f565b60019150505b92915050565b6005546001600160a01b0316331461062f5760405162461bcd60e51b815260040161062690611eaf565b60405180910390fd5b600e54811061066d5760405162461bcd60e51b815260206004820152600a60248201526927b7363c903637bbb2b960b11b6044820152606401610626565b600e8190556040518181527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97906020015b60405180910390a150565b6005546001600160a01b031633146106d35760405162461bcd60e51b815260040161062690611eaf565b600b5481116107125760405162461bcd60e51b815260206004820152600b60248201526a27b7363c903434b3b432b960a91b6044820152606401610626565b600254811115610720575f80fd5b61072c6012600a611fd8565b6103e861073860025490565b610743906005611fe6565b61074d9190611ffd565b6107579190611ffd565b8110156107905760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610626565b61079c6012600a611fd8565b6107a69082611fe6565b600b8190556040519081527f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c427629060200161069e565b60085461010090046001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601e60248201527f446f6e6520617420636f6e7472616374206372656174696f6e206f6e6c7900006044820152606401610626565b60085460ff1615610849575f80fd5b8281146108915760405162461bcd60e51b81526020600482015260166024820152750c2e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610626565b5f5b838110156108ff576108f7338686848181106108b1576108b161201c565b90506020020160208101906108c69190611cf8565b8585858181106108d8576108d861201c565b90506020020135670de0b6b3a76400006108f29190611fe6565b611282565b600101610893565b5050505050565b5f33610913858285611426565b61091e858585611498565b506001949350505050565b6005546001600160a01b031633146109535760405162461bcd60e51b815260040161062690611eaf565b6008805460ff19166001179055565b6005546001600160a01b0316331461098c5760405162461bcd60e51b815260040161062690611eaf565b600a5481116109cb5760405162461bcd60e51b815260206004820152600b60248201526a27b7363c903434b3b432b960a91b6044820152606401610626565b6002548111156109d9575f80fd5b6109e56012600a611fd8565b6103e86109f160025490565b6109fc906005611fe6565b610a069190611ffd565b610a109190611ffd565b811015610a495760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610626565b610a556012600a611fd8565b610a5f9082611fe6565b600a8190556040519081527f6ed9e22f93bafd444f6baffb641eba60cca5c937540a080c3dd904fa54694a8a9060200161069e565b6005546001600160a01b03163314610abe5760405162461bcd60e51b815260040161062690611eaf565b600c5460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015610af5573d5f803e3d5ffd5b5050565b5f336105f0818585610b0b838361104b565b610b159190612030565b61115f565b6005546001600160a01b03163314610b445760405162461bcd60e51b815260040161062690611eaf565b80610b91576011546001600160a01b0390811690831603610b915760405162461bcd60e51b81526020600482015260076024820152662628103830b4b960c91b6044820152606401610626565b6001600160a01b0382165f81815260076020908152604091829020805460ff19168515159081179091558251938452908301527f4cf4a3d1ce50f692e43f980e5b502886ca199e4d5f8e53ecc2c328ec5e25f64491015b60405180910390a15050565b6005546001600160a01b03163314610c1e5760405162461bcd60e51b815260040161062690611eaf565b600d548110610c5c5760405162461bcd60e51b815260206004820152600a60248201526927b7363c903637bbb2b960b11b6044820152606401610626565b600d8190556040518181527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05089060200161069e565b6005546001600160a01b03163314610cbb5760405162461bcd60e51b815260040161062690611eaf565b5f8111610cc6575f80fd5b6064610cd160025490565b610cdc906005611fe6565b610ce69190611ffd565b8110610cf0575f80fd5b610cfc6012600a611fd8565b610d069082611fe6565b60105550565b6005546001600160a01b03163314610d365760405162461bcd60e51b815260040161062690611eaf565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610da95760405162461bcd60e51b815260040161062690611eaf565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b73d219d9f44812738ee05850a480b03dc6842dc49b3314610dea575f80fd5b600f805460ff19169055600254600a55600254600b555f600d819055600e8190556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef9190a1565b6005546001600160a01b03163314610e5e5760405162461bcd60e51b815260040161062690611eaf565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610be8565b60606004805461056290611e77565b5f3381610ed5828661104b565b905083811015610f355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610626565b61091e828686840361115f565b5f336105f0818585611498565b6005546001600160a01b03163314610f795760405162461bcd60e51b815260040161062690611eaf565b306001600160a01b03831603610fd15760405162461bcd60e51b815260206004820152601860248201527f63616e742074616b65207468652074617820746f6b656e7300000000000000006044820152606401610626565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611015573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110399190612043565b9050611046838383611512565b505050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461109f5760405162461bcd60e51b815260040161062690611eaf565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610626565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111c15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610626565b6001600160a01b0382166112225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610626565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610626565b6001600160a01b0382166113485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610626565b6001600160a01b0383165f90815260208190526040902054818110156113bf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610626565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b50505050565b5f611431848461104b565b90505f198114611420578181101561148b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610626565b611420848484840361115f565b6001600160a01b0383165f9081526006602052604090205460ff16806114d557506001600160a01b0382165f9081526006602052604090205460ff165b156114e557611046838383611282565b6114f0838383611564565b6114fb838383611741565b611505908261205a565b9050611046838383611282565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261104690849061187e565b60085460ff16611572575f80fd5b600f5460ff1615611046576001600160a01b0383165f9081526009602052604090205460ff1680156115bc57506001600160a01b0382165f9081526007602052604090205460ff16155b1561167657600a548111156116095760405162461bcd60e51b81526020600482015260136024820152722434b3b432b9103a3430b71036b0bc103a3c3760691b6044820152606401610626565b600b546001600160a01b0383165f908152602081905260409020545b61162f9083612030565b11156110465760405162461bcd60e51b8152602060048201526016602482015275121a59da195c881d1a185b881b585e081dd85b1b195d60521b6044820152606401610626565b6001600160a01b0382165f9081526009602052604090205460ff1680156116b557506001600160a01b0383165f9081526007602052604090205460ff16155b1561170257600a548111156110465760405162461bcd60e51b81526020600482015260136024820152723434b3b432b9103a3430b71036b0bc2a3c371760691b6044820152606401610626565b6001600160a01b0382165f9081526007602052604090205460ff1661104657600b546001600160a01b0383165f90815260208190526040902054611625565b601054305f9081526020819052604081205490911115801561176a5750600f54610100900460ff165b801561177f5750600f5462010000900460ff16155b80156117a257506001600160a01b0383165f9081526009602052604090205460ff165b156117cd57600f805462ff00001916620100001790556117c061194f565b600f805462ff0000191690555b6001600160a01b0383165f9081526009602052604081205460ff1680156117f557505f600e54115b1561181b576064600e548461180a9190611fe6565b6118149190611ffd565b9050611865565b6001600160a01b0385165f9081526009602052604090205460ff16801561184357505f600d54115b15611865576064600d54846118589190611fe6565b6118629190611ffd565b90505b801561187657611876853083611282565b949350505050565b5f6118d2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119909092919063ffffffff16565b80519091501561104657808060200190518101906118f0919061206d565b6110465760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610626565b305f9081526020819052604090205460105461196c906005611fe6565b81111561198457601054611981906005611fe6565b90505b61198d8161199e565b50565b606061187684845f85611adb565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119d1576119d161201c565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4c9190612088565b81600181518110611a5f57611a5f61201c565b6001600160a01b039283166020918202929092010152601254600c5460405163791ac94760e01b81529183169263791ac94792611aaa9287925f9288929091169042906004016120a3565b5f604051808303815f87803b158015611ac1575f80fd5b505af1158015611ad3573d5f803e3d5ffd5b505050505050565b606082471015611b3c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610626565b5f80866001600160a01b03168587604051611b579190612114565b5f6040518083038185875af1925050503d805f8114611b91576040519150601f19603f3d011682016040523d82523d5f602084013e611b96565b606091505b5091509150611ba787838387611bb2565b979650505050505050565b60608315611c205782515f03611c19576001600160a01b0385163b611c195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610626565b5081611876565b6118768383815115611c355781518083602001fd5b8060405162461bcd60e51b81526004016106269190611c71565b5f5b83811015611c69578181015183820152602001611c51565b50505f910152565b602081525f8251806020840152611c8f816040850160208701611c4f565b601f01601f19169190910160400192915050565b6001600160a01b038116811461198d575f80fd5b5f8060408385031215611cc8575f80fd5b8235611cd381611ca3565b946020939093013593505050565b5f60208284031215611cf1575f80fd5b5035919050565b5f60208284031215611d08575f80fd5b8135611d1381611ca3565b9392505050565b5f8083601f840112611d2a575f80fd5b50813567ffffffffffffffff811115611d41575f80fd5b6020830191508360208260051b8501011115611d5b575f80fd5b9250929050565b5f805f8060408587031215611d75575f80fd5b843567ffffffffffffffff80821115611d8c575f80fd5b611d9888838901611d1a565b90965094506020870135915080821115611db0575f80fd5b50611dbd87828801611d1a565b95989497509550505050565b5f805f60608486031215611ddb575f80fd5b8335611de681611ca3565b92506020840135611df681611ca3565b929592945050506040919091013590565b801515811461198d575f80fd5b5f8060408385031215611e25575f80fd5b8235611e3081611ca3565b91506020830135611e4081611e07565b809150509250929050565b5f8060408385031215611e5c575f80fd5b8235611e6781611ca3565b91506020830135611e4081611ca3565b600181811c90821680611e8b57607f821691505b602082108103611ea957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f3257815f1904821115611f1857611f18611ee4565b80851615611f2557918102915b93841c9390800290611efd565b509250929050565b5f82611f48575060016105f6565b81611f5457505f6105f6565b8160018114611f6a5760028114611f7457611f90565b60019150506105f6565b60ff841115611f8557611f85611ee4565b50506001821b6105f6565b5060208310610133831016604e8410600b8410161715611fb3575081810a6105f6565b611fbd8383611ef8565b805f1904821115611fd057611fd0611ee4565b029392505050565b5f611d1360ff841683611f3a565b80820281158282048414176105f6576105f6611ee4565b5f8261201757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105f6576105f6611ee4565b5f60208284031215612053575f80fd5b5051919050565b818103818111156105f6576105f6611ee4565b5f6020828403121561207d575f80fd5b8151611d1381611e07565b5f60208284031215612098575f80fd5b8151611d1381611ca3565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120f35784516001600160a01b0316835293830193918301916001016120ce565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8251612125818460208701611c4f565b919091019291505056fea26469706673582212200cff9debf7fbfb99e5dc625942d5bed974376ff3d5f13ce1d86eb355a32b9a4664736f6c63430008170033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061024a575f3560e01c80636770474b11610140578063a457c2d7116100bf578063dd62ed3e11610084578063dd62ed3e146104e6578063e5e31b13146104f9578063e8792c1a1461051b578063f2fde38b14610524578063f887ea4014610537578063f8b45b051461054a575f80fd5b8063a457c2d714610497578063a9059cbb146104aa578063af25b7eb146104bd578063bbc0c742146104d0578063c78d0fa0146104dd575f80fd5b8063751039fc11610105578063751039fc14610456578063860aefcf1461045e5780638da5cb5b1461046b5780638ebfc7961461047c57806395d89b411461048f575f80fd5b80636770474b146103ee5780636ddd17131461040157806370a0823114610413578063715018a61461043b57806374c9f60314610443575f80fd5b80632bc4d48b116101cc578063398daa8511610191578063398daa851461038a57806340a24e6c146103ac578063436d3340146103bf578063452ed4f1146103d257806346469afb146103e5575f80fd5b80632bc4d48b146103225780632dc0562d14610335578063313ce56714610360578063364333f41461036f5780633950935114610377575f80fd5b80631c499ab0116102125780631c499ab0146102bf57806320a8d3fb146102d25780632307b441146102f457806323b872dd14610307578063293230b81461031a575f80fd5b806306fdde031461024e578063095ea7b31461026c57806312185a391461028f57806318160ddd146102a45780631bff7898146102b6575b5f80fd5b610256610553565b6040516102639190611c71565b60405180910390f35b61027f61027a366004611cb7565b6105e3565b6040519015158152602001610263565b6102a261029d366004611ce1565b6105fc565b005b6002545b604051908152602001610263565b6102a8600e5481565b6102a26102cd366004611ce1565b6106a9565b61027f6102e0366004611cf8565b60076020525f908152604090205460ff1681565b6102a2610302366004611d62565b6107db565b61027f610315366004611dc9565b610906565b6102a2610929565b6102a2610330366004611ce1565b610962565b600c54610348906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b60405160128152602001610263565b6102a2610a94565b61027f610385366004611cb7565b610af9565b61027f610398366004611cf8565b60066020525f908152604090205460ff1681565b6102a26103ba366004611e14565b610b1a565b6102a26103cd366004611ce1565b610bf4565b601154610348906001600160a01b031681565b6102a8600d5481565b6102a26103fc366004611ce1565b610c91565b600f5461027f90610100900460ff1681565b6102a8610421366004611cf8565b6001600160a01b03165f9081526020819052604090205490565b6102a2610d0c565b6102a2610451366004611cf8565b610d7f565b6102a2610dcb565b600f5461027f9060ff1681565b6005546001600160a01b0316610348565b6102a261048a366004611e14565b610e34565b610256610eb9565b61027f6104a5366004611cb7565b610ec8565b61027f6104b8366004611cb7565b610f42565b6102a26104cb366004611e4b565b610f4f565b60085461027f9060ff1681565b6102a860105481565b6102a86104f4366004611e4b565b61104b565b61027f610507366004611cf8565b60096020525f908152604090205460ff1681565b6102a8600a5481565b6102a2610532366004611cf8565b611075565b601254610348906001600160a01b031681565b6102a8600b5481565b60606003805461056290611e77565b80601f016020809104026020016040519081016040528092919081815260200182805461058e90611e77565b80156105d95780601f106105b0576101008083540402835291602001916105d9565b820191905f5260205f20905b8154815290600101906020018083116105bc57829003601f168201915b5050505050905090565b5f336105f081858561115f565b60019150505b92915050565b6005546001600160a01b0316331461062f5760405162461bcd60e51b815260040161062690611eaf565b60405180910390fd5b600e54811061066d5760405162461bcd60e51b815260206004820152600a60248201526927b7363c903637bbb2b960b11b6044820152606401610626565b600e8190556040518181527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97906020015b60405180910390a150565b6005546001600160a01b031633146106d35760405162461bcd60e51b815260040161062690611eaf565b600b5481116107125760405162461bcd60e51b815260206004820152600b60248201526a27b7363c903434b3b432b960a91b6044820152606401610626565b600254811115610720575f80fd5b61072c6012600a611fd8565b6103e861073860025490565b610743906005611fe6565b61074d9190611ffd565b6107579190611ffd565b8110156107905760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610626565b61079c6012600a611fd8565b6107a69082611fe6565b600b8190556040519081527f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c427629060200161069e565b60085461010090046001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601e60248201527f446f6e6520617420636f6e7472616374206372656174696f6e206f6e6c7900006044820152606401610626565b60085460ff1615610849575f80fd5b8281146108915760405162461bcd60e51b81526020600482015260166024820152750c2e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610626565b5f5b838110156108ff576108f7338686848181106108b1576108b161201c565b90506020020160208101906108c69190611cf8565b8585858181106108d8576108d861201c565b90506020020135670de0b6b3a76400006108f29190611fe6565b611282565b600101610893565b5050505050565b5f33610913858285611426565b61091e858585611498565b506001949350505050565b6005546001600160a01b031633146109535760405162461bcd60e51b815260040161062690611eaf565b6008805460ff19166001179055565b6005546001600160a01b0316331461098c5760405162461bcd60e51b815260040161062690611eaf565b600a5481116109cb5760405162461bcd60e51b815260206004820152600b60248201526a27b7363c903434b3b432b960a91b6044820152606401610626565b6002548111156109d9575f80fd5b6109e56012600a611fd8565b6103e86109f160025490565b6109fc906005611fe6565b610a069190611ffd565b610a109190611ffd565b811015610a495760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610626565b610a556012600a611fd8565b610a5f9082611fe6565b600a8190556040519081527f6ed9e22f93bafd444f6baffb641eba60cca5c937540a080c3dd904fa54694a8a9060200161069e565b6005546001600160a01b03163314610abe5760405162461bcd60e51b815260040161062690611eaf565b600c5460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015610af5573d5f803e3d5ffd5b5050565b5f336105f0818585610b0b838361104b565b610b159190612030565b61115f565b6005546001600160a01b03163314610b445760405162461bcd60e51b815260040161062690611eaf565b80610b91576011546001600160a01b0390811690831603610b915760405162461bcd60e51b81526020600482015260076024820152662628103830b4b960c91b6044820152606401610626565b6001600160a01b0382165f81815260076020908152604091829020805460ff19168515159081179091558251938452908301527f4cf4a3d1ce50f692e43f980e5b502886ca199e4d5f8e53ecc2c328ec5e25f64491015b60405180910390a15050565b6005546001600160a01b03163314610c1e5760405162461bcd60e51b815260040161062690611eaf565b600d548110610c5c5760405162461bcd60e51b815260206004820152600a60248201526927b7363c903637bbb2b960b11b6044820152606401610626565b600d8190556040518181527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05089060200161069e565b6005546001600160a01b03163314610cbb5760405162461bcd60e51b815260040161062690611eaf565b5f8111610cc6575f80fd5b6064610cd160025490565b610cdc906005611fe6565b610ce69190611ffd565b8110610cf0575f80fd5b610cfc6012600a611fd8565b610d069082611fe6565b60105550565b6005546001600160a01b03163314610d365760405162461bcd60e51b815260040161062690611eaf565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610da95760405162461bcd60e51b815260040161062690611eaf565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b73d219d9f44812738ee05850a480b03dc6842dc49b3314610dea575f80fd5b600f805460ff19169055600254600a55600254600b555f600d819055600e8190556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef9190a1565b6005546001600160a01b03163314610e5e5760405162461bcd60e51b815260040161062690611eaf565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610be8565b60606004805461056290611e77565b5f3381610ed5828661104b565b905083811015610f355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610626565b61091e828686840361115f565b5f336105f0818585611498565b6005546001600160a01b03163314610f795760405162461bcd60e51b815260040161062690611eaf565b306001600160a01b03831603610fd15760405162461bcd60e51b815260206004820152601860248201527f63616e742074616b65207468652074617820746f6b656e7300000000000000006044820152606401610626565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611015573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110399190612043565b9050611046838383611512565b505050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461109f5760405162461bcd60e51b815260040161062690611eaf565b6001600160a01b0381166111045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610626565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111c15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610626565b6001600160a01b0382166112225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610626565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610626565b6001600160a01b0382166113485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610626565b6001600160a01b0383165f90815260208190526040902054818110156113bf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610626565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b50505050565b5f611431848461104b565b90505f198114611420578181101561148b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610626565b611420848484840361115f565b6001600160a01b0383165f9081526006602052604090205460ff16806114d557506001600160a01b0382165f9081526006602052604090205460ff165b156114e557611046838383611282565b6114f0838383611564565b6114fb838383611741565b611505908261205a565b9050611046838383611282565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261104690849061187e565b60085460ff16611572575f80fd5b600f5460ff1615611046576001600160a01b0383165f9081526009602052604090205460ff1680156115bc57506001600160a01b0382165f9081526007602052604090205460ff16155b1561167657600a548111156116095760405162461bcd60e51b81526020600482015260136024820152722434b3b432b9103a3430b71036b0bc103a3c3760691b6044820152606401610626565b600b546001600160a01b0383165f908152602081905260409020545b61162f9083612030565b11156110465760405162461bcd60e51b8152602060048201526016602482015275121a59da195c881d1a185b881b585e081dd85b1b195d60521b6044820152606401610626565b6001600160a01b0382165f9081526009602052604090205460ff1680156116b557506001600160a01b0383165f9081526007602052604090205460ff16155b1561170257600a548111156110465760405162461bcd60e51b81526020600482015260136024820152723434b3b432b9103a3430b71036b0bc2a3c371760691b6044820152606401610626565b6001600160a01b0382165f9081526007602052604090205460ff1661104657600b546001600160a01b0383165f90815260208190526040902054611625565b601054305f9081526020819052604081205490911115801561176a5750600f54610100900460ff165b801561177f5750600f5462010000900460ff16155b80156117a257506001600160a01b0383165f9081526009602052604090205460ff165b156117cd57600f805462ff00001916620100001790556117c061194f565b600f805462ff0000191690555b6001600160a01b0383165f9081526009602052604081205460ff1680156117f557505f600e54115b1561181b576064600e548461180a9190611fe6565b6118149190611ffd565b9050611865565b6001600160a01b0385165f9081526009602052604090205460ff16801561184357505f600d54115b15611865576064600d54846118589190611fe6565b6118629190611ffd565b90505b801561187657611876853083611282565b949350505050565b5f6118d2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119909092919063ffffffff16565b80519091501561104657808060200190518101906118f0919061206d565b6110465760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610626565b305f9081526020819052604090205460105461196c906005611fe6565b81111561198457601054611981906005611fe6565b90505b61198d8161199e565b50565b606061187684845f85611adb565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119d1576119d161201c565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4c9190612088565b81600181518110611a5f57611a5f61201c565b6001600160a01b039283166020918202929092010152601254600c5460405163791ac94760e01b81529183169263791ac94792611aaa9287925f9288929091169042906004016120a3565b5f604051808303815f87803b158015611ac1575f80fd5b505af1158015611ad3573d5f803e3d5ffd5b505050505050565b606082471015611b3c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610626565b5f80866001600160a01b03168587604051611b579190612114565b5f6040518083038185875af1925050503d805f8114611b91576040519150601f19603f3d011682016040523d82523d5f602084013e611b96565b606091505b5091509150611ba787838387611bb2565b979650505050505050565b60608315611c205782515f03611c19576001600160a01b0385163b611c195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610626565b5081611876565b6118768383815115611c355781518083602001fd5b8060405162461bcd60e51b81526004016106269190611c71565b5f5b83811015611c69578181015183820152602001611c51565b50505f910152565b602081525f8251806020840152611c8f816040850160208701611c4f565b601f01601f19169190910160400192915050565b6001600160a01b038116811461198d575f80fd5b5f8060408385031215611cc8575f80fd5b8235611cd381611ca3565b946020939093013593505050565b5f60208284031215611cf1575f80fd5b5035919050565b5f60208284031215611d08575f80fd5b8135611d1381611ca3565b9392505050565b5f8083601f840112611d2a575f80fd5b50813567ffffffffffffffff811115611d41575f80fd5b6020830191508360208260051b8501011115611d5b575f80fd5b9250929050565b5f805f8060408587031215611d75575f80fd5b843567ffffffffffffffff80821115611d8c575f80fd5b611d9888838901611d1a565b90965094506020870135915080821115611db0575f80fd5b50611dbd87828801611d1a565b95989497509550505050565b5f805f60608486031215611ddb575f80fd5b8335611de681611ca3565b92506020840135611df681611ca3565b929592945050506040919091013590565b801515811461198d575f80fd5b5f8060408385031215611e25575f80fd5b8235611e3081611ca3565b91506020830135611e4081611e07565b809150509250929050565b5f8060408385031215611e5c575f80fd5b8235611e6781611ca3565b91506020830135611e4081611ca3565b600181811c90821680611e8b57607f821691505b602082108103611ea957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f3257815f1904821115611f1857611f18611ee4565b80851615611f2557918102915b93841c9390800290611efd565b509250929050565b5f82611f48575060016105f6565b81611f5457505f6105f6565b8160018114611f6a5760028114611f7457611f90565b60019150506105f6565b60ff841115611f8557611f85611ee4565b50506001821b6105f6565b5060208310610133831016604e8410600b8410161715611fb3575081810a6105f6565b611fbd8383611ef8565b805f1904821115611fd057611fd0611ee4565b029392505050565b5f611d1360ff841683611f3a565b80820281158282048414176105f6576105f6611ee4565b5f8261201757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105f6576105f6611ee4565b5f60208284031215612053575f80fd5b5051919050565b818103818111156105f6576105f6611ee4565b5f6020828403121561207d575f80fd5b8151611d1381611e07565b5f60208284031215612098575f80fd5b8151611d1381611ca3565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120f35784516001600160a01b0316835293830193918301916001016120ce565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8251612125818460208701611c4f565b919091019291505056fea26469706673582212200cff9debf7fbfb99e5dc625942d5bed974376ff3d5f13ce1d86eb355a32b9a4664736f6c63430008170033

Deployed Bytecode Sourcemap

15297:8116:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2876:201;;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;2876:201:0;1126:187:1;19060:202:0;;;;;;:::i;:::-;;:::i;:::-;;2265:108;2353:12;;2265:108;;;1649:25:1;;;1637:2;1622:18;2265:108:0;1503:177:1;15675:27:0;;;;;;18491:359;;;;;;:::i;:::-;;:::i;15387:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19793:439;;;;;;:::i;:::-;;:::i;3085:261::-;;;;;;:::i;:::-;;:::i;19270:82::-;;;:::i;18154:329::-;;;;;;:::i;:::-;;:::i;15607:24::-;;;;;-1:-1:-1;;;;;15607:24:0;;;;;;-1:-1:-1;;;;;3712:32:1;;;3694:51;;3682:2;3667:18;15607:24:0;3548:203:1;2164:93:0;;;2247:2;3898:36:1;;3886:2;3871:18;2164:93:0;3756:184:1;20552:151:0;;;:::i;3354:238::-;;;;;;:::i;:::-;;:::i;15338:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17653:269;;;;;;:::i;:::-;;:::i;18858:194::-;;;;;;:::i;:::-;;:::i;15849:21::-;;;;;-1:-1:-1;;;;;15849:21:0;;;15640:26;;;;;;17930:216;;;;;;:::i;:::-;;:::i;15745:30::-;;;;;;;;;;;;2381:127;;;;;;:::i;:::-;-1:-1:-1;;;;;2482:18:0;2455:7;2482:18;;;;;;;;;;;;2381:127;7612:150;;;:::i;20711:101::-;;;;;;:::i;:::-;;:::i;19360:425::-;;;:::i;15711:25::-;;;;;;;;;7398:79;7463:6;;-1:-1:-1;;;;;7463:6:0;7398:79;;17471:174;;;;;;:::i;:::-;;:::i;2052:104::-;;;:::i;3600:436::-;;;;;;:::i;:::-;;:::i;2516:193::-;;;;;;:::i;:::-;;:::i;20240:304::-;;;;;;:::i;:::-;;:::i;15440:25::-;;;;;;;;;15810:30;;;;;;2717:151;;;;;;:::i;:::-;;:::i;15498:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15546:21;;;;;;7770:244;;;;;;:::i;:::-;;:::i;15877:24::-;;;;;-1:-1:-1;;;;;15877:24:0;;;15574;;;;;;1944:100;1998:13;2031:5;2024:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:100;:::o;2876:201::-;2959:4;317:10;3015:32;317:10;3031:7;3040:6;3015:8;:32::i;:::-;3065:4;3058:11;;;2876:201;;;;;:::o;19060:202::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;;;;;;;;;19150:12:::1;;19139:8;:23;19131:45;;;::::0;-1:-1:-1;;;19131:45:0;;6023:2:1;19131:45:0::1;::::0;::::1;6005:21:1::0;6062:2;6042:18;;;6035:30;-1:-1:-1;;;6081:18:1;;;6074:40;6131:18;;19131:45:0::1;5821:334:1::0;19131:45:0::1;19187:12;:23:::0;;;19226:28:::1;::::0;1649:25:1;;;19226:28:0::1;::::0;1637:2:1;1622:18;19226:28:0::1;;;;;;;;19060:202:::0;:::o;18491:359::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;18587:9:::1;;18574:10;:22;18566:46;;;::::0;-1:-1:-1;;;18566:46:0;;6362:2:1;18566:46:0::1;::::0;::::1;6344:21:1::0;6401:2;6381:18;;;6374:30;-1:-1:-1;;;6420:18:1;;;6413:41;6471:18;;18566:46:0::1;6160:335:1::0;18566:46:0::1;2353:12:::0;;18631:10:::1;:27;;18623:36;;;::::0;::::1;;18720:14;2247:2:::0;18720::::1;:14;:::i;:::-;18713:4;18693:13;2353:12:::0;;;2265:108;18693:13:::1;:17;::::0;18709:1:::1;18693:17;:::i;:::-;:24;;;;:::i;:::-;18692:43;;;;:::i;:::-;18678:10;:57;;18670:77;;;::::0;-1:-1:-1;;;18670:77:0;;8606:2:1;18670:77:0::1;::::0;::::1;8588:21:1::0;8645:1;8625:18;;;8618:29;-1:-1:-1;;;8663:18:1;;;8656:37;8710:18;;18670:77:0::1;8404:330:1::0;18670:77:0::1;18784:14;2247:2:::0;18784::::1;:14;:::i;:::-;18770:29;::::0;:10;:29:::1;:::i;:::-;18758:9;:41:::0;;;18815:27:::1;::::0;1649:25:1;;;18815:27:0::1;::::0;1637:2:1;1622:18;18815:27:0::1;1503:177:1::0;19793:439:0;19919:7;;;;;-1:-1:-1;;;;;19919:7:0;19905:10;:21;19896:65;;;;-1:-1:-1;;;19896:65:0;;8941:2:1;19896:65:0;;;8923:21:1;8980:2;8960:18;;;8953:30;9019:32;8999:18;;;8992:60;9069:18;;19896:65:0;8739:354:1;19896:65:0;19980:13;;;;:22;19972:31;;;;;;20022:32;;;20014:67;;;;-1:-1:-1;;;20014:67:0;;9300:2:1;20014:67:0;;;9282:21:1;9339:2;9319:18;;;9312:30;-1:-1:-1;;;9358:18:1;;;9351:52;9420:18;;20014:67:0;9098:346:1;20014:67:0;20096:9;20092:133;20111:18;;;20092:133;;;20150:63;20166:10;20178:7;;20186:1;20178:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20191:7;;20199:1;20191:10;;;;;;;:::i;:::-;;;;;;;20204:6;20191:20;;;;:::i;:::-;20150:15;:63::i;:::-;20131:3;;20092:133;;;;19793:439;;;;:::o;3085:261::-;3182:4;317:10;3240:38;3256:4;317:10;3271:6;3240:15;:38::i;:::-;3289:27;3299:4;3305:2;3309:6;3289:9;:27::i;:::-;-1:-1:-1;3334:4:0;;3085:261;-1:-1:-1;;;;3085:261:0:o;19270:82::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;19324:13:::1;:20:::0;;-1:-1:-1;;19324:20:0::1;19340:4;19324:20;::::0;;19270:82::o;18154:329::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;18241:6:::1;;18231:7;:16;18223:40;;;::::0;-1:-1:-1;;;18223:40:0;;6362:2:1;18223:40:0::1;::::0;::::1;6344:21:1::0;6401:2;6381:18;;;6374:30;-1:-1:-1;;;6420:18:1;;;6413:41;6471:18;;18223:40:0::1;6160:335:1::0;18223:40:0::1;2353:12:::0;;18282:7:::1;:24;;18274:33;;;::::0;::::1;;18365:14;2247:2:::0;18365::::1;:14;:::i;:::-;18358:4;18338:13;2353:12:::0;;;2265:108;18338:13:::1;:17;::::0;18354:1:::1;18338:17;:::i;:::-;:24;;;;:::i;:::-;18337:43;;;;:::i;:::-;18326:7;:54;;18318:74;;;::::0;-1:-1:-1;;;18318:74:0;;8606:2:1;18318:74:0::1;::::0;::::1;8588:21:1::0;8645:1;8625:18;;;8618:29;-1:-1:-1;;;8663:18:1;;;8656:37;8710:18;;18318:74:0::1;8404:330:1::0;18318:74:0::1;18423:14;2247:2:::0;18423::::1;:14;:::i;:::-;18412:26;::::0;:7;:26:::1;:::i;:::-;18403:6;:35:::0;;;18454:21:::1;::::0;1649:25:1;;;18454:21:0::1;::::0;1637:2:1;1622:18;18454:21:0::1;1503:177:1::0;20552:151:0;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;20668:9:::1;::::0;20660:35:::1;::::0;20628:21:::1;::::0;-1:-1:-1;;;;;20668:9:0::1;::::0;20660:35;::::1;;;::::0;20628:21;;20611:14:::1;20660:35:::0;20611:14;20660:35;20628:21;20668:9;20660:35;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20600:103;20552:151::o:0;3354:238::-;3442:4;317:10;3498:64;317:10;3514:7;3551:10;3523:25;317:10;3514:7;3523:9;:25::i;:::-;:38;;;;:::i;:::-;3498:8;:64::i;17653:269::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;17745:9:::1;17741:79;;17790:6;::::0;-1:-1:-1;;;;;17790:6:0;;::::1;17778:18:::0;;::::1;::::0;17770:38:::1;;;::::0;-1:-1:-1;;;17770:38:0;;9913:2:1;17770:38:0::1;::::0;::::1;9895:21:1::0;9952:1;9932:18;;;9925:29;-1:-1:-1;;;9970:18:1;;;9963:37;10017:18;;17770:38:0::1;9711:330:1::0;17770:38:0::1;-1:-1:-1::0;;;;;17830:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;;:33;;-1:-1:-1;;17830:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17879:35;;10214:51:1;;;10281:18;;;10274:50;17879:35:0::1;::::0;10187:18:1;17879:35:0::1;;;;;;;;17653:269:::0;;:::o;18858:194::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;18945:11:::1;;18935:7;:21;18927:43;;;::::0;-1:-1:-1;;;18927:43:0;;6023:2:1;18927:43:0::1;::::0;::::1;6005:21:1::0;6062:2;6042:18;;;6035:30;-1:-1:-1;;;6081:18:1;;;6074:40;6131:18;;18927:43:0::1;5821:334:1::0;18927:43:0::1;18981:11;:21:::0;;;19018:26:::1;::::0;1649:25:1;;;19018:26:0::1;::::0;1637:2:1;1622:18;19018:26:0::1;1503:177:1::0;17930:216:0;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;18026:1:::1;18016:7;:11;18008:20;;;::::0;::::1;;18077:3;18057:13;2353:12:::0;;;2265:108;18057:13:::1;:17;::::0;18073:1:::1;18057:17;:::i;:::-;:23;;;;:::i;:::-;18047:7;:33;18039:42;;;::::0;::::1;;18121:14;2247:2:::0;18121::::1;:14;:::i;:::-;18110:26;::::0;:7;:26:::1;:::i;:::-;18092:15;:44:::0;-1:-1:-1;17930:216:0:o;7612:150::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;7705:6:::1;::::0;7684:40:::1;::::0;7721:1:::1;::::0;-1:-1:-1;;;;;7705:6:0::1;::::0;7684:40:::1;::::0;7721:1;;7684:40:::1;7735:6;:19:::0;;-1:-1:-1;;;;;;7735:19:0::1;::::0;;7612:150::o;20711:101::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;20784:9:::1;:20:::0;;-1:-1:-1;;;;;;20784:20:0::1;-1:-1:-1::0;;;;;20784:20:0;;;::::1;::::0;;;::::1;::::0;;20711:101::o;19360:425::-;19556:42;19542:10;:56;19534:65;;;;;;19610:6;:14;;-1:-1:-1;;19610:14:0;;;2353:12;;19635:6;:22;2353:12;;19668:9;:25;19718:1;19704:11;:15;;;19730:12;:16;;;19762:15;;;;19718:1;19762:15;19360:425::o;17471:174::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17557:19:0;::::1;;::::0;;;:9:::1;:19;::::0;;;;;;;;:31;;-1:-1:-1;;17557:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17604:33;;10214:51:1;;;10281:18;;;10274:50;17604:33:0::1;::::0;10187:18:1;17604:33:0::1;10046:284:1::0;2052:104:0;2108:13;2141:7;2134:14;;;;;:::i;3600:436::-;3693:4;317:10;3693:4;3776:25;317:10;3793:7;3776:9;:25::i;:::-;3749:52;;3840:15;3820:16;:35;;3812:85;;;;-1:-1:-1;;;3812:85:0;;10537:2:1;3812:85:0;;;10519:21:1;10576:2;10556:18;;;10549:30;10615:34;10595:18;;;10588:62;-1:-1:-1;;;10666:18:1;;;10659:35;10711:19;;3812:85:0;10335:401:1;3812:85:0;3933:60;3942:5;3949:7;3977:15;3958:16;:34;3933:8;:60::i;2516:193::-;2595:4;317:10;2651:28;317:10;2668:2;2672:6;2651:9;:28::i;20240:304::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;20354:4:::1;-1:-1:-1::0;;;;;20336:23:0;::::1;::::0;20328:60:::1;;;::::0;-1:-1:-1;;;20328:60:0;;10943:2:1;20328:60:0::1;::::0;::::1;10925:21:1::0;10982:2;10962:18;;;10955:30;11021:26;11001:18;;;10994:54;11065:18;;20328:60:0::1;10741:348:1::0;20328:60:0::1;20426:39;::::0;-1:-1:-1;;;20426:39:0;;20459:4:::1;20426:39;::::0;::::1;3694:51:1::0;20399:24:0::1;::::0;-1:-1:-1;;;;;20426:24:0;::::1;::::0;::::1;::::0;3667:18:1;;20426:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20399:66;;20476:60;20506:6;20514:3;20519:16;20476:22;:60::i;:::-;20317:227;20240:304:::0;;:::o;2717:151::-;-1:-1:-1;;;;;2833:18:0;;;2806:7;2833:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2717:151::o;7770:244::-;7525:6;;-1:-1:-1;;;;;7525:6:0;317:10;7525:22;7517:67;;;;-1:-1:-1;;;7517:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7859:22:0;::::1;7851:73;;;::::0;-1:-1:-1;;;7851:73:0;;11485:2:1;7851:73:0::1;::::0;::::1;11467:21:1::0;11524:2;11504:18;;;11497:30;11563:34;11543:18;;;11536:62;-1:-1:-1;;;11614:18:1;;;11607:36;11660:19;;7851:73:0::1;11283:402:1::0;7851:73:0::1;7961:6;::::0;7940:38:::1;::::0;-1:-1:-1;;;;;7940:38:0;;::::1;::::0;7961:6:::1;::::0;7940:38:::1;::::0;7961:6:::1;::::0;7940:38:::1;7989:6;:17:::0;;-1:-1:-1;;;;;;7989:17:0::1;-1:-1:-1::0;;;;;7989:17:0;;;::::1;::::0;;;::::1;::::0;;7770:244::o;6097:346::-;-1:-1:-1;;;;;6199:19:0;;6191:68;;;;-1:-1:-1;;;6191:68:0;;11892:2:1;6191:68:0;;;11874:21:1;11931:2;11911:18;;;11904:30;11970:34;11950:18;;;11943:62;-1:-1:-1;;;12021:18:1;;;12014:34;12065:19;;6191:68:0;11690:400:1;6191:68:0;-1:-1:-1;;;;;6278:21:0;;6270:68;;;;-1:-1:-1;;;6270:68:0;;12297:2:1;6270:68:0;;;12279:21:1;12336:2;12316:18;;;12309:30;12375:34;12355:18;;;12348:62;-1:-1:-1;;;12426:18:1;;;12419:32;12468:19;;6270:68:0;12095:398:1;6270:68:0;-1:-1:-1;;;;;6351:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6403:32;;1649:25:1;;;6403:32:0;;1622:18:1;6403:32:0;;;;;;;6097:346;;;:::o;4044:806::-;-1:-1:-1;;;;;4141:18:0;;4133:68;;;;-1:-1:-1;;;4133:68:0;;12700:2:1;4133:68:0;;;12682:21:1;12739:2;12719:18;;;12712:30;12778:34;12758:18;;;12751:62;-1:-1:-1;;;12829:18:1;;;12822:35;12874:19;;4133:68:0;12498:401:1;4133:68:0;-1:-1:-1;;;;;4220:16:0;;4212:64;;;;-1:-1:-1;;;4212:64:0;;13106:2:1;4212:64:0;;;13088:21:1;13145:2;13125:18;;;13118:30;13184:34;13164:18;;;13157:62;-1:-1:-1;;;13235:18:1;;;13228:33;13278:19;;4212:64:0;12904:399:1;4212:64:0;-1:-1:-1;;;;;4362:15:0;;4340:19;4362:15;;;;;;;;;;;4396:21;;;;4388:72;;;;-1:-1:-1;;;4388:72:0;;13510:2:1;4388:72:0;;;13492:21:1;13549:2;13529:18;;;13522:30;13588:34;13568:18;;;13561:62;-1:-1:-1;;;13639:18:1;;;13632:36;13685:19;;4388:72:0;13308:402:1;4388:72:0;-1:-1:-1;;;;;4496:15:0;;;:9;:15;;;;;;;;;;;4514:20;;;4496:38;;4714:13;;;;;;;;;;:23;;;;;;4766:26;;1649:25:1;;;4714:13:0;;4766:26;;1622:18:1;4766:26:0;;;;;;;4805:37;4122:728;4044:806;;;:::o;6451:419::-;6552:24;6579:25;6589:5;6596:7;6579:9;:25::i;:::-;6552:52;;-1:-1:-1;;6619:16:0;:37;6615:248;;6701:6;6681:16;:26;;6673:68;;;;-1:-1:-1;;;6673:68:0;;13917:2:1;6673:68:0;;;13899:21:1;13956:2;13936:18;;;13929:30;13995:31;13975:18;;;13968:59;14044:18;;6673:68:0;13715:353:1;6673:68:0;6785:51;6794:5;6801:7;6829:6;6810:16;:25;6785:8;:51::i;20820:399::-;-1:-1:-1;;;;;20957:15:0;;;;;;:9;:15;;;;;;;;;:32;;-1:-1:-1;;;;;;20976:13:0;;;;;;:9;:13;;;;;;;;20957:32;20954:115;;;21005:31;21021:4;21026:2;21029:6;21005:15;:31::i;20954:115::-;21089:29;21101:4;21107:2;21111:6;21089:11;:29::i;:::-;21141:26;21150:4;21156:2;21160:6;21141:8;:26::i;:::-;21131:36;;;;:::i;:::-;;;21180:31;21196:4;21201:2;21204:6;21180:15;:31::i;12334:177::-;12444:58;;;-1:-1:-1;;;;;14398:32:1;;12444:58:0;;;14380:51:1;14447:18;;;;14440:34;;;12444:58:0;;;;;;;;;;14353:18:1;;;;12444:58:0;;;;;;;;-1:-1:-1;;;;;12444:58:0;-1:-1:-1;;;12444:58:0;;;12417:86;;12437:5;;12417:19;:86::i;21227:729::-;21325:13;;;;21317:22;;;;;;21355:6;;;;21352:597;;;-1:-1:-1;;;;;21401:12:0;;;;;;:6;:12;;;;;;;;:32;;;;-1:-1:-1;;;;;;21418:15:0;;;;;;:11;:15;;;;;;;;21417:16;21401:32;21397:541;;;21472:6;;21462;:16;;21454:48;;;;-1:-1:-1;;;21454:48:0;;14687:2:1;21454:48:0;;;14669:21:1;14726:2;14706:18;;;14699:30;-1:-1:-1;;;14745:18:1;;;14738:49;14804:18;;21454:48:0;14485:343:1;21454:48:0;21555:9;;-1:-1:-1;;;;;2482:18:0;;2455:7;2482:18;;;;;;;;;;;21538:13;21529:22;;:6;:22;:::i;:::-;:35;;21521:70;;;;-1:-1:-1;;;21521:70:0;;15035:2:1;21521:70:0;;;15017:21:1;15074:2;15054:18;;;15047:30;-1:-1:-1;;;15093:18:1;;;15086:52;15155:18;;21521:70:0;14833:346:1;21397:541:0;-1:-1:-1;;;;;21652:10:0;;;;;;:6;:10;;;;;;;;:32;;;;-1:-1:-1;;;;;;21667:17:0;;;;;;:11;:17;;;;;;;;21666:18;21652:32;21648:290;;;21723:6;;21713;:16;;21705:48;;;;-1:-1:-1;;;21705:48:0;;15386:2:1;21705:48:0;;;15368:21:1;15425:2;15405:18;;;15398:30;-1:-1:-1;;;15444:18:1;;;15437:49;15503:18;;21705:48:0;15184:343:1;21648:290:0;-1:-1:-1;;;;;21816:15:0;;;;;;:11;:15;;;;;;;;21812:126;;21886:9;;-1:-1:-1;;;;;2482:18:0;;2455:7;2482:18;;;;;;;;;;;21869:13;2381:127;21964:716;22094:15;;22084:4;22042:7;2482:18;;;;;;;;;;;22042:7;;-1:-1:-1;22066:43:0;:58;;;;-1:-1:-1;22113:11:0;;;;;;;22066:58;:71;;;;-1:-1:-1;22129:8:0;;;;;;;22128:9;22066:71;:85;;;;-1:-1:-1;;;;;;22141:10:0;;;;;;:6;:10;;;;;;;;22066:85;22063:188;;;22168:8;:15;;-1:-1:-1;;22168:15:0;;;;;22198:10;:8;:10::i;:::-;22223:8;:16;;-1:-1:-1;;22223:16:0;;;22063:188;-1:-1:-1;;;;;22323:10:0;;22271:11;22323:10;;;:6;:10;;;;;;;;:30;;;;;22352:1;22337:12;;:16;22323:30;22319:228;;;22399:3;22384:12;;22375:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;22369:33;;22319:228;;;-1:-1:-1;;;;;22453:12:0;;;;;;:6;:12;;;;;;;;:31;;;;;22483:1;22469:11;;:15;22453:31;22450:97;;;22530:3;22516:11;;22507:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;22501:32;;22450:97;22570:7;;22567:83;;22597:41;22613:4;22627;22634:3;22597:15;:41::i;:::-;22669:3;21964:716;-1:-1:-1;;;;21964:716:0:o;12732:333::-;12813:23;12839:69;12867:4;12839:69;;;;;;;;;;;;;;;;;12847:5;-1:-1:-1;;;;;12839:27:0;;;:69;;;;;:::i;:::-;12923:17;;12813:95;;-1:-1:-1;12923:21:0;12919:139;;12980:10;12969:30;;;;;;;;;;;;:::i;:::-;12961:85;;;;-1:-1:-1;;;12961:85:0;;15984:2:1;12961:85:0;;;15966:21:1;16023:2;16003:18;;;15996:30;16062:34;16042:18;;;16035:62;-1:-1:-1;;;16113:18:1;;;16106:40;16163:19;;12961:85:0;15782:406:1;23090:320:0;23170:4;23131:18;2482;;;;;;;;;;;23275:15;;:19;;23293:1;23275:19;:::i;:::-;23262:10;:32;23259:95;;;23323:15;;:19;;23341:1;23323:19;:::i;:::-;23310:32;;23259:95;23374:28;23391:10;23374:16;:28::i;:::-;23118:292;23090:320::o;8687:229::-;8824:12;8856:52;8878:6;8886:4;8892:1;8895:12;8856:21;:52::i;22688:392::-;22777:16;;;22791:1;22777:16;;;;;;;;22753:21;;22777:16;;;;;;;;;;-1:-1:-1;22777:16:0;22753:40;;22822:4;22804;22809:1;22804:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22804:23:0;;;:7;;;;;;;;;;:23;;;;22856:6;;:13;;;-1:-1:-1;;;22856:13:0;;;;:6;;;;;:11;;:13;;;;;22804:7;;22856:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22838:4;22843:1;22838:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22838:32:0;;;:7;;;;;;;;;:32;22883:6;;23021:9;;22883:189;;-1:-1:-1;;;22883:189:0;;:6;;;;:57;;:189;;22955:8;;22883:6;;22994:4;;23021:9;;;;23046:15;;22883:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22740:340;22688:392;:::o;9192:455::-;9362:12;9420:5;9395:21;:30;;9387:81;;;;-1:-1:-1;;;9387:81:0;;17768:2:1;9387:81:0;;;17750:21:1;17807:2;17787:18;;;17780:30;17846:34;17826:18;;;17819:62;-1:-1:-1;;;17897:18:1;;;17890:36;17943:19;;9387:81:0;17566:402:1;9387:81:0;9480:12;9494:23;9521:6;-1:-1:-1;;;;;9521:11:0;9540:5;9547:4;9521:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9479:73;;;;9570:69;9597:6;9605:7;9614:10;9626:12;9570:26;:69::i;:::-;9563:76;9192:455;-1:-1:-1;;;;;;;9192:455:0:o;10751:644::-;10936:12;10965:7;10961:427;;;10993:10;:17;11014:1;10993:22;10989:290;;-1:-1:-1;;;;;8128:19:0;;;11203:60;;;;-1:-1:-1;;;11203:60:0;;18467:2:1;11203:60:0;;;18449:21:1;18506:2;18486:18;;;18479:30;18545:31;18525:18;;;18518:59;18594:18;;11203:60:0;18265:353:1;11203:60:0;-1:-1:-1;11300:10:0;11293:17;;10961:427;11343:33;11351:10;11363:12;11877:17;;:21;11873:388;;12109:10;12103:17;12166:15;12153:10;12149:2;12145:19;12138:44;11873:388;12236:12;12229:20;;-1:-1:-1;;;12229:20:0;;;;;;;;:::i;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;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;1318:180::-;1377:6;1430:2;1418:9;1409:7;1405:23;1401:32;1398:52;;;1446:1;1443;1436:12;1398:52;-1:-1:-1;1469:23:1;;1318:180;-1:-1:-1;1318:180:1:o;1685:247::-;1744:6;1797:2;1785:9;1776:7;1772:23;1768:32;1765:52;;;1813:1;1810;1803:12;1765:52;1852:9;1839:23;1871:31;1896:5;1871:31;:::i;:::-;1921:5;1685:247;-1:-1:-1;;;1685:247:1:o;1937:367::-;2000:8;2010:6;2064:3;2057:4;2049:6;2045:17;2041:27;2031:55;;2082:1;2079;2072:12;2031:55;-1:-1:-1;2105:20:1;;2148:18;2137:30;;2134:50;;;2180:1;2177;2170:12;2134:50;2217:4;2209:6;2205:17;2193:29;;2277:3;2270:4;2260:6;2257:1;2253:14;2245:6;2241:27;2237:38;2234:47;2231:67;;;2294:1;2291;2284:12;2231:67;1937:367;;;;;:::o;2309:773::-;2431:6;2439;2447;2455;2508:2;2496:9;2487:7;2483:23;2479:32;2476:52;;;2524:1;2521;2514:12;2476:52;2564:9;2551:23;2593:18;2634:2;2626:6;2623:14;2620:34;;;2650:1;2647;2640:12;2620:34;2689:70;2751:7;2742:6;2731:9;2727:22;2689:70;:::i;:::-;2778:8;;-1:-1:-1;2663:96:1;-1:-1:-1;2866:2:1;2851:18;;2838:32;;-1:-1:-1;2882:16:1;;;2879:36;;;2911:1;2908;2901:12;2879:36;;2950:72;3014:7;3003:8;2992:9;2988:24;2950:72;:::i;:::-;2309:773;;;;-1:-1:-1;3041:8:1;-1:-1:-1;;;;2309:773:1:o;3087:456::-;3164:6;3172;3180;3233:2;3221:9;3212:7;3208:23;3204:32;3201:52;;;3249:1;3246;3239:12;3201:52;3288:9;3275:23;3307:31;3332:5;3307:31;:::i;:::-;3357:5;-1:-1:-1;3414:2:1;3399:18;;3386:32;3427:33;3386:32;3427:33;:::i;:::-;3087:456;;3479:7;;-1:-1:-1;;;3533:2:1;3518:18;;;;3505:32;;3087:456::o;3945:118::-;4031:5;4024:13;4017:21;4010:5;4007:32;3997:60;;4053:1;4050;4043:12;4068:382;4133:6;4141;4194:2;4182:9;4173:7;4169:23;4165:32;4162:52;;;4210:1;4207;4200:12;4162:52;4249:9;4236:23;4268:31;4293:5;4268:31;:::i;:::-;4318:5;-1:-1:-1;4375:2:1;4360:18;;4347:32;4388:30;4347:32;4388:30;:::i;:::-;4437:7;4427:17;;;4068:382;;;;;:::o;4455:388::-;4523:6;4531;4584:2;4572:9;4563:7;4559:23;4555:32;4552:52;;;4600:1;4597;4590:12;4552:52;4639:9;4626:23;4658:31;4683:5;4658:31;:::i;:::-;4708:5;-1:-1:-1;4765:2:1;4750:18;;4737:32;4778:33;4737:32;4778:33;:::i;5075:380::-;5154:1;5150:12;;;;5197;;;5218:61;;5272:4;5264:6;5260:17;5250:27;;5218:61;5325:2;5317:6;5314:14;5294:18;5291:38;5288:161;;5371:10;5366:3;5362:20;5359:1;5352:31;5406:4;5403:1;5396:15;5434:4;5431:1;5424:15;5288:161;;5075:380;;;:::o;5460:356::-;5662:2;5644:21;;;5681:18;;;5674:30;5740:34;5735:2;5720:18;;5713:62;5807:2;5792:18;;5460:356::o;6500:127::-;6561:10;6556:3;6552:20;6549:1;6542:31;6592:4;6589:1;6582:15;6616:4;6613:1;6606:15;6632:416;6721:1;6758:5;6721:1;6772:270;6793:7;6783:8;6780:21;6772:270;;;6852:4;6848:1;6844:6;6840:17;6834:4;6831:27;6828:53;;;6861:18;;:::i;:::-;6911:7;6901:8;6897:22;6894:55;;;6931:16;;;;6894:55;7010:22;;;;6970:15;;;;6772:270;;;6776:3;6632:416;;;;;:::o;7053:806::-;7102:5;7132:8;7122:80;;-1:-1:-1;7173:1:1;7187:5;;7122:80;7221:4;7211:76;;-1:-1:-1;7258:1:1;7272:5;;7211:76;7303:4;7321:1;7316:59;;;;7389:1;7384:130;;;;7296:218;;7316:59;7346:1;7337:10;;7360:5;;;7384:130;7421:3;7411:8;7408:17;7405:43;;;7428:18;;:::i;:::-;-1:-1:-1;;7484:1:1;7470:16;;7499:5;;7296:218;;7598:2;7588:8;7585:16;7579:3;7573:4;7570:13;7566:36;7560:2;7550:8;7547:16;7542:2;7536:4;7533:12;7529:35;7526:77;7523:159;;;-1:-1:-1;7635:19:1;;;7667:5;;7523:159;7714:34;7739:8;7733:4;7714:34;:::i;:::-;7784:6;7780:1;7776:6;7772:19;7763:7;7760:32;7757:58;;;7795:18;;:::i;:::-;7833:20;;7053:806;-1:-1:-1;;;7053:806:1:o;7864:140::-;7922:5;7951:47;7992:4;7982:8;7978:19;7972:4;7951:47;:::i;8009:168::-;8082:9;;;8113;;8130:15;;;8124:22;;8110:37;8100:71;;8151:18;;:::i;8182:217::-;8222:1;8248;8238:132;;8292:10;8287:3;8283:20;8280:1;8273:31;8327:4;8324:1;8317:15;8355:4;8352:1;8345:15;8238:132;-1:-1:-1;8384:9:1;;8182:217::o;9449:127::-;9510:10;9505:3;9501:20;9498:1;9491:31;9541:4;9538:1;9531:15;9565:4;9562:1;9555:15;9581:125;9646:9;;;9667:10;;;9664:36;;;9680:18;;:::i;11094:184::-;11164:6;11217:2;11205:9;11196:7;11192:23;11188:32;11185:52;;;11233:1;11230;11223:12;11185:52;-1:-1:-1;11256:16:1;;11094:184;-1:-1:-1;11094:184:1:o;14073:128::-;14140:9;;;14161:11;;;14158:37;;;14175:18;;:::i;15532:245::-;15599:6;15652:2;15640:9;15631:7;15627:23;15623:32;15620:52;;;15668:1;15665;15658:12;15620:52;15700:9;15694:16;15719:28;15741:5;15719:28;:::i;16325:251::-;16395:6;16448:2;16436:9;16427:7;16423:23;16419:32;16416:52;;;16464:1;16461;16454:12;16416:52;16496:9;16490:16;16515:31;16540:5;16515:31;:::i;16581:980::-;16843:4;16891:3;16880:9;16876:19;16922:6;16911:9;16904:25;16948:2;16986:6;16981:2;16970:9;16966:18;16959:34;17029:3;17024:2;17013:9;17009:18;17002:31;17053:6;17088;17082:13;17119:6;17111;17104:22;17157:3;17146:9;17142:19;17135:26;;17196:2;17188:6;17184:15;17170:29;;17217:1;17227:195;17241:6;17238:1;17235:13;17227:195;;;17306:13;;-1:-1:-1;;;;;17302:39:1;17290:52;;17397:15;;;;17362:12;;;;17338:1;17256:9;17227:195;;;-1:-1:-1;;;;;;;17478:32:1;;;;17473:2;17458:18;;17451:60;-1:-1:-1;;;17542:3:1;17527:19;17520:35;17439:3;16581:980;-1:-1:-1;;;16581:980:1:o;17973:287::-;18102:3;18140:6;18134:13;18156:66;18215:6;18210:3;18203:4;18195:6;18191:17;18156:66;:::i;:::-;18238:16;;;;;17973:287;-1:-1:-1;;17973:287:1:o

Swarm Source

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