ETH Price: $2,389.93 (-0.55%)

Token

Friend Tech Sniper (FTS)
 

Overview

Max Total Supply

10,000,000 FTS

Holders

181

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,282.013954382 FTS

Value
$0.00
0x42fd477da42c5859e63f5528a25f34ed0d8c80ce
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:
FriendTechSniper

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

// SPDX-License-Identifier: MIT

/** 

Telegram: https://t.me/FTSBotTech

Twitter:  https://twitter.com/FTSBotTech

Website:  https://www.FTSBot.Tech

Docs:     https://friend-tech-sniper.gitbook.io/docs/

**/

pragma solidity 0.8.19;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract FriendTechSniper is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 5;
    uint256 private _finalSellTax = 5;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10 ** _decimals;
    string private constant _name = unicode"Friend Tech Sniper";
    string private constant _symbol = unicode"FTS";
    uint256 public _maxTxAmount = 200000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 200000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 50000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 100000 * 10 ** _decimals;

    IUniswapV2Router02 private uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private inSwap = false;

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

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 5000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019600555601960065560056007556005600855600f600955600f600a556014600b556000600c556009600a6200003c919062000b3d565b62030d406200004c919062000b8e565b600d556009600a6200005f919062000b3d565b62030d406200006f919062000b8e565b600e556009600a62000082919062000b3d565b61c35062000091919062000b8e565b600f556009600a620000a4919062000b3d565b620186a0620000b4919062000b8e565b601055737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260146101000a81548160ff0219169083151502179055503480156200013457600080fd5b50600062000147620007a160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f5620007a160201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000245919062000b3d565b6298968062000255919062000b8e565b6001600062000269620007a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002bd620007a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200043430601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a62000418919062000b3d565b6298968062000428919062000b8e565b620007d260201b60201c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c8919062000c43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000578919062000c43565b6040518363ffffffff1660e01b81526004016200059792919062000c86565b6020604051808303816000875af1158015620005b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005dd919062000c43565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620006be92919062000cc4565b6020604051808303816000875af1158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000704919062000d2e565b5062000715620007a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000774919062000b3d565b6298968062000784919062000b8e565b60405162000793919062000d60565b60405180910390a362000ebe565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000844576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083b9062000e04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ad9062000e9c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000996919062000d60565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a315780860481111562000a095762000a08620009a3565b5b600185161562000a195780820291505b808102905062000a2985620009d2565b9450620009e9565b94509492505050565b60008262000a4c576001905062000b1f565b8162000a5c576000905062000b1f565b816001811462000a75576002811462000a805762000ab6565b600191505062000b1f565b60ff84111562000a955762000a94620009a3565b5b8360020a91508482111562000aaf5762000aae620009a3565b5b5062000b1f565b5060208310610133831016604e8410600b841016171562000af05782820a90508381111562000aea5762000ae9620009a3565b5b62000b1f565b62000aff8484846001620009df565b9250905081840481111562000b195762000b18620009a3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b4a8262000b26565b915062000b578362000b30565b925062000b867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a3a565b905092915050565b600062000b9b8262000b26565b915062000ba88362000b26565b925082820262000bb88162000b26565b9150828204841483151762000bd25762000bd1620009a3565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c0b8262000bde565b9050919050565b62000c1d8162000bfe565b811462000c2957600080fd5b50565b60008151905062000c3d8162000c12565b92915050565b60006020828403121562000c5c5762000c5b62000bd9565b5b600062000c6c8482850162000c2c565b91505092915050565b62000c808162000bfe565b82525050565b600060408201905062000c9d600083018562000c75565b62000cac602083018462000c75565b9392505050565b62000cbe8162000b26565b82525050565b600060408201905062000cdb600083018562000c75565b62000cea602083018462000cb3565b9392505050565b60008115159050919050565b62000d088162000cf1565b811462000d1457600080fd5b50565b60008151905062000d288162000cfd565b92915050565b60006020828403121562000d475762000d4662000bd9565b5b600062000d578482850162000d17565b91505092915050565b600060208201905062000d77600083018462000cb3565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000dec60248362000d7d565b915062000df98262000d8e565b604082019050919050565b6000602082019050818103600083015262000e1f8162000ddd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e8460228362000d7d565b915062000e918262000e26565b604082019050919050565b6000602082019050818103600083015262000eb78162000e75565b9050919050565b61266d8062000ece6000396000f3fe6080604052600436106101025760003560e01c8063715018a6116100955780638f9a55c0116100645780638f9a55c01461030c57806395d89b4114610337578063a9059cbb14610362578063bf474bed1461039f578063dd62ed3e146103ca57610109565b8063715018a614610288578063751039fc1461029f5780637d1db4a5146102b65780638da5cb5b146102e157610109565b806323b872dd116100d157806323b872dd146101cc578063313ce5671461020957806351bc3c851461023457806370a082311461024b57610109565b806306fdde031461010e578063095ea7b3146101395780630faee56f1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610407565b604051610130919061197b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611a36565b610444565b60405161016d9190611a91565b60405180910390f35b34801561018257600080fd5b5061018b610462565b6040516101989190611abb565b60405180910390f35b3480156101ad57600080fd5b506101b6610468565b6040516101c39190611abb565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190611ad6565b61048b565b6040516102009190611a91565b60405180910390f35b34801561021557600080fd5b5061021e610564565b60405161022b9190611b45565b60405180910390f35b34801561024057600080fd5b5061024961056d565b005b34801561025757600080fd5b50610272600480360381019061026d9190611b60565b61060a565b60405161027f9190611abb565b60405180910390f35b34801561029457600080fd5b5061029d610653565b005b3480156102ab57600080fd5b506102b46107a6565b005b3480156102c257600080fd5b506102cb6108d3565b6040516102d89190611abb565b60405180910390f35b3480156102ed57600080fd5b506102f66108d9565b6040516103039190611b9c565b60405180910390f35b34801561031857600080fd5b50610321610902565b60405161032e9190611abb565b60405180910390f35b34801561034357600080fd5b5061034c610908565b604051610359919061197b565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190611a36565b610945565b6040516103969190611a91565b60405180910390f35b3480156103ab57600080fd5b506103b4610963565b6040516103c19190611abb565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec9190611bb7565b610969565b6040516103fe9190611abb565b60405180910390f35b60606040518060400160405280601281526020017f467269656e64205465636820536e697065720000000000000000000000000000815250905090565b60006104586104516109f0565b84846109f8565b6001905092915050565b60105481565b60006009600a6104789190611d59565b629896806104869190611da4565b905090565b6000610498848484610bc1565b610559846104a46109f0565b6105548560405180606001604052806028815260200161261060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050a6109f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ba9092919063ffffffff16565b6109f8565b600190509392505050565b60006009905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ae6109f0565b73ffffffffffffffffffffffffffffffffffffffff16146105ce57600080fd5b60006105d93061060a565b905060008111156105ee576105ed8161141e565b5b600047905060008111156106065761060581611697565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61065b6109f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611e32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107ae6109f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611e32565b60405180910390fd5b6009600a6108499190611d59565b629896806108579190611da4565b600d819055506009600a61086b9190611d59565b629896806108799190611da4565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108ae9190611d59565b629896806108bc9190611da4565b6040516108c99190611abb565b60405180910390a1565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f4654530000000000000000000000000000000000000000000000000000000000815250905090565b60006109596109526109f0565b8484610bc1565b6001905092915050565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90611ec4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90611f56565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb49190611abb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2790611fe8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061207a565b60405180910390fd5b60008111610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd99061210c565b60405180910390fd5b6000610cec6108d9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610d5a5750610d2a6108d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110fd57610d9b6064610d8d600954600c5411610d7a57600554610d7e565b6007545b8561170390919063ffffffff16565b61177d90919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610e485750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e9e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f5957600d54821115610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90612178565b60405180910390fd5b600e5482610ef58561060a565b610eff9190612198565b1115610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612218565b60405180910390fd5b600c6000815480929190610f5390612238565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fe257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611026576110236064611015600a54600c541161100257600654611006565b6008545b8561170390919063ffffffff16565b61177d90919063ffffffff16565b90505b60006110313061060a565b9050601260149054906101000a900460ff1615801561109d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110aa5750600f5481115b80156110b95750600b54600c54115b156110fb576110db6110d6846110d1846010546117c7565b6117c7565b61141e565b60004790506611c37937e080008111156110f9576110f847611697565b5b505b505b60008111156112015761115881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f89190611abb565b60405180910390a35b61125382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fa6112ac828461183e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61139f848661183e90919063ffffffff16565b6040516113ac9190611abb565b60405180910390a350505050565b6000838311158290611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f9919061197b565b60405180910390fd5b50600083856114119190612280565b9050809150509392505050565b6001601260146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611456576114556122b4565b5b6040519080825280602002602001820160405280156114845781602001602082028036833780820191505090505b509050308160008151811061149c5761149b6122e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612327565b8160018151811061157b5761157a6122e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109f8565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611646959493929190612457565b600060405180830381600087803b15801561166057600080fd5b505af1158015611674573d6000803e3d6000fd5b50505050506000601260146101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116ff573d6000803e3d6000fd5b5050565b60008083036117155760009050611777565b600082846117239190611da4565b905082848261173291906124e0565b14611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176990612583565b60405180910390fd5b809150505b92915050565b60006117bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611888565b905092915050565b60008183116117d657826117d8565b815b905092915050565b60008082846117ef9190612198565b905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b906125ef565b60405180910390fd5b8091505092915050565b600061188083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ba565b905092915050565b600080831182906118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c6919061197b565b60405180910390fd5b50600083856118de91906124e0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561192557808201518184015260208101905061190a565b60008484015250505050565b6000601f19601f8301169050919050565b600061194d826118eb565b61195781856118f6565b9350611967818560208601611907565b61197081611931565b840191505092915050565b600060208201905081810360008301526119958184611942565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119cd826119a2565b9050919050565b6119dd816119c2565b81146119e857600080fd5b50565b6000813590506119fa816119d4565b92915050565b6000819050919050565b611a1381611a00565b8114611a1e57600080fd5b50565b600081359050611a3081611a0a565b92915050565b60008060408385031215611a4d57611a4c61199d565b5b6000611a5b858286016119eb565b9250506020611a6c85828601611a21565b9150509250929050565b60008115159050919050565b611a8b81611a76565b82525050565b6000602082019050611aa66000830184611a82565b92915050565b611ab581611a00565b82525050565b6000602082019050611ad06000830184611aac565b92915050565b600080600060608486031215611aef57611aee61199d565b5b6000611afd868287016119eb565b9350506020611b0e868287016119eb565b9250506040611b1f86828701611a21565b9150509250925092565b600060ff82169050919050565b611b3f81611b29565b82525050565b6000602082019050611b5a6000830184611b36565b92915050565b600060208284031215611b7657611b7561199d565b5b6000611b84848285016119eb565b91505092915050565b611b96816119c2565b82525050565b6000602082019050611bb16000830184611b8d565b92915050565b60008060408385031215611bce57611bcd61199d565b5b6000611bdc858286016119eb565b9250506020611bed858286016119eb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c7d57808604811115611c5957611c58611bf7565b5b6001851615611c685780820291505b8081029050611c7685611c26565b9450611c3d565b94509492505050565b600082611c965760019050611d52565b81611ca45760009050611d52565b8160018114611cba5760028114611cc457611cf3565b6001915050611d52565b60ff841115611cd657611cd5611bf7565b5b8360020a915084821115611ced57611cec611bf7565b5b50611d52565b5060208310610133831016604e8410600b8410161715611d285782820a905083811115611d2357611d22611bf7565b5b611d52565b611d358484846001611c33565b92509050818404811115611d4c57611d4b611bf7565b5b81810290505b9392505050565b6000611d6482611a00565b9150611d6f83611b29565b9250611d9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c86565b905092915050565b6000611daf82611a00565b9150611dba83611a00565b9250828202611dc881611a00565b91508282048414831517611ddf57611dde611bf7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e1c6020836118f6565b9150611e2782611de6565b602082019050919050565b60006020820190508181036000830152611e4b81611e0f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611eae6024836118f6565b9150611eb982611e52565b604082019050919050565b60006020820190508181036000830152611edd81611ea1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f406022836118f6565b9150611f4b82611ee4565b604082019050919050565b60006020820190508181036000830152611f6f81611f33565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fd26025836118f6565b9150611fdd82611f76565b604082019050919050565b6000602082019050818103600083015261200181611fc5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120646023836118f6565b915061206f82612008565b604082019050919050565b6000602082019050818103600083015261209381612057565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006120f66029836118f6565b91506121018261209a565b604082019050919050565b60006020820190508181036000830152612125816120e9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006121626019836118f6565b915061216d8261212c565b602082019050919050565b6000602082019050818103600083015261219181612155565b9050919050565b60006121a382611a00565b91506121ae83611a00565b92508282019050808211156121c6576121c5611bf7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612202601a836118f6565b915061220d826121cc565b602082019050919050565b60006020820190508181036000830152612231816121f5565b9050919050565b600061224382611a00565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361227557612274611bf7565b5b600182019050919050565b600061228b82611a00565b915061229683611a00565b92508282039050818111156122ae576122ad611bf7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612321816119d4565b92915050565b60006020828403121561233d5761233c61199d565b5b600061234b84828501612312565b91505092915050565b6000819050919050565b6000819050919050565b600061238361237e61237984612354565b61235e565b611a00565b9050919050565b61239381612368565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123ce816119c2565b82525050565b60006123e083836123c5565b60208301905092915050565b6000602082019050919050565b600061240482612399565b61240e81856123a4565b9350612419836123b5565b8060005b8381101561244a57815161243188826123d4565b975061243c836123ec565b92505060018101905061241d565b5085935050505092915050565b600060a08201905061246c6000830188611aac565b612479602083018761238a565b818103604083015261248b81866123f9565b905061249a6060830185611b8d565b6124a76080830184611aac565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124eb82611a00565b91506124f683611a00565b925082612506576125056124b1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061256d6021836118f6565b915061257882612511565b604082019050919050565b6000602082019050818103600083015261259c81612560565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125d9601b836118f6565b91506125e4826125a3565b602082019050919050565b60006020820190508181036000830152612608816125cc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220989ae093045617a3ce8e17f5e31ab39bf9c40e07e0b7bd38f4c7d69d7521e7c164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a6116100955780638f9a55c0116100645780638f9a55c01461030c57806395d89b4114610337578063a9059cbb14610362578063bf474bed1461039f578063dd62ed3e146103ca57610109565b8063715018a614610288578063751039fc1461029f5780637d1db4a5146102b65780638da5cb5b146102e157610109565b806323b872dd116100d157806323b872dd146101cc578063313ce5671461020957806351bc3c851461023457806370a082311461024b57610109565b806306fdde031461010e578063095ea7b3146101395780630faee56f1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610407565b604051610130919061197b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611a36565b610444565b60405161016d9190611a91565b60405180910390f35b34801561018257600080fd5b5061018b610462565b6040516101989190611abb565b60405180910390f35b3480156101ad57600080fd5b506101b6610468565b6040516101c39190611abb565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190611ad6565b61048b565b6040516102009190611a91565b60405180910390f35b34801561021557600080fd5b5061021e610564565b60405161022b9190611b45565b60405180910390f35b34801561024057600080fd5b5061024961056d565b005b34801561025757600080fd5b50610272600480360381019061026d9190611b60565b61060a565b60405161027f9190611abb565b60405180910390f35b34801561029457600080fd5b5061029d610653565b005b3480156102ab57600080fd5b506102b46107a6565b005b3480156102c257600080fd5b506102cb6108d3565b6040516102d89190611abb565b60405180910390f35b3480156102ed57600080fd5b506102f66108d9565b6040516103039190611b9c565b60405180910390f35b34801561031857600080fd5b50610321610902565b60405161032e9190611abb565b60405180910390f35b34801561034357600080fd5b5061034c610908565b604051610359919061197b565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190611a36565b610945565b6040516103969190611a91565b60405180910390f35b3480156103ab57600080fd5b506103b4610963565b6040516103c19190611abb565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec9190611bb7565b610969565b6040516103fe9190611abb565b60405180910390f35b60606040518060400160405280601281526020017f467269656e64205465636820536e697065720000000000000000000000000000815250905090565b60006104586104516109f0565b84846109f8565b6001905092915050565b60105481565b60006009600a6104789190611d59565b629896806104869190611da4565b905090565b6000610498848484610bc1565b610559846104a46109f0565b6105548560405180606001604052806028815260200161261060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050a6109f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ba9092919063ffffffff16565b6109f8565b600190509392505050565b60006009905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ae6109f0565b73ffffffffffffffffffffffffffffffffffffffff16146105ce57600080fd5b60006105d93061060a565b905060008111156105ee576105ed8161141e565b5b600047905060008111156106065761060581611697565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61065b6109f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611e32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107ae6109f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611e32565b60405180910390fd5b6009600a6108499190611d59565b629896806108579190611da4565b600d819055506009600a61086b9190611d59565b629896806108799190611da4565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108ae9190611d59565b629896806108bc9190611da4565b6040516108c99190611abb565b60405180910390a1565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600381526020017f4654530000000000000000000000000000000000000000000000000000000000815250905090565b60006109596109526109f0565b8484610bc1565b6001905092915050565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90611ec4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90611f56565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb49190611abb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2790611fe8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061207a565b60405180910390fd5b60008111610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd99061210c565b60405180910390fd5b6000610cec6108d9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610d5a5750610d2a6108d9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110fd57610d9b6064610d8d600954600c5411610d7a57600554610d7e565b6007545b8561170390919063ffffffff16565b61177d90919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610e485750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e9e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f5957600d54821115610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90612178565b60405180910390fd5b600e5482610ef58561060a565b610eff9190612198565b1115610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612218565b60405180910390fd5b600c6000815480929190610f5390612238565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fe257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611026576110236064611015600a54600c541161100257600654611006565b6008545b8561170390919063ffffffff16565b61177d90919063ffffffff16565b90505b60006110313061060a565b9050601260149054906101000a900460ff1615801561109d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110aa5750600f5481115b80156110b95750600b54600c54115b156110fb576110db6110d6846110d1846010546117c7565b6117c7565b61141e565b60004790506611c37937e080008111156110f9576110f847611697565b5b505b505b60008111156112015761115881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f89190611abb565b60405180910390a35b61125382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fa6112ac828461183e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61139f848661183e90919063ffffffff16565b6040516113ac9190611abb565b60405180910390a350505050565b6000838311158290611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f9919061197b565b60405180910390fd5b50600083856114119190612280565b9050809150509392505050565b6001601260146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611456576114556122b4565b5b6040519080825280602002602001820160405280156114845781602001602082028036833780820191505090505b509050308160008151811061149c5761149b6122e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612327565b8160018151811061157b5761157a6122e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109f8565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611646959493929190612457565b600060405180830381600087803b15801561166057600080fd5b505af1158015611674573d6000803e3d6000fd5b50505050506000601260146101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116ff573d6000803e3d6000fd5b5050565b60008083036117155760009050611777565b600082846117239190611da4565b905082848261173291906124e0565b14611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176990612583565b60405180910390fd5b809150505b92915050565b60006117bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611888565b905092915050565b60008183116117d657826117d8565b815b905092915050565b60008082846117ef9190612198565b905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b906125ef565b60405180910390fd5b8091505092915050565b600061188083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ba565b905092915050565b600080831182906118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c6919061197b565b60405180910390fd5b50600083856118de91906124e0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561192557808201518184015260208101905061190a565b60008484015250505050565b6000601f19601f8301169050919050565b600061194d826118eb565b61195781856118f6565b9350611967818560208601611907565b61197081611931565b840191505092915050565b600060208201905081810360008301526119958184611942565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119cd826119a2565b9050919050565b6119dd816119c2565b81146119e857600080fd5b50565b6000813590506119fa816119d4565b92915050565b6000819050919050565b611a1381611a00565b8114611a1e57600080fd5b50565b600081359050611a3081611a0a565b92915050565b60008060408385031215611a4d57611a4c61199d565b5b6000611a5b858286016119eb565b9250506020611a6c85828601611a21565b9150509250929050565b60008115159050919050565b611a8b81611a76565b82525050565b6000602082019050611aa66000830184611a82565b92915050565b611ab581611a00565b82525050565b6000602082019050611ad06000830184611aac565b92915050565b600080600060608486031215611aef57611aee61199d565b5b6000611afd868287016119eb565b9350506020611b0e868287016119eb565b9250506040611b1f86828701611a21565b9150509250925092565b600060ff82169050919050565b611b3f81611b29565b82525050565b6000602082019050611b5a6000830184611b36565b92915050565b600060208284031215611b7657611b7561199d565b5b6000611b84848285016119eb565b91505092915050565b611b96816119c2565b82525050565b6000602082019050611bb16000830184611b8d565b92915050565b60008060408385031215611bce57611bcd61199d565b5b6000611bdc858286016119eb565b9250506020611bed858286016119eb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c7d57808604811115611c5957611c58611bf7565b5b6001851615611c685780820291505b8081029050611c7685611c26565b9450611c3d565b94509492505050565b600082611c965760019050611d52565b81611ca45760009050611d52565b8160018114611cba5760028114611cc457611cf3565b6001915050611d52565b60ff841115611cd657611cd5611bf7565b5b8360020a915084821115611ced57611cec611bf7565b5b50611d52565b5060208310610133831016604e8410600b8410161715611d285782820a905083811115611d2357611d22611bf7565b5b611d52565b611d358484846001611c33565b92509050818404811115611d4c57611d4b611bf7565b5b81810290505b9392505050565b6000611d6482611a00565b9150611d6f83611b29565b9250611d9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c86565b905092915050565b6000611daf82611a00565b9150611dba83611a00565b9250828202611dc881611a00565b91508282048414831517611ddf57611dde611bf7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e1c6020836118f6565b9150611e2782611de6565b602082019050919050565b60006020820190508181036000830152611e4b81611e0f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611eae6024836118f6565b9150611eb982611e52565b604082019050919050565b60006020820190508181036000830152611edd81611ea1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f406022836118f6565b9150611f4b82611ee4565b604082019050919050565b60006020820190508181036000830152611f6f81611f33565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fd26025836118f6565b9150611fdd82611f76565b604082019050919050565b6000602082019050818103600083015261200181611fc5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120646023836118f6565b915061206f82612008565b604082019050919050565b6000602082019050818103600083015261209381612057565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006120f66029836118f6565b91506121018261209a565b604082019050919050565b60006020820190508181036000830152612125816120e9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006121626019836118f6565b915061216d8261212c565b602082019050919050565b6000602082019050818103600083015261219181612155565b9050919050565b60006121a382611a00565b91506121ae83611a00565b92508282019050808211156121c6576121c5611bf7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612202601a836118f6565b915061220d826121cc565b602082019050919050565b60006020820190508181036000830152612231816121f5565b9050919050565b600061224382611a00565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361227557612274611bf7565b5b600182019050919050565b600061228b82611a00565b915061229683611a00565b92508282039050818111156122ae576122ad611bf7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612321816119d4565b92915050565b60006020828403121561233d5761233c61199d565b5b600061234b84828501612312565b91505092915050565b6000819050919050565b6000819050919050565b600061238361237e61237984612354565b61235e565b611a00565b9050919050565b61239381612368565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123ce816119c2565b82525050565b60006123e083836123c5565b60208301905092915050565b6000602082019050919050565b600061240482612399565b61240e81856123a4565b9350612419836123b5565b8060005b8381101561244a57815161243188826123d4565b975061243c836123ec565b92505060018101905061241d565b5085935050505092915050565b600060a08201905061246c6000830188611aac565b612479602083018761238a565b818103604083015261248b81866123f9565b905061249a6060830185611b8d565b6124a76080830184611aac565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124eb82611a00565b91506124f683611a00565b925082612506576125056124b1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061256d6021836118f6565b915061257882612511565b604082019050919050565b6000602082019050818103600083015261259c81612560565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125d9601b836118f6565b91506125e4826125a3565b602082019050919050565b60006020820190508181036000830152612608816125cc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220989ae093045617a3ce8e17f5e31ab39bf9c40e07e0b7bd38f4c7d69d7521e7c164736f6c63430008130033

