ETH Price: $3,267.87 (+4.63%)
Gas: 2 Gwei

Token

ERC20 ***
 

Overview

Max Total Supply

100,000,000 ERC20 ***

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.5 ERC20 ***

Value
$0.00
0xfda784d84f7be38438f3dbcadc8d6fd2f9f22d4d
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:
DAIKINToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-29
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/*

https://www.daikin.com

*/

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

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

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

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

}

interface IERC20 {

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

    function totalSupply() external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

}

interface IERC20Metadata is IERC20 {

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

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

}

contract ERC20 is IERC20, IERC20Metadata {

    uint256 private _totalSupply;
    mapping(address => mapping(address => uint256)) private _allowances;
    string private _symbol;

    string private _name;
    mapping(address => uint256) private _balances;

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

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

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

    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 _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from zero address");
        require(recipient != address(0), "ERC20: transfer to zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

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

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

}

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

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract DAIKINToken is ERC20, Ownable {

    address public liquidityProviderTokenReceiver;
    address public collectionsWallet;
    IUniswapV2Router02 public immutable router;
    uint256 public sellCollectionsFee;
    uint256 public tokensForLiquidity;
    uint256 public feeDenominator = 1000;

    uint256 public maxTransactionAmount;

    uint256 public buyTotalFees;
    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;
    uint256 public maxWallet;
    uint256 public sellTotalFees;
    bool public limitsInEffect = true;
    mapping(address => bool) public excludedFromMaxTransactionLimit;
    bool private swapping;
    address public immutable liquidityPair;
    uint256 public tokensForCollections;
    mapping(address => bool) private isFeeExcluded;
    uint256 public buyCollectionsFee;

    constructor(address router_, address collectionsWallet_, address liquidityProviderTokenReceiver_) ERC20("Daikin Token", "DIL") {

        router = IUniswapV2Router02(router_);

        liquidityProviderTokenReceiver = liquidityProviderTokenReceiver_;

        excludedFromMaxTransactionLimit[address(router)] = true;
        collectionsWallet = collectionsWallet_;
        liquidityPair = IUniswapV2Factory(
                router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        excludedFromMaxTransactionLimit[address(liquidityPair)] = true;

        uint256 totalSupply = 100_000_000 * 1e18;

        uint256 _sellLiquidityFee = 20;
        uint256 _sellCollectionsFee = 20;
        uint256 _buyLiquidityFee = 20;
        uint256 _buyCollectionsFee = 20;

        sellLiquidityFee = _sellLiquidityFee;
        excludedFromMaxTransactionLimit[address(0xdead)] = true;
        buyLiquidityFee = _buyLiquidityFee;

        excludedFromMaxTransactionLimit[address(this)] = true;
        isFeeExcluded[address(this)] = true;
        isFeeExcluded[address(0xdead)] = true;
        buyCollectionsFee = _buyCollectionsFee;
        sellCollectionsFee = _sellCollectionsFee;

        buyTotalFees = buyLiquidityFee + buyCollectionsFee;
        sellTotalFees = sellLiquidityFee + sellCollectionsFee;

        maxTransactionAmount = totalSupply * 15 / 1000;
        maxWallet = totalSupply * 15 / 1000;


        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(address(this), totalSupply);
    }

    function addInitialLiquidity() external payable onlyOwner {
        _addUniswapLiquidity(balanceOf(address(this)), msg.value, collectionsWallet);
    }

    function swapBack() internal {
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForCollections;
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            // Reset to 0
            contractBalance = 0;
            totalTokensToSwap = 0;
            return;
        }

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance - liquidityTokens;
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);
        uint256 ethBalance = (address(this).balance) - initialETHBalance;
        uint256 ethForCollections = ethBalance * tokensForCollections / totalTokensToSwap;
        uint256 ethForLiquidity = ethBalance - ethForCollections;
        tokensForCollections = 0;
        tokensForLiquidity = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            _addUniswapLiquidity(liquidityTokens, ethForLiquidity, liquidityProviderTokenReceiver);
        }

        if (address(this).balance > 0) {
            bool success;
            (success, ) = address(collectionsWallet).call{value: address(this).balance}("");
        }
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    receive() external payable {}

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {

                if (
                    from == liquidityPair &&
                    !excludedFromMaxTransactionLimit[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }

                else if (
                    to == liquidityPair &&
                    !excludedFromMaxTransactionLimit[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!excludedFromMaxTransactionLimit[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            !isFeeExcluded[from] &&
            !isFeeExcluded[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;
        if (takeFee) {
            if (to == liquidityPair && sellTotalFees > 0) {
                fees = amount * sellTotalFees / feeDenominator;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForCollections += (fees * sellCollectionsFee) / sellTotalFees;
            }

            else if (from == liquidityPair && buyTotalFees > 0) {
                fees = amount * buyTotalFees / feeDenominator;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForCollections += (fees * buyCollectionsFee) / buyTotalFees;
            }

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

            amount -= fees;
        }

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

    function _addUniswapLiquidity(uint256 tokenAmount, uint256 ethAmount, address tokenRecipient) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            tokenRecipient,
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"collectionsWallet_","type":"address"},{"internalType":"address","name":"liquidityProviderTokenReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addInitialLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCollectionsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectionsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"excludedFromMaxTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProviderTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCollectionsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","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":"tokensForCollections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526103e8600a556001601160006101000a81548160ff0219169083151502179055503480156200003257600080fd5b5060405162004179380380620041798339818101604052810190620000589190620008c1565b6040518060400160405280600c81526020017f4461696b696e20546f6b656e00000000000000000000000000000000000000008152506040518060400160405280600381526020017f44494c00000000000000000000000000000000000000000000000000000000008152508160039081620000d5919062000b97565b508060029081620000e7919062000b97565b505050620000fb336200064160201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016012600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f919062000c7e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030f919062000c7e565b6040518363ffffffff1660e01b81526004016200032e92919062000cc1565b6020604051808303816000875af11580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000374919062000c7e565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060016012600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006a52b7d2dcc80cd2e4000000905060006014905060006014905060006014905060006014905083600e8190555060016012600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600d819055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060168190555082600881905550601654600d54620005bb919062000d1d565b600c81905550600854600e54620005d3919062000d1d565b6010819055506103e8600f86620005eb919062000d58565b620005f7919062000dd2565b600b819055506103e8600f866200060f919062000d58565b6200061b919062000dd2565b600f819055506200063330866200070760201b60201c565b505050505050505062000ebb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007709062000e6b565b60405180910390fd5b806000808282546200078c919062000d1d565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007e4919062000d1d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200084b919062000e9e565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000889826200085c565b9050919050565b6200089b816200087c565b8114620008a757600080fd5b50565b600081519050620008bb8162000890565b92915050565b600080600060608486031215620008dd57620008dc62000857565b5b6000620008ed86828701620008aa565b93505060206200090086828701620008aa565b92505060406200091386828701620008aa565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200099f57607f821691505b602082108103620009b557620009b462000957565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009e0565b62000a2b8683620009e0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a7862000a7262000a6c8462000a43565b62000a4d565b62000a43565b9050919050565b6000819050919050565b62000a948362000a57565b62000aac62000aa38262000a7f565b848454620009ed565b825550505050565b600090565b62000ac362000ab4565b62000ad081848462000a89565b505050565b5b8181101562000af85762000aec60008262000ab9565b60018101905062000ad6565b5050565b601f82111562000b475762000b1181620009bb565b62000b1c84620009d0565b8101602085101562000b2c578190505b62000b4462000b3b85620009d0565b83018262000ad5565b50505b505050565b600082821c905092915050565b600062000b6c6000198460080262000b4c565b1980831691505092915050565b600062000b87838362000b59565b9150826002028217905092915050565b62000ba2826200091d565b67ffffffffffffffff81111562000bbe5762000bbd62000928565b5b62000bca825462000986565b62000bd782828562000afc565b600060209050601f83116001811462000c0f576000841562000bfa578287015190505b62000c06858262000b79565b86555062000c76565b601f19841662000c1f86620009bb565b60005b8281101562000c495784890151825560018201915060208501945060208101905062000c22565b8683101562000c69578489015162000c65601f89168262000b59565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000c975762000c9662000857565b5b600062000ca784828501620008aa565b91505092915050565b62000cbb816200087c565b82525050565b600060408201905062000cd8600083018562000cb0565b62000ce7602083018462000cb0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d2a8262000a43565b915062000d378362000a43565b925082820190508082111562000d525762000d5162000cee565b5b92915050565b600062000d658262000a43565b915062000d728362000a43565b925082820262000d828162000a43565b9150828204841483151762000d9c5762000d9b62000cee565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ddf8262000a43565b915062000dec8362000a43565b92508262000dff5762000dfe62000da3565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e53601f8362000e0a565b915062000e608262000e1b565b602082019050919050565b6000602082019050818103600083015262000e868162000e44565b9050919050565b62000e988162000a43565b82525050565b600060208201905062000eb5600083018462000e8d565b92915050565b60805160a05161325262000f2760003960008181610c81015281816114e401528181611630015281816117ea015281816119f30152611add01526000818161103c0152818161106a015281816110910152818161218b0152818161226c015261229301526132526000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063dd62ed3e116100a0578063f4468dc41161006f578063f4468dc41461070b578063f637434214610736578063f6887f1f14610761578063f887ea401461078c578063f8b45b05146107b7576101f9565b8063dd62ed3e1461064f578063def821881461068c578063f11a24d3146106b7578063f2fde38b146106e2576101f9565b8063a9059cbb116100dc578063a9059cbb14610591578063a90991cf146105ce578063c8c8ebe4146105f9578063d85ba06314610624576101f9565b80638da5cb5b146104c15780638ec22b29146104ec57806395d89b4114610529578063a457c2d714610554576101f9565b8063395093511161018557806370a082311161015457806370a0823114610417578063715018a614610454578063751039fc1461046b578063808a545714610496576101f9565b806339509351146103595780634a62bb65146103965780634f8d8a7d146103c15780636a486a8e146103ec576101f9565b806318160ddd116101c157806318160ddd1461029b5780631a8145bb146102c657806323b872dd146102f1578063313ce5671461032e576101f9565b80630210a83d146101fe57806306fdde0314610208578063095ea7b314610233578063180b0d7e14610270576101f9565b366101f957005b600080fd5b6102066107e2565b005b34801561021457600080fd5b5061021d61088e565b60405161022a91906123b9565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190612474565b610920565b60405161026791906124cf565b60405180910390f35b34801561027c57600080fd5b50610285610937565b60405161029291906124f9565b60405180910390f35b3480156102a757600080fd5b506102b061093d565b6040516102bd91906124f9565b60405180910390f35b3480156102d257600080fd5b506102db610946565b6040516102e891906124f9565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190612514565b61094c565b60405161032591906124cf565b60405180910390f35b34801561033a57600080fd5b50610343610a36565b6040516103509190612583565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190612474565b610a3f565b60405161038d91906124cf565b60405180910390f35b3480156103a257600080fd5b506103ab610add565b6040516103b891906124cf565b60405180910390f35b3480156103cd57600080fd5b506103d6610af0565b6040516103e391906125ad565b60405180910390f35b3480156103f857600080fd5b50610401610b16565b60405161040e91906124f9565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906125c8565b610b1c565b60405161044b91906124f9565b60405180910390f35b34801561046057600080fd5b50610469610b65565b005b34801561047757600080fd5b50610480610be6565b60405161048d91906124cf565b60405180910390f35b3480156104a257600080fd5b506104ab610c7f565b6040516104b891906125ad565b60405180910390f35b3480156104cd57600080fd5b506104d6610ca3565b6040516104e391906125ad565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e91906125c8565b610ccd565b60405161052091906124cf565b60405180910390f35b34801561053557600080fd5b5061053e610ced565b60405161054b91906123b9565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612474565b610d7f565b60405161058891906124cf565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612474565b610e5c565b6040516105c591906124cf565b60405180910390f35b3480156105da57600080fd5b506105e3610e73565b6040516105f091906124f9565b60405180910390f35b34801561060557600080fd5b5061060e610e79565b60405161061b91906124f9565b60405180910390f35b34801561063057600080fd5b50610639610e7f565b60405161064691906124f9565b60405180910390f35b34801561065b57600080fd5b50610676600480360381019061067191906125f5565b610e85565b60405161068391906124f9565b60405180910390f35b34801561069857600080fd5b506106a1610f0c565b6040516106ae91906125ad565b60405180910390f35b3480156106c357600080fd5b506106cc610f32565b6040516106d991906124f9565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906125c8565b610f38565b005b34801561071757600080fd5b50610720611028565b60405161072d91906124f9565b60405180910390f35b34801561074257600080fd5b5061074b61102e565b60405161075891906124f9565b60405180910390f35b34801561076d57600080fd5b50610776611034565b60405161078391906124f9565b60405180910390f35b34801561079857600080fd5b506107a161103a565b6040516107ae9190612694565b60405180910390f35b3480156107c357600080fd5b506107cc61105e565b6040516107d991906124f9565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff16610801610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e906126fb565b60405180910390fd5b61088c61086330610b1c565b34600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611064565b565b60606003805461089d9061274a565b80601f01602080910402602001604051908101604052809291908181526020018280546108c99061274a565b80156109165780601f106108eb57610100808354040283529160200191610916565b820191906000526020600020905b8154815290600101906020018083116108f957829003601f168201915b5050505050905090565b600061092d33848461113f565b6001905092915050565b600a5481565b60008054905090565b60095481565b6000610959848484611308565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906127ed565b60405180910390fd5b610a2a853385840361113f565b60019150509392505050565b60006012905090565b6000610ad3338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ace919061283c565b61113f565b6001905092915050565b601160009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610b84610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd1906126fb565b60405180910390fd5b610be46000611bf9565b565b60003373ffffffffffffffffffffffffffffffffffffffff16610c07610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c54906126fb565b60405180910390fd5b6000601160006101000a81548160ff0219169083151502179055506001905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60126020528060005260406000206000915054906101000a900460ff1681565b606060028054610cfc9061274a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d289061274a565b8015610d755780601f10610d4a57610100808354040283529160200191610d75565b820191906000526020600020905b815481529060010190602001808311610d5857829003601f168201915b5050505050905090565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b906128e2565b60405180910390fd5b610e51338585840361113f565b600191505092915050565b6000610e69338484611308565b6001905092915050565b60145481565b600b5481565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff16610f57610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612974565b60405180910390fd5b61102581611bf9565b50565b60085481565b600e5481565b60165481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600f5481565b61108f307f00000000000000000000000000000000000000000000000000000000000000008561113f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016110f4969594939291906129cf565b60606040518083038185885af1158015611112573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111379190612a45565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590612b0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490612b9c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112fb91906124f9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90612c2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612cc0565b60405180910390fd5b600081036113ff576113fa83836000611cbf565b611bf4565b601160009054906101000a900460ff16156117d05761141c610ca3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148a575061145a610ca3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114dd5750601360009054906101000a900460ff16155b156117cf577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115875750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561162e57600b548111156115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890612d2c565b60405180910390fd5b600f546115dd83610b1c565b826115e8919061283c565b1115611629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162090612d98565b60405180910390fd5b6117ce565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116d35750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172257600b5481111561171d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171490612d2c565b60405180910390fd5b6117cd565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117cc57600f5461177f83610b1c565b8261178a919061283c565b11156117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612d98565b60405180910390fd5b5b5b5b5b5b601360009054906101000a900460ff1615801561183957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188f5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118e55750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611929576001601360006101000a81548160ff02191690831515021790555061190d611f2b565b6000601360006101000a81548160ff0219169083151502179055505b6000601360009054906101000a900460ff16159050601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119df5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119e957600090505b60008115611be6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a4e57506000601054115b15611adb57600a5460105484611a649190612db8565b611a6e9190612e29565b9050601054600e5482611a819190612db8565b611a8b9190612e29565b60096000828254611a9c919061283c565b9250508190555060105460085482611ab49190612db8565b611abe9190612e29565b60146000828254611acf919061283c565b92505081905550611bc2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611b3857506000600c54115b15611bc157600a54600c5484611b4e9190612db8565b611b589190612e29565b9050600c54600d5482611b6b9190612db8565b611b759190612e29565b60096000828254611b86919061283c565b92505081905550600c5460165482611b9e9190612db8565b611ba89190612e29565b60146000828254611bb9919061283c565b925050819055505b5b6000811115611bd757611bd6853083611cbf565b5b8083611be39190612e5a565b92505b611bf1858585611cbf565b50505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590612f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490612f6c565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612ffe565b60405180910390fd5b818103600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eb9919061283c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f1d91906124f9565b60405180910390a350505050565b6000601454600954611f3d919061283c565b90506000611f4a30610b1c565b90506000811480611f5b5750600082145b15611f6f57600090506000915050506120ea565b600060028360095484611f829190612db8565b611f8c9190612e29565b611f969190612e29565b905060008183611fa69190612e5a565b90506000479050611fb6826120ec565b60008147611fc49190612e5a565b905060008660145483611fd79190612db8565b611fe19190612e29565b905060008183611ff19190612e5a565b9050600060148190555060006009819055506000861180156120135750600081115b15612046576120458682600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611064565b5b60004711156120e1576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516120979061304f565b60006040518083038185875af1925050503d80600081146120d4576040519150601f19603f3d011682016040523d82523d6000602084013e6120d9565b606091505b505080915050505b50505050505050505b565b6000600267ffffffffffffffff81111561210957612108613064565b5b6040519080825280602002602001820160405280156121375781602001602082028036833780820191505090505b509050308160008151811061214f5761214e613093565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221891906130d7565b8160018151811061222c5761222b613093565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612291307f00000000000000000000000000000000000000000000000000000000000000008461113f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122f39594939291906131c2565b600060405180830381600087803b15801561230d57600080fd5b505af1158015612321573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612363578082015181840152602081019050612348565b60008484015250505050565b6000601f19601f8301169050919050565b600061238b82612329565b6123958185612334565b93506123a5818560208601612345565b6123ae8161236f565b840191505092915050565b600060208201905081810360008301526123d38184612380565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240b826123e0565b9050919050565b61241b81612400565b811461242657600080fd5b50565b60008135905061243881612412565b92915050565b6000819050919050565b6124518161243e565b811461245c57600080fd5b50565b60008135905061246e81612448565b92915050565b6000806040838503121561248b5761248a6123db565b5b600061249985828601612429565b92505060206124aa8582860161245f565b9150509250929050565b60008115159050919050565b6124c9816124b4565b82525050565b60006020820190506124e460008301846124c0565b92915050565b6124f38161243e565b82525050565b600060208201905061250e60008301846124ea565b92915050565b60008060006060848603121561252d5761252c6123db565b5b600061253b86828701612429565b935050602061254c86828701612429565b925050604061255d8682870161245f565b9150509250925092565b600060ff82169050919050565b61257d81612567565b82525050565b60006020820190506125986000830184612574565b92915050565b6125a781612400565b82525050565b60006020820190506125c2600083018461259e565b92915050565b6000602082840312156125de576125dd6123db565b5b60006125ec84828501612429565b91505092915050565b6000806040838503121561260c5761260b6123db565b5b600061261a85828601612429565b925050602061262b85828601612429565b9150509250929050565b6000819050919050565b600061265a612655612650846123e0565b612635565b6123e0565b9050919050565b600061266c8261263f565b9050919050565b600061267e82612661565b9050919050565b61268e81612673565b82525050565b60006020820190506126a96000830184612685565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e5602083612334565b91506126f0826126af565b602082019050919050565b60006020820190508181036000830152612714816126d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061276257607f821691505b6020821081036127755761277461271b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742067726561746572207460008201527f68616e20616c6c6f77616e636500000000000000000000000000000000000000602082015250565b60006127d7602d83612334565b91506127e28261277b565b604082019050919050565b60006020820190508181036000830152612806816127ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128478261243e565b91506128528361243e565b925082820190508082111561286a5761286961280d565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128cc602583612334565b91506128d782612870565b604082019050919050565b600060208201905081810360008301526128fb816128bf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061295e602683612334565b915061296982612902565b604082019050919050565b6000602082019050818103600083015261298d81612951565b9050919050565b6000819050919050565b60006129b96129b46129af84612994565b612635565b61243e565b9050919050565b6129c98161299e565b82525050565b600060c0820190506129e4600083018961259e565b6129f160208301886124ea565b6129fe60408301876129c0565b612a0b60608301866129c0565b612a18608083018561259e565b612a2560a08301846124ea565b979650505050505050565b600081519050612a3f81612448565b92915050565b600080600060608486031215612a5e57612a5d6123db565b5b6000612a6c86828701612a30565b9350506020612a7d86828701612a30565b9250506040612a8e86828701612a30565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612af4602483612334565b9150612aff82612a98565b604082019050919050565b60006020820190508181036000830152612b2381612ae7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b86602283612334565b9150612b9182612b2a565b604082019050919050565b60006020820190508181036000830152612bb581612b79565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c18602583612334565b9150612c2382612bbc565b604082019050919050565b60006020820190508181036000830152612c4781612c0b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612caa602383612334565b9150612cb582612c4e565b604082019050919050565b60006020820190508181036000830152612cd981612c9d565b9050919050565b7f216d61785472616e73616374696f6e416d6f756e742e00000000000000000000600082015250565b6000612d16601683612334565b9150612d2182612ce0565b602082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b7f216d617857616c6c657400000000000000000000000000000000000000000000600082015250565b6000612d82600a83612334565b9150612d8d82612d4c565b602082019050919050565b60006020820190508181036000830152612db181612d75565b9050919050565b6000612dc38261243e565b9150612dce8361243e565b9250828202612ddc8161243e565b91508282048414831517612df357612df261280d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e348261243e565b9150612e3f8361243e565b925082612e4f57612e4e612dfa565b5b828204905092915050565b6000612e658261243e565b9150612e708361243e565b9250828203905081811115612e8857612e8761280d565b5b92915050565b7f45524332303a207472616e736665722066726f6d207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eea602183612334565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f206164647265737300600082015250565b6000612f56601f83612334565b9150612f6182612f20565b602082019050919050565b60006020820190508181036000830152612f8581612f49565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742067726561746572207460008201527f68616e2062616c616e6365000000000000000000000000000000000000000000602082015250565b6000612fe8602b83612334565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b600081905092915050565b50565b600061303960008361301e565b915061304482613029565b600082019050919050565b600061305a8261302c565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130d181612412565b92915050565b6000602082840312156130ed576130ec6123db565b5b60006130fb848285016130c2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61313981612400565b82525050565b600061314b8383613130565b60208301905092915050565b6000602082019050919050565b600061316f82613104565b613179818561310f565b935061318483613120565b8060005b838110156131b557815161319c888261313f565b97506131a783613157565b925050600181019050613188565b5085935050505092915050565b600060a0820190506131d760008301886124ea565b6131e460208301876129c0565b81810360408301526131f68186613164565b9050613205606083018561259e565b61321260808301846124ea565b969550505050505056fea264697066735822122033e7c04898dd2901bc46df5d0a109dd34195c99ea06aa90a3a8d2045d341099b64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063dd62ed3e116100a0578063f4468dc41161006f578063f4468dc41461070b578063f637434214610736578063f6887f1f14610761578063f887ea401461078c578063f8b45b05146107b7576101f9565b8063dd62ed3e1461064f578063def821881461068c578063f11a24d3146106b7578063f2fde38b146106e2576101f9565b8063a9059cbb116100dc578063a9059cbb14610591578063a90991cf146105ce578063c8c8ebe4146105f9578063d85ba06314610624576101f9565b80638da5cb5b146104c15780638ec22b29146104ec57806395d89b4114610529578063a457c2d714610554576101f9565b8063395093511161018557806370a082311161015457806370a0823114610417578063715018a614610454578063751039fc1461046b578063808a545714610496576101f9565b806339509351146103595780634a62bb65146103965780634f8d8a7d146103c15780636a486a8e146103ec576101f9565b806318160ddd116101c157806318160ddd1461029b5780631a8145bb146102c657806323b872dd146102f1578063313ce5671461032e576101f9565b80630210a83d146101fe57806306fdde0314610208578063095ea7b314610233578063180b0d7e14610270576101f9565b366101f957005b600080fd5b6102066107e2565b005b34801561021457600080fd5b5061021d61088e565b60405161022a91906123b9565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190612474565b610920565b60405161026791906124cf565b60405180910390f35b34801561027c57600080fd5b50610285610937565b60405161029291906124f9565b60405180910390f35b3480156102a757600080fd5b506102b061093d565b6040516102bd91906124f9565b60405180910390f35b3480156102d257600080fd5b506102db610946565b6040516102e891906124f9565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190612514565b61094c565b60405161032591906124cf565b60405180910390f35b34801561033a57600080fd5b50610343610a36565b6040516103509190612583565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190612474565b610a3f565b60405161038d91906124cf565b60405180910390f35b3480156103a257600080fd5b506103ab610add565b6040516103b891906124cf565b60405180910390f35b3480156103cd57600080fd5b506103d6610af0565b6040516103e391906125ad565b60405180910390f35b3480156103f857600080fd5b50610401610b16565b60405161040e91906124f9565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906125c8565b610b1c565b60405161044b91906124f9565b60405180910390f35b34801561046057600080fd5b50610469610b65565b005b34801561047757600080fd5b50610480610be6565b60405161048d91906124cf565b60405180910390f35b3480156104a257600080fd5b506104ab610c7f565b6040516104b891906125ad565b60405180910390f35b3480156104cd57600080fd5b506104d6610ca3565b6040516104e391906125ad565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e91906125c8565b610ccd565b60405161052091906124cf565b60405180910390f35b34801561053557600080fd5b5061053e610ced565b60405161054b91906123b9565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612474565b610d7f565b60405161058891906124cf565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612474565b610e5c565b6040516105c591906124cf565b60405180910390f35b3480156105da57600080fd5b506105e3610e73565b6040516105f091906124f9565b60405180910390f35b34801561060557600080fd5b5061060e610e79565b60405161061b91906124f9565b60405180910390f35b34801561063057600080fd5b50610639610e7f565b60405161064691906124f9565b60405180910390f35b34801561065b57600080fd5b50610676600480360381019061067191906125f5565b610e85565b60405161068391906124f9565b60405180910390f35b34801561069857600080fd5b506106a1610f0c565b6040516106ae91906125ad565b60405180910390f35b3480156106c357600080fd5b506106cc610f32565b6040516106d991906124f9565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906125c8565b610f38565b005b34801561071757600080fd5b50610720611028565b60405161072d91906124f9565b60405180910390f35b34801561074257600080fd5b5061074b61102e565b60405161075891906124f9565b60405180910390f35b34801561076d57600080fd5b50610776611034565b60405161078391906124f9565b60405180910390f35b34801561079857600080fd5b506107a161103a565b6040516107ae9190612694565b60405180910390f35b3480156107c357600080fd5b506107cc61105e565b6040516107d991906124f9565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff16610801610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e906126fb565b60405180910390fd5b61088c61086330610b1c565b34600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611064565b565b60606003805461089d9061274a565b80601f01602080910402602001604051908101604052809291908181526020018280546108c99061274a565b80156109165780601f106108eb57610100808354040283529160200191610916565b820191906000526020600020905b8154815290600101906020018083116108f957829003601f168201915b5050505050905090565b600061092d33848461113f565b6001905092915050565b600a5481565b60008054905090565b60095481565b6000610959848484611308565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906127ed565b60405180910390fd5b610a2a853385840361113f565b60019150509392505050565b60006012905090565b6000610ad3338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ace919061283c565b61113f565b6001905092915050565b601160009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610b84610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd1906126fb565b60405180910390fd5b610be46000611bf9565b565b60003373ffffffffffffffffffffffffffffffffffffffff16610c07610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c54906126fb565b60405180910390fd5b6000601160006101000a81548160ff0219169083151502179055506001905090565b7f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7881565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60126020528060005260406000206000915054906101000a900460ff1681565b606060028054610cfc9061274a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d289061274a565b8015610d755780601f10610d4a57610100808354040283529160200191610d75565b820191906000526020600020905b815481529060010190602001808311610d5857829003601f168201915b5050505050905090565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b906128e2565b60405180910390fd5b610e51338585840361113f565b600191505092915050565b6000610e69338484611308565b6001905092915050565b60145481565b600b5481565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff16610f57610ca3565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906126fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612974565b60405180910390fd5b61102581611bf9565b50565b60085481565b600e5481565b60165481565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600f5481565b61108f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8561113f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016110f4969594939291906129cf565b60606040518083038185885af1158015611112573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111379190612a45565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590612b0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490612b9c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112fb91906124f9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90612c2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612cc0565b60405180910390fd5b600081036113ff576113fa83836000611cbf565b611bf4565b601160009054906101000a900460ff16156117d05761141c610ca3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148a575061145a610ca3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114dd5750601360009054906101000a900460ff16155b156117cf577f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115875750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561162e57600b548111156115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890612d2c565b60405180910390fd5b600f546115dd83610b1c565b826115e8919061283c565b1115611629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162090612d98565b60405180910390fd5b6117ce565b7f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116d35750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172257600b5481111561171d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171490612d2c565b60405180910390fd5b6117cd565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117cc57600f5461177f83610b1c565b8261178a919061283c565b11156117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612d98565b60405180910390fd5b5b5b5b5b5b601360009054906101000a900460ff1615801561183957507f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188f5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118e55750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611929576001601360006101000a81548160ff02191690831515021790555061190d611f2b565b6000601360006101000a81548160ff0219169083151502179055505b6000601360009054906101000a900460ff16159050601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119df5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119e957600090505b60008115611be6577f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a4e57506000601054115b15611adb57600a5460105484611a649190612db8565b611a6e9190612e29565b9050601054600e5482611a819190612db8565b611a8b9190612e29565b60096000828254611a9c919061283c565b9250508190555060105460085482611ab49190612db8565b611abe9190612e29565b60146000828254611acf919061283c565b92505081905550611bc2565b7f000000000000000000000000f13c9216bc0c3dea2b58227271b16e8bb4b60e7873ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611b3857506000600c54115b15611bc157600a54600c5484611b4e9190612db8565b611b589190612e29565b9050600c54600d5482611b6b9190612db8565b611b759190612e29565b60096000828254611b86919061283c565b92505081905550600c5460165482611b9e9190612db8565b611ba89190612e29565b60146000828254611bb9919061283c565b925050819055505b5b6000811115611bd757611bd6853083611cbf565b5b8083611be39190612e5a565b92505b611bf1858585611cbf565b50505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590612f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490612f6c565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612ffe565b60405180910390fd5b818103600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eb9919061283c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f1d91906124f9565b60405180910390a350505050565b6000601454600954611f3d919061283c565b90506000611f4a30610b1c565b90506000811480611f5b5750600082145b15611f6f57600090506000915050506120ea565b600060028360095484611f829190612db8565b611f8c9190612e29565b611f969190612e29565b905060008183611fa69190612e5a565b90506000479050611fb6826120ec565b60008147611fc49190612e5a565b905060008660145483611fd79190612db8565b611fe19190612e29565b905060008183611ff19190612e5a565b9050600060148190555060006009819055506000861180156120135750600081115b15612046576120458682600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611064565b5b60004711156120e1576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516120979061304f565b60006040518083038185875af1925050503d80600081146120d4576040519150601f19603f3d011682016040523d82523d6000602084013e6120d9565b606091505b505080915050505b50505050505050505b565b6000600267ffffffffffffffff81111561210957612108613064565b5b6040519080825280602002602001820160405280156121375781602001602082028036833780820191505090505b509050308160008151811061214f5761214e613093565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221891906130d7565b8160018151811061222c5761222b613093565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612291307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461113f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122f39594939291906131c2565b600060405180830381600087803b15801561230d57600080fd5b505af1158015612321573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612363578082015181840152602081019050612348565b60008484015250505050565b6000601f19601f8301169050919050565b600061238b82612329565b6123958185612334565b93506123a5818560208601612345565b6123ae8161236f565b840191505092915050565b600060208201905081810360008301526123d38184612380565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240b826123e0565b9050919050565b61241b81612400565b811461242657600080fd5b50565b60008135905061243881612412565b92915050565b6000819050919050565b6124518161243e565b811461245c57600080fd5b50565b60008135905061246e81612448565b92915050565b6000806040838503121561248b5761248a6123db565b5b600061249985828601612429565b92505060206124aa8582860161245f565b9150509250929050565b60008115159050919050565b6124c9816124b4565b82525050565b60006020820190506124e460008301846124c0565b92915050565b6124f38161243e565b82525050565b600060208201905061250e60008301846124ea565b92915050565b60008060006060848603121561252d5761252c6123db565b5b600061253b86828701612429565b935050602061254c86828701612429565b925050604061255d8682870161245f565b9150509250925092565b600060ff82169050919050565b61257d81612567565b82525050565b60006020820190506125986000830184612574565b92915050565b6125a781612400565b82525050565b60006020820190506125c2600083018461259e565b92915050565b6000602082840312156125de576125dd6123db565b5b60006125ec84828501612429565b91505092915050565b6000806040838503121561260c5761260b6123db565b5b600061261a85828601612429565b925050602061262b85828601612429565b9150509250929050565b6000819050919050565b600061265a612655612650846123e0565b612635565b6123e0565b9050919050565b600061266c8261263f565b9050919050565b600061267e82612661565b9050919050565b61268e81612673565b82525050565b60006020820190506126a96000830184612685565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e5602083612334565b91506126f0826126af565b602082019050919050565b60006020820190508181036000830152612714816126d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061276257607f821691505b6020821081036127755761277461271b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742067726561746572207460008201527f68616e20616c6c6f77616e636500000000000000000000000000000000000000602082015250565b60006127d7602d83612334565b91506127e28261277b565b604082019050919050565b60006020820190508181036000830152612806816127ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128478261243e565b91506128528361243e565b925082820190508082111561286a5761286961280d565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128cc602583612334565b91506128d782612870565b604082019050919050565b600060208201905081810360008301526128fb816128bf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061295e602683612334565b915061296982612902565b604082019050919050565b6000602082019050818103600083015261298d81612951565b9050919050565b6000819050919050565b60006129b96129b46129af84612994565b612635565b61243e565b9050919050565b6129c98161299e565b82525050565b600060c0820190506129e4600083018961259e565b6129f160208301886124ea565b6129fe60408301876129c0565b612a0b60608301866129c0565b612a18608083018561259e565b612a2560a08301846124ea565b979650505050505050565b600081519050612a3f81612448565b92915050565b600080600060608486031215612a5e57612a5d6123db565b5b6000612a6c86828701612a30565b9350506020612a7d86828701612a30565b9250506040612a8e86828701612a30565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612af4602483612334565b9150612aff82612a98565b604082019050919050565b60006020820190508181036000830152612b2381612ae7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b86602283612334565b9150612b9182612b2a565b604082019050919050565b60006020820190508181036000830152612bb581612b79565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c18602583612334565b9150612c2382612bbc565b604082019050919050565b60006020820190508181036000830152612c4781612c0b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612caa602383612334565b9150612cb582612c4e565b604082019050919050565b60006020820190508181036000830152612cd981612c9d565b9050919050565b7f216d61785472616e73616374696f6e416d6f756e742e00000000000000000000600082015250565b6000612d16601683612334565b9150612d2182612ce0565b602082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b7f216d617857616c6c657400000000000000000000000000000000000000000000600082015250565b6000612d82600a83612334565b9150612d8d82612d4c565b602082019050919050565b60006020820190508181036000830152612db181612d75565b9050919050565b6000612dc38261243e565b9150612dce8361243e565b9250828202612ddc8161243e565b91508282048414831517612df357612df261280d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e348261243e565b9150612e3f8361243e565b925082612e4f57612e4e612dfa565b5b828204905092915050565b6000612e658261243e565b9150612e708361243e565b9250828203905081811115612e8857612e8761280d565b5b92915050565b7f45524332303a207472616e736665722066726f6d207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eea602183612334565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f206164647265737300600082015250565b6000612f56601f83612334565b9150612f6182612f20565b602082019050919050565b60006020820190508181036000830152612f8581612f49565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742067726561746572207460008201527f68616e2062616c616e6365000000000000000000000000000000000000000000602082015250565b6000612fe8602b83612334565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b600081905092915050565b50565b600061303960008361301e565b915061304482613029565b600082019050919050565b600061305a8261302c565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130d181612412565b92915050565b6000602082840312156130ed576130ec6123db565b5b60006130fb848285016130c2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61313981612400565b82525050565b600061314b8383613130565b60208301905092915050565b6000602082019050919050565b600061316f82613104565b613179818561310f565b935061318483613120565b8060005b838110156131b557815161319c888261313f565b97506131a783613157565b925050600181019050613188565b5085935050505092915050565b600060a0820190506131d760008301886124ea565b6131e460208301876129c0565b81810360408301526131f68186613164565b9050613205606083018561259e565b61321260808301846124ea565b969550505050505056fea264697066735822122033e7c04898dd2901bc46df5d0a109dd34195c99ea06aa90a3a8d2045d341099b64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : collectionsWallet_ (address): 0x3F8E01467719295BdD1457F2E58FEcaA77A29Ecd
Arg [2] : liquidityProviderTokenReceiver_ (address): 0x3F8E01467719295BdD1457F2E58FEcaA77A29Ecd

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd
Arg [2] : 0000000000000000000000003f8e01467719295bdd1457f2e58fecaa77a29ecd


Deployed Bytecode Sourcemap

6722:7961:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9274:153;;;:::i;:::-;;5785:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4361:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6990:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2535:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6950:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:493;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3660:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5149:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7254:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6770:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7219:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4226:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;955:103;;;;;;;;;;;;;:::i;:::-;;10747:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7392:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7294:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5037:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5368:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4045:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7437:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7035;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7079:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2376:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6822:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7113:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;651:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6910:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7150:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7532:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6861:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7188:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9274:153;576:10;565:21;;:7;:5;:7::i;:::-;:21;;;557:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9343:76:::1;9364:24;9382:4;9364:9;:24::i;:::-;9390:9;9401:17;;;;;;;;;;;9343:20;:76::i;:::-;9274:153::o:0;5785:100::-;5839:13;5872:5;5865:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5785:100;:::o;4361:167::-;4444:4;4461:37;4470:10;4482:7;4491:6;4461:8;:37::i;:::-;4516:4;4509:11;;4361:167;;;;:::o;6990:36::-;;;;:::o;2535:108::-;2596:7;2623:12;;2616:19;;2535:108;:::o;6950:33::-;;;;:::o;4536:493::-;4676:4;4693:36;4703:6;4711:9;4722:6;4693:9;:36::i;:::-;4742:24;4769:11;:19;4781:6;4769:19;;;;;;;;;;;;;;;:31;4789:10;4769:31;;;;;;;;;;;;;;;;4742:58;;4839:6;4819:16;:26;;4811:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;4931:55;4940:6;4948:10;4979:6;4960:16;:25;4931:8;:55::i;:::-;5017:4;5010:11;;;4536:493;;;;;:::o;3660:93::-;3718:5;3743:2;3736:9;;3660:93;:::o;5149:211::-;5237:4;5254:76;5263:10;5275:7;5319:10;5284:11;:23;5296:10;5284:23;;;;;;;;;;;;;;;:32;5308:7;5284:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;5254:8;:76::i;:::-;5348:4;5341:11;;5149:211;;;;:::o;7254:33::-;;;;;;;;;;;;;:::o;6770:45::-;;;;;;;;;;;;;:::o;7219:28::-;;;;:::o;4226:127::-;4300:7;4327:9;:18;4337:7;4327:18;;;;;;;;;;;;;;;;4320:25;;4226:127;;;:::o;955:103::-;576:10;565:21;;:7;:5;:7::i;:::-;:21;;;557:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1020:30:::1;1047:1;1020:18;:30::i;:::-;955:103::o:0;10747:121::-;10799:4;576:10;565:21;;:7;:5;:7::i;:::-;:21;;;557:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10833:5:::1;10816:14;;:22;;;;;;;;;;;;;;;;;;10856:4;10849:11;;10747:121:::0;:::o;7392:38::-;;;:::o;860:87::-;906:7;933:6;;;;;;;;;;;926:13;;860:87;:::o;7294:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;5037:104::-;5093:13;5126:7;5119:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5037:104;:::o;5368:409::-;5461:4;5478:24;5505:11;:23;5517:10;5505:23;;;;;;;;;;;;;;;:32;5529:7;5505:32;;;;;;;;;;;;;;;;5478:59;;5576:15;5556:16;:35;;5548:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5669:65;5678:10;5690:7;5718:15;5699:16;:34;5669:8;:65::i;:::-;5765:4;5758:11;;;5368:409;;;;:::o;4045:173::-;4131:4;4148:40;4158:10;4170:9;4181:6;4148:9;:40::i;:::-;4206:4;4199:11;;4045:173;;;;:::o;7437:35::-;;;;:::o;7035:::-;;;;:::o;7079:27::-;;;;:::o;2376:151::-;2465:7;2492:11;:18;2504:5;2492:18;;;;;;;;;;;;;;;:27;2511:7;2492:27;;;;;;;;;;;;;;;;2485:34;;2376:151;;;;:::o;6822:32::-;;;;;;;;;;;;;:::o;7113:30::-;;;;:::o;651:201::-;576:10;565:21;;:7;:5;:7::i;:::-;:21;;;557:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;760:1:::1;740:22;;:8;:22;;::::0;732:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;816:28;835:8;816:18;:28::i;:::-;651:201:::0;:::o;6910:33::-;;;;:::o;7150:31::-;;;;:::o;7532:32::-;;;;:::o;6861:42::-;;;:::o;7188:24::-;;;;:::o;13842:383::-;13956:53;13973:4;13988:6;13997:11;13956:8;:53::i;:::-;14020:6;:22;;;14050:9;14084:4;14104:11;14130:1;14146;14162:14;14191:15;14020:197;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13842:383;;;:::o;2651:380::-;2804:1;2787:19;;:5;:19;;;2779:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2885:1;2866:21;;:7;:21;;;2858:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2969:6;2939:11;:18;2951:5;2939:18;;;;;;;;;;;;;;;:27;2958:7;2939:27;;;;;;;;;;;;;;;:36;;;;3007:7;2991:32;;3000:5;2991:32;;;3016:6;2991:32;;;;;;:::i;:::-;;;;;;;;2651:380;;;:::o;10913:2921::-;11061:1;11045:18;;:4;:18;;;11037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11138:1;11124:16;;:2;:16;;;11116:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11207:1;11197:6;:11;11193:93;;11225:28;11241:4;11247:2;11251:1;11225:15;:28::i;:::-;11268:7;;11193:93;11302:14;;;;;;;;;;;11298:1260;;;11363:7;:5;:7::i;:::-;11355:15;;:4;:15;;;;:49;;;;;11397:7;:5;:7::i;:::-;11391:13;;:2;:13;;;;11355:49;:91;;;;;11439:6;11425:21;;:2;:21;;;;11355:91;:121;;;;;11468:8;;;;;;;;;;;11467:9;11355:121;11333:1214;;;11547:13;11539:21;;:4;:21;;;:82;;;;;11586:31;:35;11618:2;11586:35;;;;;;;;;;;;;;;;;;;;;;;;;11585:36;11539:82;11513:1019;;;11708:20;;11698:6;:30;;11664:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;11885:9;;11868:13;11878:2;11868:9;:13::i;:::-;11859:6;:22;;;;:::i;:::-;:35;;11825:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;11513:1019;;;12033:13;12027:19;;:2;:19;;;:82;;;;;12072:31;:37;12104:4;12072:37;;;;;;;;;;;;;;;;;;;;;;;;;12071:38;12027:82;12001:531;;;12196:20;;12186:6;:30;;12152:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;12001:531;;;12321:31;:35;12353:2;12321:35;;;;;;;;;;;;;;;;;;;;;;;;;12316:216;;12441:9;;12424:13;12434:2;12424:9;:13::i;:::-;12415:6;:22;;;;:::i;:::-;:35;;12381:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;12316:216;12001:531;11513:1019;11333:1214;11298:1260;12589:8;;;;;;;;;;;12588:9;:47;;;;;12622:13;12614:21;;:4;:21;;;;12588:47;:84;;;;;12653:13;:19;12667:4;12653:19;;;;;;;;;;;;;;;;;;;;;;;;;12652:20;12588:84;:119;;;;;12690:13;:17;12704:2;12690:17;;;;;;;;;;;;;;;;;;;;;;;;;12689:18;12588:119;12570:251;;;12745:4;12734:8;;:15;;;;;;;;;;;;;;;;;;12766:10;:8;:10::i;:::-;12804:5;12793:8;;:16;;;;;;;;;;;;;;;;;;12570:251;12833:12;12849:8;;;;;;;;;;;12848:9;12833:24;;12874:13;:19;12888:4;12874:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12897:13;:17;12911:2;12897:17;;;;;;;;;;;;;;;;;;;;;;;;;12874:40;12870:88;;;12941:5;12931:15;;12870:88;12970:12;13001:7;12997:784;;;13035:13;13029:19;;:2;:19;;;:40;;;;;13068:1;13052:13;;:17;13029:40;13025:607;;;13122:14;;13106:13;;13097:6;:22;;;;:::i;:::-;:39;;;;:::i;:::-;13090:46;;13205:13;;13185:16;;13178:4;:23;;;;:::i;:::-;13177:41;;;;:::i;:::-;13155:18;;:63;;;;;;;:::i;:::-;;;;;;;;13291:13;;13269:18;;13262:4;:25;;;;:::i;:::-;13261:43;;;;:::i;:::-;13237:20;;:67;;;;;;;:::i;:::-;;;;;;;;13025:607;;;13353:13;13345:21;;:4;:21;;;:41;;;;;13385:1;13370:12;;:16;13345:41;13341:291;;;13438:14;;13423:12;;13414:6;:21;;;;:::i;:::-;:38;;;;:::i;:::-;13407:45;;13520:12;;13501:15;;13494:4;:22;;;;:::i;:::-;13493:39;;;;:::i;:::-;13471:18;;:61;;;;;;;:::i;:::-;;;;;;;;13604:12;;13583:17;;13576:4;:24;;;;:::i;:::-;13575:41;;;;:::i;:::-;13551:20;;:65;;;;;;;:::i;:::-;;;;;;;;13341:291;13025:607;13659:1;13652:4;:8;13648:91;;;13681:42;13697:4;13711;13718;13681:15;:42::i;:::-;13648:91;13765:4;13755:14;;;;;:::i;:::-;;;12997:784;13793:33;13809:4;13815:2;13819:6;13793:15;:33::i;:::-;11026:2808;;10913:2921;;;;:::o;326:191::-;400:16;419:6;;;;;;;;;;;400:25;;445:8;436:6;;:17;;;;;;;;;;;;;;;;;;500:8;469:40;;490:8;469:40;;;;;;;;;;;;389:128;326:191;:::o;3039:613::-;3197:1;3179:20;;:6;:20;;;3171:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3277:1;3256:23;;:9;:23;;;3248:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3328:21;3352:9;:17;3362:6;3352:17;;;;;;;;;;;;;;;;3328:41;;3405:6;3388:13;:23;;3380:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3531:6;3515:13;:22;3495:9;:17;3505:6;3495:17;;;;;;;;;;;;;;;:42;;;;3583:6;3559:9;:20;3569:9;3559:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3624:9;3607:35;;3616:6;3607:35;;;3635:6;3607:35;;;;;;:::i;:::-;;;;;;;;3160:492;3039:613;;;:::o;9435:1304::-;9475:25;9524:20;;9503:18;;:41;;;;:::i;:::-;9475:69;;9555:23;9581:24;9599:4;9581:9;:24::i;:::-;9555:50;;9641:1;9622:15;:20;:46;;;;9667:1;9646:17;:22;9622:46;9618:182;;;9730:1;9712:19;;9766:1;9746:21;;9782:7;;;;9618:182;9812:23;9899:1;9879:17;9857:18;;9839:15;:36;;;;:::i;:::-;9838:58;;;;:::i;:::-;:62;;;;:::i;:::-;9812:88;;9911:26;9958:15;9940;:33;;;;:::i;:::-;9911:62;;9984:25;10012:21;9984:49;;10044:36;10061:18;10044:16;:36::i;:::-;10091:18;10138:17;10113:21;10112:43;;;;:::i;:::-;10091:64;;10166:25;10230:17;10207:20;;10194:10;:33;;;;:::i;:::-;:53;;;;:::i;:::-;10166:81;;10258:23;10297:17;10284:10;:30;;;;:::i;:::-;10258:56;;10348:1;10325:20;:24;;;;10381:1;10360:18;:22;;;;10417:1;10399:15;:19;:42;;;;;10440:1;10422:15;:19;10399:42;10395:161;;;10458:86;10479:15;10496;10513:30;;;;;;;;;;;10458:20;:86::i;:::-;10395:161;10596:1;10572:21;:25;10568:164;;;10614:12;10663:17;;;;;;;;;;;10655:31;;10694:21;10655:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10641:79;;;;;10599:133;10568:164;9464:1275;;;;;;;;9435:1304;:::o;14233:445::-;14300:21;14338:1;14324:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14300:40;;14369:4;14351;14356:1;14351:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14395:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14385:4;14390:1;14385:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14419:53;14436:4;14451:6;14460:11;14419:8;:53::i;:::-;14483:6;:57;;;14555:11;14581:1;14597:4;14624;14644:15;14483:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14289:389;14233:445;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:60::-;6048:3;6069:5;6062:12;;6020:60;;;:::o;6086:142::-;6136:9;6169:53;6187:34;6196:24;6214:5;6196:24;:::i;:::-;6187:34;:::i;:::-;6169:53;:::i;:::-;6156:66;;6086:142;;;:::o;6234:126::-;6284:9;6317:37;6348:5;6317:37;:::i;:::-;6304:50;;6234:126;;;:::o;6366:152::-;6442:9;6475:37;6506:5;6475:37;:::i;:::-;6462:50;;6366:152;;;:::o;6524:183::-;6637:63;6694:5;6637:63;:::i;:::-;6632:3;6625:76;6524:183;;:::o;6713:274::-;6832:4;6870:2;6859:9;6855:18;6847:26;;6883:97;6977:1;6966:9;6962:17;6953:6;6883:97;:::i;:::-;6713:274;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:180::-;8026:77;8023:1;8016:88;8123:4;8120:1;8113:15;8147:4;8144:1;8137:15;8164:320;8208:6;8245:1;8239:4;8235:12;8225:22;;8292:1;8286:4;8282:12;8313:18;8303:81;;8369:4;8361:6;8357:17;8347:27;;8303:81;8431:2;8423:6;8420:14;8400:18;8397:38;8394:84;;8450:18;;:::i;:::-;8394:84;8215:269;8164:320;;;:::o;8490:232::-;8630:34;8626:1;8618:6;8614:14;8607:58;8699:15;8694:2;8686:6;8682:15;8675:40;8490:232;:::o;8728:366::-;8870:3;8891:67;8955:2;8950:3;8891:67;:::i;:::-;8884:74;;8967:93;9056:3;8967:93;:::i;:::-;9085:2;9080:3;9076:12;9069:19;;8728:366;;;:::o;9100:419::-;9266:4;9304:2;9293:9;9289:18;9281:26;;9353:9;9347:4;9343:20;9339:1;9328:9;9324:17;9317:47;9381:131;9507:4;9381:131;:::i;:::-;9373:139;;9100:419;;;:::o;9525:180::-;9573:77;9570:1;9563:88;9670:4;9667:1;9660:15;9694:4;9691:1;9684:15;9711:191;9751:3;9770:20;9788:1;9770:20;:::i;:::-;9765:25;;9804:20;9822:1;9804:20;:::i;:::-;9799:25;;9847:1;9844;9840:9;9833:16;;9868:3;9865:1;9862:10;9859:36;;;9875:18;;:::i;:::-;9859:36;9711:191;;;;:::o;9908:224::-;10048:34;10044:1;10036:6;10032:14;10025:58;10117:7;10112:2;10104:6;10100:15;10093:32;9908:224;:::o;10138:366::-;10280:3;10301:67;10365:2;10360:3;10301:67;:::i;:::-;10294:74;;10377:93;10466:3;10377:93;:::i;:::-;10495:2;10490:3;10486:12;10479:19;;10138:366;;;:::o;10510:419::-;10676:4;10714:2;10703:9;10699:18;10691:26;;10763:9;10757:4;10753:20;10749:1;10738:9;10734:17;10727:47;10791:131;10917:4;10791:131;:::i;:::-;10783:139;;10510:419;;;:::o;10935:225::-;11075:34;11071:1;11063:6;11059:14;11052:58;11144:8;11139:2;11131:6;11127:15;11120:33;10935:225;:::o;11166:366::-;11308:3;11329:67;11393:2;11388:3;11329:67;:::i;:::-;11322:74;;11405:93;11494:3;11405:93;:::i;:::-;11523:2;11518:3;11514:12;11507:19;;11166:366;;;:::o;11538:419::-;11704:4;11742:2;11731:9;11727:18;11719:26;;11791:9;11785:4;11781:20;11777:1;11766:9;11762:17;11755:47;11819:131;11945:4;11819:131;:::i;:::-;11811:139;;11538:419;;;:::o;11963:85::-;12008:7;12037:5;12026:16;;11963:85;;;:::o;12054:158::-;12112:9;12145:61;12163:42;12172:32;12198:5;12172:32;:::i;:::-;12163:42;:::i;:::-;12145:61;:::i;:::-;12132:74;;12054:158;;;:::o;12218:147::-;12313:45;12352:5;12313:45;:::i;:::-;12308:3;12301:58;12218:147;;:::o;12371:807::-;12620:4;12658:3;12647:9;12643:19;12635:27;;12672:71;12740:1;12729:9;12725:17;12716:6;12672:71;:::i;:::-;12753:72;12821:2;12810:9;12806:18;12797:6;12753:72;:::i;:::-;12835:80;12911:2;12900:9;12896:18;12887:6;12835:80;:::i;:::-;12925;13001:2;12990:9;12986:18;12977:6;12925:80;:::i;:::-;13015:73;13083:3;13072:9;13068:19;13059:6;13015:73;:::i;:::-;13098;13166:3;13155:9;13151:19;13142:6;13098:73;:::i;:::-;12371:807;;;;;;;;;:::o;13184:143::-;13241:5;13272:6;13266:13;13257:22;;13288:33;13315:5;13288:33;:::i;:::-;13184:143;;;;:::o;13333:663::-;13421:6;13429;13437;13486:2;13474:9;13465:7;13461:23;13457:32;13454:119;;;13492:79;;:::i;:::-;13454:119;13612:1;13637:64;13693:7;13684:6;13673:9;13669:22;13637:64;:::i;:::-;13627:74;;13583:128;13750:2;13776:64;13832:7;13823:6;13812:9;13808:22;13776:64;:::i;:::-;13766:74;;13721:129;13889:2;13915:64;13971:7;13962:6;13951:9;13947:22;13915:64;:::i;:::-;13905:74;;13860:129;13333:663;;;;;:::o;14002:223::-;14142:34;14138:1;14130:6;14126:14;14119:58;14211:6;14206:2;14198:6;14194:15;14187:31;14002:223;:::o;14231:366::-;14373:3;14394:67;14458:2;14453:3;14394:67;:::i;:::-;14387:74;;14470:93;14559:3;14470:93;:::i;:::-;14588:2;14583:3;14579:12;14572:19;;14231:366;;;:::o;14603:419::-;14769:4;14807:2;14796:9;14792:18;14784:26;;14856:9;14850:4;14846:20;14842:1;14831:9;14827:17;14820:47;14884:131;15010:4;14884:131;:::i;:::-;14876:139;;14603:419;;;:::o;15028:221::-;15168:34;15164:1;15156:6;15152:14;15145:58;15237:4;15232:2;15224:6;15220:15;15213:29;15028:221;:::o;15255:366::-;15397:3;15418:67;15482:2;15477:3;15418:67;:::i;:::-;15411:74;;15494:93;15583:3;15494:93;:::i;:::-;15612:2;15607:3;15603:12;15596:19;;15255:366;;;:::o;15627:419::-;15793:4;15831:2;15820:9;15816:18;15808:26;;15880:9;15874:4;15870:20;15866:1;15855:9;15851:17;15844:47;15908:131;16034:4;15908:131;:::i;:::-;15900:139;;15627:419;;;:::o;16052:224::-;16192:34;16188:1;16180:6;16176:14;16169:58;16261:7;16256:2;16248:6;16244:15;16237:32;16052:224;:::o;16282:366::-;16424:3;16445:67;16509:2;16504:3;16445:67;:::i;:::-;16438:74;;16521:93;16610:3;16521:93;:::i;:::-;16639:2;16634:3;16630:12;16623:19;;16282:366;;;:::o;16654:419::-;16820:4;16858:2;16847:9;16843:18;16835:26;;16907:9;16901:4;16897:20;16893:1;16882:9;16878:17;16871:47;16935:131;17061:4;16935:131;:::i;:::-;16927:139;;16654:419;;;:::o;17079:222::-;17219:34;17215:1;17207:6;17203:14;17196:58;17288:5;17283:2;17275:6;17271:15;17264:30;17079:222;:::o;17307:366::-;17449:3;17470:67;17534:2;17529:3;17470:67;:::i;:::-;17463:74;;17546:93;17635:3;17546:93;:::i;:::-;17664:2;17659:3;17655:12;17648:19;;17307:366;;;:::o;17679:419::-;17845:4;17883:2;17872:9;17868:18;17860:26;;17932:9;17926:4;17922:20;17918:1;17907:9;17903:17;17896:47;17960:131;18086:4;17960:131;:::i;:::-;17952:139;;17679:419;;;:::o;18104:172::-;18244:24;18240:1;18232:6;18228:14;18221:48;18104:172;:::o;18282:366::-;18424:3;18445:67;18509:2;18504:3;18445:67;:::i;:::-;18438:74;;18521:93;18610:3;18521:93;:::i;:::-;18639:2;18634:3;18630:12;18623:19;;18282:366;;;:::o;18654:419::-;18820:4;18858:2;18847:9;18843:18;18835:26;;18907:9;18901:4;18897:20;18893:1;18882:9;18878:17;18871:47;18935:131;19061:4;18935:131;:::i;:::-;18927:139;;18654:419;;;:::o;19079:160::-;19219:12;19215:1;19207:6;19203:14;19196:36;19079:160;:::o;19245:366::-;19387:3;19408:67;19472:2;19467:3;19408:67;:::i;:::-;19401:74;;19484:93;19573:3;19484:93;:::i;:::-;19602:2;19597:3;19593:12;19586:19;;19245:366;;;:::o;19617:419::-;19783:4;19821:2;19810:9;19806:18;19798:26;;19870:9;19864:4;19860:20;19856:1;19845:9;19841:17;19834:47;19898:131;20024:4;19898:131;:::i;:::-;19890:139;;19617:419;;;:::o;20042:410::-;20082:7;20105:20;20123:1;20105:20;:::i;:::-;20100:25;;20139:20;20157:1;20139:20;:::i;:::-;20134:25;;20194:1;20191;20187:9;20216:30;20234:11;20216:30;:::i;:::-;20205:41;;20395:1;20386:7;20382:15;20379:1;20376:22;20356:1;20349:9;20329:83;20306:139;;20425:18;;:::i;:::-;20306:139;20090:362;20042:410;;;;:::o;20458:180::-;20506:77;20503:1;20496:88;20603:4;20600:1;20593:15;20627:4;20624:1;20617:15;20644:185;20684:1;20701:20;20719:1;20701:20;:::i;:::-;20696:25;;20735:20;20753:1;20735:20;:::i;:::-;20730:25;;20774:1;20764:35;;20779:18;;:::i;:::-;20764:35;20821:1;20818;20814:9;20809:14;;20644:185;;;;:::o;20835:194::-;20875:4;20895:20;20913:1;20895:20;:::i;:::-;20890:25;;20929:20;20947:1;20929:20;:::i;:::-;20924:25;;20973:1;20970;20966:9;20958:17;;20997:1;20991:4;20988:11;20985:37;;;21002:18;;:::i;:::-;20985:37;20835:194;;;;:::o;21035:220::-;21175:34;21171:1;21163:6;21159:14;21152:58;21244:3;21239:2;21231:6;21227:15;21220:28;21035:220;:::o;21261:366::-;21403:3;21424:67;21488:2;21483:3;21424:67;:::i;:::-;21417:74;;21500:93;21589:3;21500:93;:::i;:::-;21618:2;21613:3;21609:12;21602:19;;21261:366;;;:::o;21633:419::-;21799:4;21837:2;21826:9;21822:18;21814:26;;21886:9;21880:4;21876:20;21872:1;21861:9;21857:17;21850:47;21914:131;22040:4;21914:131;:::i;:::-;21906:139;;21633:419;;;:::o;22058:181::-;22198:33;22194:1;22186:6;22182:14;22175:57;22058:181;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:230::-;23182:34;23178:1;23170:6;23166:14;23159:58;23251:13;23246:2;23238:6;23234:15;23227:38;23042:230;:::o;23278:366::-;23420:3;23441:67;23505:2;23500:3;23441:67;:::i;:::-;23434:74;;23517:93;23606:3;23517:93;:::i;:::-;23635:2;23630:3;23626:12;23619:19;;23278:366;;;:::o;23650:419::-;23816:4;23854:2;23843:9;23839:18;23831:26;;23903:9;23897:4;23893:20;23889:1;23878:9;23874:17;23867:47;23931:131;24057:4;23931:131;:::i;:::-;23923:139;;23650:419;;;:::o;24075:147::-;24176:11;24213:3;24198:18;;24075:147;;;;:::o;24228:114::-;;:::o;24348:398::-;24507:3;24528:83;24609:1;24604:3;24528:83;:::i;:::-;24521:90;;24620:93;24709:3;24620:93;:::i;:::-;24738:1;24733:3;24729:11;24722:18;;24348:398;;;:::o;24752:379::-;24936:3;24958:147;25101:3;24958:147;:::i;:::-;24951:154;;25122:3;25115:10;;24752:379;;;:::o;25137:180::-;25185:77;25182:1;25175:88;25282:4;25279:1;25272:15;25306:4;25303:1;25296:15;25323:180;25371:77;25368:1;25361:88;25468:4;25465:1;25458:15;25492:4;25489:1;25482:15;25509:143;25566:5;25597:6;25591:13;25582:22;;25613:33;25640:5;25613:33;:::i;:::-;25509:143;;;;:::o;25658:351::-;25728:6;25777:2;25765:9;25756:7;25752:23;25748:32;25745:119;;;25783:79;;:::i;:::-;25745:119;25903:1;25928:64;25984:7;25975:6;25964:9;25960:22;25928:64;:::i;:::-;25918:74;;25874:128;25658:351;;;;:::o;26015:114::-;26082:6;26116:5;26110:12;26100:22;;26015:114;;;:::o;26135:184::-;26234:11;26268:6;26263:3;26256:19;26308:4;26303:3;26299:14;26284:29;;26135:184;;;;:::o;26325:132::-;26392:4;26415:3;26407:11;;26445:4;26440:3;26436:14;26428:22;;26325:132;;;:::o;26463:108::-;26540:24;26558:5;26540:24;:::i;:::-;26535:3;26528:37;26463:108;;:::o;26577:179::-;26646:10;26667:46;26709:3;26701:6;26667:46;:::i;:::-;26745:4;26740:3;26736:14;26722:28;;26577:179;;;;:::o;26762:113::-;26832:4;26864;26859:3;26855:14;26847:22;;26762:113;;;:::o;26911:732::-;27030:3;27059:54;27107:5;27059:54;:::i;:::-;27129:86;27208:6;27203:3;27129:86;:::i;:::-;27122:93;;27239:56;27289:5;27239:56;:::i;:::-;27318:7;27349:1;27334:284;27359:6;27356:1;27353:13;27334:284;;;27435:6;27429:13;27462:63;27521:3;27506:13;27462:63;:::i;:::-;27455:70;;27548:60;27601:6;27548:60;:::i;:::-;27538:70;;27394:224;27381:1;27378;27374:9;27369:14;;27334:284;;;27338:14;27634:3;27627:10;;27035:608;;;26911:732;;;;:::o;27649:831::-;27912:4;27950:3;27939:9;27935:19;27927:27;;27964:71;28032:1;28021:9;28017:17;28008:6;27964:71;:::i;:::-;28045:80;28121:2;28110:9;28106:18;28097:6;28045:80;:::i;:::-;28172:9;28166:4;28162:20;28157:2;28146:9;28142:18;28135:48;28200:108;28303:4;28294:6;28200:108;:::i;:::-;28192:116;;28318:72;28386:2;28375:9;28371:18;28362:6;28318:72;:::i;:::-;28400:73;28468:3;28457:9;28453:19;28444:6;28400:73;:::i;:::-;27649:831;;;;;;;;:::o

Swarm Source

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