Deployed Bytecode Sourcemap

4011:7715:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6128:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7011:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5086:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6405:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7205:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6314:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11357:366;;;;;;;;;;;;;:::i;:::-;;6508:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3036:148;;;;;;;;;;;;;:::i;:::-;;11050:162;;;;;;;;;;;;;:::i;:::-;;4897:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2822:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4958:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6219:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6635:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5021:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6835:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:83;6165:13;6198:5;;;;;;;;;;;;;;;;;6191:12;;6128:83;:::o;7011:186::-;7111:4;7128:39;7137:12;:10;:12::i;:::-;7151:7;7160:6;7128:8;:39::i;:::-;7185:4;7178:11;;7011:186;;;;:::o;5086:53::-;;;;:::o;6405:95::-;6458:7;4702:1;4756:2;:15;;;;:::i;:::-;4745:8;:26;;;;:::i;:::-;6478:14;;6405:95;:::o;7205:446::-;7337:4;7354:36;7364:6;7372:9;7383:6;7354:9;:36::i;:::-;7401:220;7424:6;7445:12;:10;:12::i;:::-;7472:138;7528:6;7472:138;;;;;;;;;;;;;;;;;:11;:19;7484:6;7472:19;;;;;;;;;;;;;;;:33;7492:12;:10;:12::i;:::-;7472:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7401:8;:220::i;:::-;7639:4;7632:11;;7205:446;;;;;:::o;6314:83::-;6355:5;4702:1;6373:16;;6314:83;:::o;11357:366::-;11423:10;;;;;;;;;;;11407:26;;:12;:10;:12::i;:::-;:26;;;11399:35;;;;;;11445:20;11468:24;11486:4;11468:9;:24::i;:::-;11445:47;;11522:1;11507:12;:16;11503:79;;;11540:30;11557:12;11540:16;:30::i;:::-;11503:79;11592:18;11613:21;11592:42;;11662:1;11649:10;:14;11645:71;;;11680:24;11693:10;11680:12;:24::i;:::-;11645:71;11388:335;;11357:366::o;6508:119::-;6574:7;6601:9;:18;6611:7;6601:18;;;;;;;;;;;;;;;;6594:25;;6508:119;;;:::o;3036:148::-;2959:12;:10;:12::i;:::-;2949:22;;:6;;;;;;;;;;:22;;;2941:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:1:::1;3106:40;;3127:6;::::0;::::1;;;;;;;;3106:40;;;;;;;;;;;;3174:1;3157:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3036:148::o:0;11050:162::-;2959:12;:10;:12::i;:::-;2949:22;;:6;;;;;;;;;;:22;;;2941:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4702:1:::1;4756:2;:15;;;;:::i;:::-;4745:8;:26;;;;:::i;:::-;11104:12;:22;;;;4702:1;4756:2;:15;;;;:::i;:::-;4745:8;:26;;;;:::i;:::-;11137:14;:24;;;;11177:27;4702:1;4756:2;:15;;;;:::i;:::-;4745:8;:26;;;;:::i;:::-;11177:27;;;;;;:::i;:::-;;;;;;;;11050:162::o:0;4897:54::-;;;;:::o;2822:79::-;2860:7;2887:6;;;;;;;;;;;2880:13;;2822:79;:::o;4958:56::-;;;;:::o;6219:87::-;6258:13;6291:7;;;;;;;;;;;;;;;;;6284:14;;6219:87;:::o;6635:192::-;6738:4;6755:42;6765:12;:10;:12::i;:::-;6779:9;6790:6;6755:9;:42::i;:::-;6815:4;6808:11;;6635:192;;;;:::o;5021:58::-;;;;:::o;6835:168::-;6941:7;6968:11;:18;6980:5;6968:18;;;;;;;;;;;;;;;:27;6987:7;6968:27;;;;;;;;;;;;;;;;6961:34;;6835:168;;;;:::o;357:98::-;410:7;437:10;430:17;;357:98;:::o;7659:335::-;7769:1;7752:19;;:5;:19;;;7744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7850:1;7831:21;;:7;:21;;;7823:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7932:6;7902:11;:18;7914:5;7902:18;;;;;;;;;;;;;;;:27;7921:7;7902:27;;;;;;;;;;;;;;;:36;;;;7970:7;7954:32;;7963:5;7954:32;;;7979:6;7954:32;;;;;;:::i;:::-;;;;;;;;7659:335;;;:::o;8002:2434::-;8106:1;8090:18;;:4;:18;;;8082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8183:1;8169:16;;:2;:16;;;8161:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8253:1;8244:6;:10;8236:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8311:17;8355:7;:5;:7::i;:::-;8347:15;;:4;:15;;;;:32;;;;;8372:7;:5;:7::i;:::-;8366:13;;:2;:13;;;;8347:32;8343:1722;;;8408:208;8612:3;8408:181;8472:15;;8460:9;;:27;8459:111;;8556:14;;8459:111;;;8516:12;;8459:111;8408:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;8396:220;;8663:13;;;;;;;;;;;8655:21;;:4;:21;;;:72;;;;;8711:15;;;;;;;;;;;8697:30;;:2;:30;;;;8655:72;:116;;;;;8749:18;:22;8768:2;8749:22;;;;;;;;;;;;;;;;;;;;;;;;;8748:23;8655:116;8633:438;;;8824:12;;8814:6;:22;;8806:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8941:14;;8931:6;8915:13;8925:2;8915:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8885:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9044:9;;:11;;;;;;;;;:::i;:::-;;;;;;8633:438;9097:13;;;;;;;;;;;9091:19;;:2;:19;;;:44;;;;;9130:4;9114:21;;:4;:21;;;;9091:44;9087:332;;;9168:235;9399:3;9168:204;9240:16;;9228:9;;:28;9227:122;;9334:15;;9227:122;;;9289:13;;9227:122;9168:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9156:247;;9087:332;9435:28;9466:24;9484:4;9466:9;:24::i;:::-;9435:55;;9528:6;;;;;;;;;;;9527:7;:47;;;;;9561:13;;;;;;;;;;;9555:19;;:2;:19;;;9527:47;:108;;;;;9618:17;;9595:20;:40;9527:108;:159;;;;;9668:18;;9656:9;;:30;9527:159;9505:549;;;9721:109;9760:51;9764:6;9772:38;9776:20;9798:11;;9772:3;:38::i;:::-;9760:3;:51::i;:::-;9721:16;:109::i;:::-;9849:26;9878:21;9849:50;;9943:16;9922:18;:37;9918:121;;;9984:35;9997:21;9984:12;:35::i;:::-;9918:121;9702:352;9505:549;8381:1684;8343:1722;10093:1;10081:9;:13;10077:172;;;10138:39;10167:9;10138;:24;10156:4;10138:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10111:9;:24;10129:4;10111:24;;;;;;;;;;;;;;;:66;;;;10220:4;10197:40;;10206:4;10197:40;;;10227:9;10197:40;;;;;;:::i;:::-;;;;;;;;10077:172;10277:27;10297:6;10277:9;:15;10287:4;10277:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10259:9;:15;10269:4;10259:15;;;;;;;;;;;;;;;:45;;;;10331:40;10349:21;10360:9;10349:6;:10;;:21;;;;:::i;:::-;10331:9;:13;10341:2;10331:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10315:9;:13;10325:2;10315:13;;;;;;;;;;;;;;;:56;;;;10402:2;10387:41;;10396:4;10387:41;;;10406:21;10417:9;10406:6;:10;;:21;;;;:::i;:::-;10387:41;;;;;;:::i;:::-;;;;;;;;8071:2365;8002:2434;;;:::o;1624:224::-;1744:7;1777:1;1772;:6;;1780:12;1764:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1804:9;1820:1;1816;:5;;;;:::i;:::-;1804:17;;1839:1;1832:8;;;1624:224;;;;;:::o;10559:483::-;5436:4;5427:6;;:13;;;;;;;;;;;;;;;;;;10637:21:::1;10675:1;10661:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10637:40;;10706:4;10688;10693:1;10688:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10732:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10722:4;10727:1;10722:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10765:62;10782:4;10797:15;;;;;;;;;;;10815:11;10765:8;:62::i;:::-;10838:15;;;;;;;;;;;:66;;;10919:11;10945:1;10961:4;10988;11008:15;10838:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10626:416;5472:5:::0;5463:6;;:14;;;;;;;;;;;;;;;;;;10559:483;:::o;11220:92::-;11277:10;;;;;;;;;;;:19;;:27;11297:6;11277:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11220:92;:::o;1856:246::-;1914:7;1943:1;1938;:6;1934:47;;1968:1;1961:8;;;;1934:47;1991:9;2007:1;2003;:5;;;;:::i;:::-;1991:17;;2036:1;2031;2027;:5;;;;:::i;:::-;:10;2019:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2093:1;2086:8;;;1856:246;;;;;:::o;2110:132::-;2168:7;2195:39;2199:1;2202;2195:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2188:46;;2110:132;;;;:::o;10444:107::-;10501:7;10533:1;10529;:5;10528:15;;10542:1;10528:15;;;10538:1;10528:15;10521:22;;10444:107;;;;:::o;1293:179::-;1351:7;1371:9;1387:1;1383;:5;;;;:::i;:::-;1371:17;;1412:1;1407;:6;;1399:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1463:1;1456:8;;;1293:179;;;;:::o;1480:136::-;1538:7;1565:43;1569:1;1572;1565:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1558:50;;1480:136;;;;:::o;2250:223::-;2370:7;2402:1;2398;:5;2405:12;2390:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2429:9;2445:1;2441;:5;;;;:::i;:::-;2429:17;;2464:1;2457:8;;;2250:223;;;;;:::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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::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:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:223::-;10075:34;10071:1;10063:6;10059:14;10052:58;10144:6;10139:2;10131:6;10127:15;10120:31;9935:223;:::o;10164:366::-;10306:3;10327:67;10391:2;10386:3;10327:67;:::i;:::-;10320:74;;10403:93;10492:3;10403:93;:::i;:::-;10521:2;10516:3;10512:12;10505:19;;10164:366;;;:::o;10536:419::-;10702:4;10740:2;10729:9;10725:18;10717:26;;10789:9;10783:4;10779:20;10775:1;10764:9;10760:17;10753:47;10817:131;10943:4;10817:131;:::i;:::-;10809:139;;10536:419;;;:::o;10961:221::-;11101:34;11097:1;11089:6;11085:14;11078:58;11170:4;11165:2;11157:6;11153:15;11146:29;10961:221;:::o;11188:366::-;11330:3;11351:67;11415:2;11410:3;11351:67;:::i;:::-;11344:74;;11427:93;11516:3;11427:93;:::i;:::-;11545:2;11540:3;11536:12;11529:19;;11188:366;;;:::o;11560:419::-;11726:4;11764:2;11753:9;11749:18;11741:26;;11813:9;11807:4;11803:20;11799:1;11788:9;11784:17;11777:47;11841:131;11967:4;11841:131;:::i;:::-;11833:139;;11560:419;;;:::o;11985:224::-;12125:34;12121:1;12113:6;12109:14;12102:58;12194:7;12189:2;12181:6;12177:15;12170:32;11985:224;:::o;12215:366::-;12357:3;12378:67;12442:2;12437:3;12378:67;:::i;:::-;12371:74;;12454:93;12543:3;12454:93;:::i;:::-;12572:2;12567:3;12563:12;12556:19;;12215:366;;;:::o;12587:419::-;12753:4;12791:2;12780:9;12776:18;12768:26;;12840:9;12834:4;12830:20;12826:1;12815:9;12811:17;12804:47;12868:131;12994:4;12868:131;:::i;:::-;12860:139;;12587:419;;;:::o;13012:222::-;13152:34;13148:1;13140:6;13136:14;13129:58;13221:5;13216:2;13208:6;13204:15;13197:30;13012:222;:::o;13240:366::-;13382:3;13403:67;13467:2;13462:3;13403:67;:::i;:::-;13396:74;;13479:93;13568:3;13479:93;:::i;:::-;13597:2;13592:3;13588:12;13581:19;;13240:366;;;:::o;13612:419::-;13778:4;13816:2;13805:9;13801:18;13793:26;;13865:9;13859:4;13855:20;13851:1;13840:9;13836:17;13829:47;13893:131;14019:4;13893:131;:::i;:::-;13885:139;;13612:419;;;:::o;14037:228::-;14177:34;14173:1;14165:6;14161:14;14154:58;14246:11;14241:2;14233:6;14229:15;14222:36;14037:228;:::o;14271:366::-;14413:3;14434:67;14498:2;14493:3;14434:67;:::i;:::-;14427:74;;14510:93;14599:3;14510:93;:::i;:::-;14628:2;14623:3;14619:12;14612:19;;14271:366;;;:::o;14643:419::-;14809:4;14847:2;14836:9;14832:18;14824:26;;14896:9;14890:4;14886:20;14882:1;14871:9;14867:17;14860:47;14924:131;15050:4;14924:131;:::i;:::-;14916:139;;14643:419;;;:::o;15068:175::-;15208:27;15204:1;15196:6;15192:14;15185:51;15068:175;:::o;15249:366::-;15391:3;15412:67;15476:2;15471:3;15412:67;:::i;:::-;15405:74;;15488:93;15577:3;15488:93;:::i;:::-;15606:2;15601:3;15597:12;15590:19;;15249:366;;;:::o;15621:419::-;15787:4;15825:2;15814:9;15810:18;15802:26;;15874:9;15868:4;15864:20;15860:1;15849:9;15845:17;15838:47;15902:131;16028:4;15902:131;:::i;:::-;15894:139;;15621:419;;;:::o;16046:191::-;16086:3;16105:20;16123:1;16105:20;:::i;:::-;16100:25;;16139:20;16157:1;16139:20;:::i;:::-;16134:25;;16182:1;16179;16175:9;16168:16;;16203:3;16200:1;16197:10;16194:36;;;16210:18;;:::i;:::-;16194:36;16046:191;;;;:::o;16243:176::-;16383:28;16379:1;16371:6;16367:14;16360:52;16243:176;:::o;16425:366::-;16567:3;16588:67;16652:2;16647:3;16588:67;:::i;:::-;16581:74;;16664:93;16753:3;16664:93;:::i;:::-;16782:2;16777:3;16773:12;16766:19;;16425:366;;;:::o;16797:419::-;16963:4;17001:2;16990:9;16986:18;16978:26;;17050:9;17044:4;17040:20;17036:1;17025:9;17021:17;17014:47;17078:131;17204:4;17078:131;:::i;:::-;17070:139;;16797:419;;;:::o;17222:233::-;17261:3;17284:24;17302:5;17284:24;:::i;:::-;17275:33;;17330:66;17323:5;17320:77;17317:103;;17400:18;;:::i;:::-;17317:103;17447:1;17440:5;17436:13;17429:20;;17222:233;;;:::o;17461:194::-;17501:4;17521:20;17539:1;17521:20;:::i;:::-;17516:25;;17555:20;17573:1;17555:20;:::i;:::-;17550:25;;17599:1;17596;17592:9;17584:17;;17623:1;17617:4;17614:11;17611:37;;;17628:18;;:::i;:::-;17611:37;17461:194;;;;:::o;17661:180::-;17709:77;17706:1;17699:88;17806:4;17803:1;17796:15;17830:4;17827:1;17820:15;17847:180;17895:77;17892:1;17885:88;17992:4;17989:1;17982:15;18016:4;18013:1;18006:15;18033:143;18090:5;18121:6;18115:13;18106:22;;18137:33;18164:5;18137:33;:::i;:::-;18033:143;;;;:::o;18182:351::-;18252:6;18301:2;18289:9;18280:7;18276:23;18272:32;18269:119;;;18307:79;;:::i;:::-;18269:119;18427:1;18452:64;18508:7;18499:6;18488:9;18484:22;18452:64;:::i;:::-;18442:74;;18398:128;18182:351;;;;:::o;18539:85::-;18584:7;18613:5;18602:16;;18539:85;;;:::o;18630:60::-;18658:3;18679:5;18672:12;;18630:60;;;:::o;18696:158::-;18754:9;18787:61;18805:42;18814:32;18840:5;18814:32;:::i;:::-;18805:42;:::i;:::-;18787:61;:::i;:::-;18774:74;;18696:158;;;:::o;18860:147::-;18955:45;18994:5;18955:45;:::i;:::-;18950:3;18943:58;18860:147;;:::o;19013:114::-;19080:6;19114:5;19108:12;19098:22;;19013:114;;;:::o;19133:184::-;19232:11;19266:6;19261:3;19254:19;19306:4;19301:3;19297:14;19282:29;;19133:184;;;;:::o;19323:132::-;19390:4;19413:3;19405:11;;19443:4;19438:3;19434:14;19426:22;;19323:132;;;:::o;19461:108::-;19538:24;19556:5;19538:24;:::i;:::-;19533:3;19526:37;19461:108;;:::o;19575:179::-;19644:10;19665:46;19707:3;19699:6;19665:46;:::i;:::-;19743:4;19738:3;19734:14;19720:28;;19575:179;;;;:::o;19760:113::-;19830:4;19862;19857:3;19853:14;19845:22;;19760:113;;;:::o;19909:732::-;20028:3;20057:54;20105:5;20057:54;:::i;:::-;20127:86;20206:6;20201:3;20127:86;:::i;:::-;20120:93;;20237:56;20287:5;20237:56;:::i;:::-;20316:7;20347:1;20332:284;20357:6;20354:1;20351:13;20332:284;;;20433:6;20427:13;20460:63;20519:3;20504:13;20460:63;:::i;:::-;20453:70;;20546:60;20599:6;20546:60;:::i;:::-;20536:70;;20392:224;20379:1;20376;20372:9;20367:14;;20332:284;;;20336:14;20632:3;20625:10;;20033:608;;;19909:732;;;;:::o;20647:831::-;20910:4;20948:3;20937:9;20933:19;20925:27;;20962:71;21030:1;21019:9;21015:17;21006:6;20962:71;:::i;:::-;21043:80;21119:2;21108:9;21104:18;21095:6;21043:80;:::i;:::-;21170:9;21164:4;21160:20;21155:2;21144:9;21140:18;21133:48;21198:108;21301:4;21292:6;21198:108;:::i;:::-;21190:116;;21316:72;21384:2;21373:9;21369:18;21360:6;21316:72;:::i;:::-;21398:73;21466:3;21455:9;21451:19;21442:6;21398:73;:::i;:::-;20647:831;;;;;;;;:::o;21484:180::-;21532:77;21529:1;21522:88;21629:4;21626:1;21619:15;21653:4;21650:1;21643:15;21670:185;21710:1;21727:20;21745:1;21727:20;:::i;:::-;21722:25;;21761:20;21779:1;21761:20;:::i;:::-;21756:25;;21800:1;21790:35;;21805:18;;:::i;:::-;21790:35;21847:1;21844;21840:9;21835:14;;21670:185;;;;:::o;21861:220::-;22001:34;21997:1;21989:6;21985:14;21978:58;22070:3;22065:2;22057:6;22053:15;22046:28;21861:220;:::o;22087:366::-;22229:3;22250:67;22314:2;22309:3;22250:67;:::i;:::-;22243:74;;22326:93;22415:3;22326:93;:::i;:::-;22444:2;22439:3;22435:12;22428:19;;22087:366;;;:::o;22459:419::-;22625:4;22663:2;22652:9;22648:18;22640:26;;22712:9;22706:4;22702:20;22698:1;22687:9;22683:17;22676:47;22740:131;22866:4;22740:131;:::i;:::-;22732:139;;22459:419;;;:::o;22884:177::-;23024:29;23020:1;23012:6;23008:14;23001:53;22884:177;:::o;23067:366::-;23209:3;23230:67;23294:2;23289:3;23230:67;:::i;:::-;23223:74;;23306:93;23395:3;23306:93;:::i;:::-;23424:2;23419:3;23415:12;23408:19;;23067:366;;;:::o;23439:419::-;23605:4;23643:2;23632:9;23628:18;23620:26;;23692:9;23686:4;23682:20;23678:1;23667:9;23663:17;23656:47;23720:131;23846:4;23720:131;:::i;:::-;23712:139;;23439:419;;;:::o

Swarm Source

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