ETH Price: $2,392.78 (-0.89%)

Token

Neltharion (Deathwings)
 

Overview

Max Total Supply

1,000,000 Deathwings

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
4,012.12072813 Deathwings

Value
$0.00
0x0ba744604dbbd3fe3f99912b9acd6f39528bcd88
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:
Neltharion

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-28
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;

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;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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 Neltharion is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isBlacklisted;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Neltharion";
    string private constant _symbol = "Deathwings";
    uint8 private constant _decimals = 8;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 10_000 * 10**8;
    uint256 private _maxWalletSize = 20_000 * 10**8;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=7;
        _finalTax=8;
        _reduceTaxCountdown=800;

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

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _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 updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

    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");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<770) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052655af3107a40006000196200001a91906200046c565b60001962000029919062000427565b6009556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff02191690831515021790555064e8d4a510006013556501d1a94a20006014553480156200009d57600080fd5b506000620000b0620003c860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200015e620003c860201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001b5620003c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016006600062000209620003d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007600d819055506008600e81905550610320600f8190555062000355620003c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef655af3107a4000604051620003ba91906200040a565b60405180910390a362000502565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004048162000462565b82525050565b6000602082019050620004216000830184620003f9565b92915050565b6000620004348262000462565b9150620004418362000462565b925082821015620004575762000456620004a4565b5b828203905092915050565b6000819050919050565b6000620004798262000462565b9150620004868362000462565b925082620004995762000498620004d3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61323580620005126000396000f3fe6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b806370a0823114610272578063715018a6146102af578063751039fc146102c65780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780635b24ea5e146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612921565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061247b565b610418565b60405161016d9190612906565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612ae3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906123e8565b610444565b6040516101d59190612906565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516102009190612b58565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906124bb565b610526565b005b34801561023e57600080fd5b506102596004803603810190610254919061243b565b6105d8565b005b34801561026757600080fd5b506102706106c8565b005b34801561027e57600080fd5b506102996004803603810190610294919061234e565b61073a565b6040516102a69190612ae3565b60405180910390f35b3480156102bb57600080fd5b506102c461078b565b005b3480156102d257600080fd5b506102db6108de565b005b3480156102e957600080fd5b506102f261098f565b6040516102ff9190612838565b60405180910390f35b34801561031457600080fd5b5061031d6109b8565b60405161032a9190612921565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061247b565b6109f5565b6040516103679190612906565b60405180910390f35b34801561037c57600080fd5b50610385610a13565b005b34801561039357600080fd5b5061039c610a8d565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123a8565b610fd7565b6040516103d29190612ae3565b60405180910390f35b60606040518060400160405280600a81526020017f4e656c74686172696f6e00000000000000000000000000000000000000000000815250905090565b600061042c61042561105e565b8484611066565b6001905092915050565b6000655af3107a4000905090565b6000610451848484611231565b6105128461045d61105e565b61050d856040518060600160405280602881526020016131d860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c361105e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185d9092919063ffffffff16565b611066565b600190509392505050565b60006008905090565b61052e61105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b290612a03565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6105e061105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066490612a03565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070961105e565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000479050610737816118c1565b50565b6000610784600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d565b9050919050565b61079361105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108e661105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a90612a03565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f446561746877696e677300000000000000000000000000000000000000000000815250905090565b6000610a09610a0261105e565b8484611231565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5461105e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7457600080fd5b6000610a7f3061073a565b9050610a8a8161199b565b50565b610a9561105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612a03565b60405180910390fd5b601260149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612aa3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bff30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611066565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061237b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237b565b6040518363ffffffff1660e01b8152600401610d34929190612853565b602060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d86919061237b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e0f3061073a565b600080610e1a61098f565b426040518863ffffffff1660e01b8152600401610e3c969594939291906128a5565b6060604051808303818588803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e8e9190612515565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8192919061287c565b602060405180830381600087803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd391906124e8565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d906129a3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112249190612ae3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612943565b60405180910390fd5b60008111611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612a23565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113f85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ac3565b60405180910390fd5b61143f61098f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d61098f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183c57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b6000600b819055506000600f541461157957600d5461157d565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116845750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561169c5750601260179054906101000a900460ff165b15611763576013548111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612963565b60405180910390fd5b601454816116f38461073a565b6116fd9190612bc8565b111561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612a63565b60405180910390fd5b6000600f54111561176257600f600081548092919061175c90612d77565b91905055505b5b600061176e3061073a565b9050601260159054906101000a900460ff161580156117db5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117f35750601260169054906101000a900460ff165b80156117ff5750600081115b801561180e5750610302600f54105b156118365761181c8161199b565b6000479050600081111561183457611833476118c1565b5b505b5061184d565b6000600b819055506000600c819055505b611858838383611c23565b505050565b60008383111582906118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9190612921565b60405180910390fd5b50600083856118b49190612ca9565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b5050565b6000600954821115611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612983565b60405180910390fd5b600061197e611c33565b90506119938184611c5e90919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119d3576119d2612e2e565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b5090503081600081518110611a1957611a18612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af3919061237b565b81600181518110611b0757611b06612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b6e30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd2959493929190612afe565b600060405180830381600087803b158015611bec57600080fd5b505af1158015611c00573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611c2e838383611ca8565b505050565b6000806000611c40611e73565b91509150611c578183611c5e90919063ffffffff16565b9250505090565b6000611ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ecc565b905092915050565b600080600080600080611cba87611f2f565b955095509550955095509550611d1886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dad85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df98161203f565b611e0384836120fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e609190612ae3565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611ea3655af3107a4000600954611c5e90919063ffffffff16565b821015611ebf57600954655af3107a4000935093505050611ec8565b81819350935050505b9091565b60008083118290611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9190612921565b60405180910390fd5b5060008385611f229190612c1e565b9050809150509392505050565b6000806000806000806000806000611f4c8a600b54600c54612136565b9250925092506000611f5c611c33565b90506000806000611f6f8e8787876121cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061185d565b905092915050565b6000808284611ff09190612bc8565b905083811015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906129c3565b60405180910390fd5b8091505092915050565b6000612049611c33565b90506000612060828461225590919063ffffffff16565b90506120b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211182600954611f9790919063ffffffff16565b60098190555061212c81600a54611fe190919063ffffffff16565b600a819055505050565b6000806000806121626064612154888a61225590919063ffffffff16565b611c5e90919063ffffffff16565b9050600061218c606461217e888b61225590919063ffffffff16565b611c5e90919063ffffffff16565b905060006121b5826121a7858c611f9790919063ffffffff16565b611f9790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121e5858961225590919063ffffffff16565b905060006121fc868961225590919063ffffffff16565b90506000612213878961225590919063ffffffff16565b9050600061223c8261222e8587611f9790919063ffffffff16565b611f9790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561226857600090506122ca565b600082846122769190612c4f565b90508284826122859190612c1e565b146122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906129e3565b60405180910390fd5b809150505b92915050565b6000813590506122df81613192565b92915050565b6000815190506122f481613192565b92915050565b600081359050612309816131a9565b92915050565b60008151905061231e816131a9565b92915050565b600081359050612333816131c0565b92915050565b600081519050612348816131c0565b92915050565b60006020828403121561236457612363612e5d565b5b6000612372848285016122d0565b91505092915050565b60006020828403121561239157612390612e5d565b5b600061239f848285016122e5565b91505092915050565b600080604083850312156123bf576123be612e5d565b5b60006123cd858286016122d0565b92505060206123de858286016122d0565b9150509250929050565b60008060006060848603121561240157612400612e5d565b5b600061240f868287016122d0565b9350506020612420868287016122d0565b925050604061243186828701612324565b9150509250925092565b6000806040838503121561245257612451612e5d565b5b6000612460858286016122d0565b9250506020612471858286016122fa565b9150509250929050565b6000806040838503121561249257612491612e5d565b5b60006124a0858286016122d0565b92505060206124b185828601612324565b9150509250929050565b6000602082840312156124d1576124d0612e5d565b5b60006124df848285016122fa565b91505092915050565b6000602082840312156124fe576124fd612e5d565b5b600061250c8482850161230f565b91505092915050565b60008060006060848603121561252e5761252d612e5d565b5b600061253c86828701612339565b935050602061254d86828701612339565b925050604061255e86828701612339565b9150509250925092565b60006125748383612580565b60208301905092915050565b61258981612cdd565b82525050565b61259881612cdd565b82525050565b60006125a982612b83565b6125b38185612ba6565b93506125be83612b73565b8060005b838110156125ef5781516125d68882612568565b97506125e183612b99565b9250506001810190506125c2565b5085935050505092915050565b61260581612cef565b82525050565b61261481612d32565b82525050565b600061262582612b8e565b61262f8185612bb7565b935061263f818560208601612d44565b61264881612e62565b840191505092915050565b6000612660602383612bb7565b915061266b82612e73565b604082019050919050565b6000612683601983612bb7565b915061268e82612ec2565b602082019050919050565b60006126a6602a83612bb7565b91506126b182612eeb565b604082019050919050565b60006126c9602283612bb7565b91506126d482612f3a565b604082019050919050565b60006126ec601b83612bb7565b91506126f782612f89565b602082019050919050565b600061270f602183612bb7565b915061271a82612fb2565b604082019050919050565b6000612732602083612bb7565b915061273d82613001565b602082019050919050565b6000612755602983612bb7565b91506127608261302a565b604082019050919050565b6000612778602583612bb7565b915061278382613079565b604082019050919050565b600061279b601a83612bb7565b91506127a6826130c8565b602082019050919050565b60006127be602483612bb7565b91506127c9826130f1565b604082019050919050565b60006127e1601783612bb7565b91506127ec82613140565b602082019050919050565b6000612804600d83612bb7565b915061280f82613169565b602082019050919050565b61282381612d1b565b82525050565b61283281612d25565b82525050565b600060208201905061284d600083018461258f565b92915050565b6000604082019050612868600083018561258f565b612875602083018461258f565b9392505050565b6000604082019050612891600083018561258f565b61289e602083018461281a565b9392505050565b600060c0820190506128ba600083018961258f565b6128c7602083018861281a565b6128d4604083018761260b565b6128e1606083018661260b565b6128ee608083018561258f565b6128fb60a083018461281a565b979650505050505050565b600060208201905061291b60008301846125fc565b92915050565b6000602082019050818103600083015261293b818461261a565b905092915050565b6000602082019050818103600083015261295c81612653565b9050919050565b6000602082019050818103600083015261297c81612676565b9050919050565b6000602082019050818103600083015261299c81612699565b9050919050565b600060208201905081810360008301526129bc816126bc565b9050919050565b600060208201905081810360008301526129dc816126df565b9050919050565b600060208201905081810360008301526129fc81612702565b9050919050565b60006020820190508181036000830152612a1c81612725565b9050919050565b60006020820190508181036000830152612a3c81612748565b9050919050565b60006020820190508181036000830152612a5c8161276b565b9050919050565b60006020820190508181036000830152612a7c8161278e565b9050919050565b60006020820190508181036000830152612a9c816127b1565b9050919050565b60006020820190508181036000830152612abc816127d4565b9050919050565b60006020820190508181036000830152612adc816127f7565b9050919050565b6000602082019050612af8600083018461281a565b92915050565b600060a082019050612b13600083018861281a565b612b20602083018761260b565b8181036040830152612b32818661259e565b9050612b41606083018561258f565b612b4e608083018461281a565b9695505050505050565b6000602082019050612b6d6000830184612829565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bd382612d1b565b9150612bde83612d1b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1357612c12612da1565b5b828201905092915050565b6000612c2982612d1b565b9150612c3483612d1b565b925082612c4457612c43612dd0565b5b828204905092915050565b6000612c5a82612d1b565b9150612c6583612d1b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9e57612c9d612da1565b5b828202905092915050565b6000612cb482612d1b565b9150612cbf83612d1b565b925082821015612cd257612cd1612da1565b5b828203905092915050565b6000612ce882612cfb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d3d82612d1b565b9050919050565b60005b83811015612d62578082015181840152602081019050612d47565b83811115612d71576000848401525b50505050565b6000612d8282612d1b565b91506000821415612d9657612d95612da1565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b61319b81612cdd565b81146131a657600080fd5b50565b6131b281612cef565b81146131bd57600080fd5b50565b6131c981612d1b565b81146131d457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eea0f5d36938fba3c504a8493c35f89b7a3df09d374ceffc4012a0babb6f6bd564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b806370a0823114610272578063715018a6146102af578063751039fc146102c65780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780635b24ea5e146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612921565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061247b565b610418565b60405161016d9190612906565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612ae3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906123e8565b610444565b6040516101d59190612906565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516102009190612b58565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906124bb565b610526565b005b34801561023e57600080fd5b506102596004803603810190610254919061243b565b6105d8565b005b34801561026757600080fd5b506102706106c8565b005b34801561027e57600080fd5b506102996004803603810190610294919061234e565b61073a565b6040516102a69190612ae3565b60405180910390f35b3480156102bb57600080fd5b506102c461078b565b005b3480156102d257600080fd5b506102db6108de565b005b3480156102e957600080fd5b506102f261098f565b6040516102ff9190612838565b60405180910390f35b34801561031457600080fd5b5061031d6109b8565b60405161032a9190612921565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061247b565b6109f5565b6040516103679190612906565b60405180910390f35b34801561037c57600080fd5b50610385610a13565b005b34801561039357600080fd5b5061039c610a8d565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123a8565b610fd7565b6040516103d29190612ae3565b60405180910390f35b60606040518060400160405280600a81526020017f4e656c74686172696f6e00000000000000000000000000000000000000000000815250905090565b600061042c61042561105e565b8484611066565b6001905092915050565b6000655af3107a4000905090565b6000610451848484611231565b6105128461045d61105e565b61050d856040518060600160405280602881526020016131d860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c361105e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185d9092919063ffffffff16565b611066565b600190509392505050565b60006008905090565b61052e61105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b290612a03565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6105e061105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066490612a03565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070961105e565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000479050610737816118c1565b50565b6000610784600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d565b9050919050565b61079361105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108e661105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a90612a03565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f446561746877696e677300000000000000000000000000000000000000000000815250905090565b6000610a09610a0261105e565b8484611231565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5461105e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7457600080fd5b6000610a7f3061073a565b9050610a8a8161199b565b50565b610a9561105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612a03565b60405180910390fd5b601260149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612aa3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bff30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611066565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061237b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237b565b6040518363ffffffff1660e01b8152600401610d34929190612853565b602060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d86919061237b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e0f3061073a565b600080610e1a61098f565b426040518863ffffffff1660e01b8152600401610e3c969594939291906128a5565b6060604051808303818588803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e8e9190612515565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8192919061287c565b602060405180830381600087803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd391906124e8565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d906129a3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112249190612ae3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612943565b60405180910390fd5b60008111611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612a23565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113f85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ac3565b60405180910390fd5b61143f61098f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d61098f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183c57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b6000600b819055506000600f541461157957600d5461157d565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116845750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561169c5750601260179054906101000a900460ff165b15611763576013548111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612963565b60405180910390fd5b601454816116f38461073a565b6116fd9190612bc8565b111561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612a63565b60405180910390fd5b6000600f54111561176257600f600081548092919061175c90612d77565b91905055505b5b600061176e3061073a565b9050601260159054906101000a900460ff161580156117db5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117f35750601260169054906101000a900460ff165b80156117ff5750600081115b801561180e5750610302600f54105b156118365761181c8161199b565b6000479050600081111561183457611833476118c1565b5b505b5061184d565b6000600b819055506000600c819055505b611858838383611c23565b505050565b60008383111582906118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9190612921565b60405180910390fd5b50600083856118b49190612ca9565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b5050565b6000600954821115611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612983565b60405180910390fd5b600061197e611c33565b90506119938184611c5e90919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119d3576119d2612e2e565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b5090503081600081518110611a1957611a18612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af3919061237b565b81600181518110611b0757611b06612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b6e30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd2959493929190612afe565b600060405180830381600087803b158015611bec57600080fd5b505af1158015611c00573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611c2e838383611ca8565b505050565b6000806000611c40611e73565b91509150611c578183611c5e90919063ffffffff16565b9250505090565b6000611ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ecc565b905092915050565b600080600080600080611cba87611f2f565b955095509550955095509550611d1886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dad85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df98161203f565b611e0384836120fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e609190612ae3565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611ea3655af3107a4000600954611c5e90919063ffffffff16565b821015611ebf57600954655af3107a4000935093505050611ec8565b81819350935050505b9091565b60008083118290611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9190612921565b60405180910390fd5b5060008385611f229190612c1e565b9050809150509392505050565b6000806000806000806000806000611f4c8a600b54600c54612136565b9250925092506000611f5c611c33565b90506000806000611f6f8e8787876121cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061185d565b905092915050565b6000808284611ff09190612bc8565b905083811015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906129c3565b60405180910390fd5b8091505092915050565b6000612049611c33565b90506000612060828461225590919063ffffffff16565b90506120b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211182600954611f9790919063ffffffff16565b60098190555061212c81600a54611fe190919063ffffffff16565b600a819055505050565b6000806000806121626064612154888a61225590919063ffffffff16565b611c5e90919063ffffffff16565b9050600061218c606461217e888b61225590919063ffffffff16565b611c5e90919063ffffffff16565b905060006121b5826121a7858c611f9790919063ffffffff16565b611f9790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121e5858961225590919063ffffffff16565b905060006121fc868961225590919063ffffffff16565b90506000612213878961225590919063ffffffff16565b9050600061223c8261222e8587611f9790919063ffffffff16565b611f9790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561226857600090506122ca565b600082846122769190612c4f565b90508284826122859190612c1e565b146122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906129e3565b60405180910390fd5b809150505b92915050565b6000813590506122df81613192565b92915050565b6000815190506122f481613192565b92915050565b600081359050612309816131a9565b92915050565b60008151905061231e816131a9565b92915050565b600081359050612333816131c0565b92915050565b600081519050612348816131c0565b92915050565b60006020828403121561236457612363612e5d565b5b6000612372848285016122d0565b91505092915050565b60006020828403121561239157612390612e5d565b5b600061239f848285016122e5565b91505092915050565b600080604083850312156123bf576123be612e5d565b5b60006123cd858286016122d0565b92505060206123de858286016122d0565b9150509250929050565b60008060006060848603121561240157612400612e5d565b5b600061240f868287016122d0565b9350506020612420868287016122d0565b925050604061243186828701612324565b9150509250925092565b6000806040838503121561245257612451612e5d565b5b6000612460858286016122d0565b9250506020612471858286016122fa565b9150509250929050565b6000806040838503121561249257612491612e5d565b5b60006124a0858286016122d0565b92505060206124b185828601612324565b9150509250929050565b6000602082840312156124d1576124d0612e5d565b5b60006124df848285016122fa565b91505092915050565b6000602082840312156124fe576124fd612e5d565b5b600061250c8482850161230f565b91505092915050565b60008060006060848603121561252e5761252d612e5d565b5b600061253c86828701612339565b935050602061254d86828701612339565b925050604061255e86828701612339565b9150509250925092565b60006125748383612580565b60208301905092915050565b61258981612cdd565b82525050565b61259881612cdd565b82525050565b60006125a982612b83565b6125b38185612ba6565b93506125be83612b73565b8060005b838110156125ef5781516125d68882612568565b97506125e183612b99565b9250506001810190506125c2565b5085935050505092915050565b61260581612cef565b82525050565b61261481612d32565b82525050565b600061262582612b8e565b61262f8185612bb7565b935061263f818560208601612d44565b61264881612e62565b840191505092915050565b6000612660602383612bb7565b915061266b82612e73565b604082019050919050565b6000612683601983612bb7565b915061268e82612ec2565b602082019050919050565b60006126a6602a83612bb7565b91506126b182612eeb565b604082019050919050565b60006126c9602283612bb7565b91506126d482612f3a565b604082019050919050565b60006126ec601b83612bb7565b91506126f782612f89565b602082019050919050565b600061270f602183612bb7565b915061271a82612fb2565b604082019050919050565b6000612732602083612bb7565b915061273d82613001565b602082019050919050565b6000612755602983612bb7565b91506127608261302a565b604082019050919050565b6000612778602583612bb7565b915061278382613079565b604082019050919050565b600061279b601a83612bb7565b91506127a6826130c8565b602082019050919050565b60006127be602483612bb7565b91506127c9826130f1565b604082019050919050565b60006127e1601783612bb7565b91506127ec82613140565b602082019050919050565b6000612804600d83612bb7565b915061280f82613169565b602082019050919050565b61282381612d1b565b82525050565b61283281612d25565b82525050565b600060208201905061284d600083018461258f565b92915050565b6000604082019050612868600083018561258f565b612875602083018461258f565b9392505050565b6000604082019050612891600083018561258f565b61289e602083018461281a565b9392505050565b600060c0820190506128ba600083018961258f565b6128c7602083018861281a565b6128d4604083018761260b565b6128e1606083018661260b565b6128ee608083018561258f565b6128fb60a083018461281a565b979650505050505050565b600060208201905061291b60008301846125fc565b92915050565b6000602082019050818103600083015261293b818461261a565b905092915050565b6000602082019050818103600083015261295c81612653565b9050919050565b6000602082019050818103600083015261297c81612676565b9050919050565b6000602082019050818103600083015261299c81612699565b9050919050565b600060208201905081810360008301526129bc816126bc565b9050919050565b600060208201905081810360008301526129dc816126df565b9050919050565b600060208201905081810360008301526129fc81612702565b9050919050565b60006020820190508181036000830152612a1c81612725565b9050919050565b60006020820190508181036000830152612a3c81612748565b9050919050565b60006020820190508181036000830152612a5c8161276b565b9050919050565b60006020820190508181036000830152612a7c8161278e565b9050919050565b60006020820190508181036000830152612a9c816127b1565b9050919050565b60006020820190508181036000830152612abc816127d4565b9050919050565b60006020820190508181036000830152612adc816127f7565b9050919050565b6000602082019050612af8600083018461281a565b92915050565b600060a082019050612b13600083018861281a565b612b20602083018761260b565b8181036040830152612b32818661259e565b9050612b41606083018561258f565b612b4e608083018461281a565b9695505050505050565b6000602082019050612b6d6000830184612829565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bd382612d1b565b9150612bde83612d1b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1357612c12612da1565b5b828201905092915050565b6000612c2982612d1b565b9150612c3483612d1b565b925082612c4457612c43612dd0565b5b828204905092915050565b6000612c5a82612d1b565b9150612c6583612d1b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9e57612c9d612da1565b5b828202905092915050565b6000612cb482612d1b565b9150612cbf83612d1b565b925082821015612cd257612cd1612da1565b5b828203905092915050565b6000612ce882612cfb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d3d82612d1b565b9050919050565b60005b83811015612d62578082015181840152602081019050612d47565b83811115612d71576000848401525b50505050565b6000612d8282612d1b565b91506000821415612d9657612d95612da1565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b61319b81612cdd565b81146131a657600080fd5b50565b6131b281612cef565b81146131bd57600080fd5b50565b6131c981612d1b565b81146131d457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eea0f5d36938fba3c504a8493c35f89b7a3df09d374ceffc4012a0babb6f6bd564736f6c63430008070033

Deployed Bytecode Sourcemap

3516:10371:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5454:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6306:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5731:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6475:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6796:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7512:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12002:193;;;;;;;;;;;;;:::i;:::-;;5834:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2597:148;;;;;;;;;;;;;:::i;:::-;;9728:118;;;;;;;;;;;;;:::i;:::-;;2383:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5980:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11800:194;;;;;;;;;;;;;:::i;:::-;;9958:773;;;;;;;;;;;;;:::i;:::-;;6155:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:83;5491:13;5524:5;;;;;;;;;;;;;;;;;5517:12;;5454:83;:::o;6306:161::-;6381:4;6398:39;6407:12;:10;:12::i;:::-;6421:7;6430:6;6398:8;:39::i;:::-;6455:4;6448:11;;6306:161;;;;:::o;5731:95::-;5784:7;4074:17;5804:14;;5731:95;:::o;6475:313::-;6573:4;6590:36;6600:6;6608:9;6619:6;6590:9;:36::i;:::-;6637:121;6646:6;6654:12;:10;:12::i;:::-;6668:89;6706:6;6668:89;;;;;;;;;;;;;;;;;:11;:19;6680:6;6668:19;;;;;;;;;;;;;;;:33;6688:12;:10;:12::i;:::-;6668:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6637:8;:121::i;:::-;6776:4;6769:11;;6475:313;;;;;:::o;5640:83::-;5681:5;4547:1;5699:16;;5640:83;:::o;6796:103::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6886:5:::1;6868:15;;:23;;;;;;;;;;;;;;;;;;6796:103:::0;:::o;7512:126::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7625:5:::1;7599:14;:23;7614:7;7599:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;7512:126:::0;;:::o;12002:193::-;12068:14;;;;;;;;;;;12052:30;;:12;:10;:12::i;:::-;:30;;;12044:39;;;;;;12094:26;12123:21;12094:50;;12155:32;12168:18;12155:12;:32::i;:::-;12033:162;12002:193::o;5834:138::-;5900:7;5927:37;5947:7;:16;5955:7;5947:16;;;;;;;;;;;;;;;;5927:19;:37::i;:::-;5920:44;;5834:138;;;:::o;2597:148::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2704:1:::1;2667:40;;2688:6;::::0;::::1;;;;;;;;2667:40;;;;;;;;;;;;2735:1;2718:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2597:148::o:0;9728:118::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4074:17:::1;9781:12;:22;;;;4074:17;9814:14;:24;;;;9728:118::o:0;2383:79::-;2421:7;2448:6;;;;;;;;;;;2441:13;;2383:79;:::o;5545:87::-;5584:13;5617:7;;;;;;;;;;;;;;;;;5610:14;;5545:87;:::o;5980:167::-;6058:4;6075:42;6085:12;:10;:12::i;:::-;6099:9;6110:6;6075:9;:42::i;:::-;6135:4;6128:11;;5980:167;;;;:::o;11800:194::-;11866:14;;;;;;;;;;;11850:30;;:12;:10;:12::i;:::-;:30;;;11842:39;;;;;;11892:23;11918:24;11936:4;11918:9;:24::i;:::-;11892:50;;11953:33;11970:15;11953:16;:33::i;:::-;11831:163;11800:194::o;9958:773::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10022:11:::1;;;;;;;;;;;10021:12;10013:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10071:35;10128:42;10071:100;;10200:16;10182:15;;:34;;;;;;;;;;;;;;;;;;10227:58;10244:4;10259:15;;;;;;;;;;;4074:17;10227:8;:58::i;:::-;10330:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:56;;;10377:4;10384:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10296:13;;:112;;;;;;;;;;;;;;;;;;10419:15;;;;;;;;;;;:31;;;10458:21;10489:4;10495:24;10513:4;10495:9;:24::i;:::-;10520:1;10522::::0;10524:7:::1;:5;:7::i;:::-;10532:15;10419:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10573:4;10559:11;;:18;;;;;;;;;;;;;;;;;;10606:4;10588:15;;:22;;;;;;;;;;;;;;;;;;10637:4;10623:11;;:18;;;;;;;;;;;;;;;;;;10659:13;;;;;;;;;;;10652:29;;;10690:15;;;;;;;;;;;10708:14;10652:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10002:729;9958:773::o:0;6155:143::-;6236:7;6263:11;:18;6275:5;6263:18;;;;;;;;;;;;;;;:27;6282:7;6263:27;;;;;;;;;;;;;;;;6256:34;;6155:143;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;7169:335::-;7279:1;7262:19;;:5;:19;;;;7254:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7360:1;7341:21;;:7;:21;;;;7333:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7442:6;7412:11;:18;7424:5;7412:18;;;;;;;;;;;;;;;:27;7431:7;7412:27;;;;;;;;;;;;;;;:36;;;;7480:7;7464:32;;7473:5;7464:32;;;7489:6;7464:32;;;;;;:::i;:::-;;;;;;;;7169:335;;;:::o;7646:1581::-;7750:1;7734:18;;:4;:18;;;;7726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7827:1;7813:16;;:2;:16;;;;7805:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:1;7888:6;:10;7880:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7964:14;:20;7979:4;7964:20;;;;;;;;;;;;;;;;;;;;;;;;;7963:21;:44;;;;;7989:14;:18;8004:2;7989:18;;;;;;;;;;;;;;;;;;;;;;;;;7988:19;7963:44;7955:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8052:7;:5;:7::i;:::-;8044:15;;:4;:15;;;;:32;;;;;8069:7;:5;:7::i;:::-;8063:13;;:2;:13;;;;8044:32;8040:1137;;;8102:4;:10;8107:4;8102:10;;;;;;;;;;;;;;;;;;;;;;;;;8101:11;:24;;;;;8117:4;:8;8122:2;8117:8;;;;;;;;;;;;;;;;;;;;;;;;;8116:9;8101:24;8093:33;;;;;;8153:1;8141:9;:13;;;;8203:1;8182:19;;:22;8181:46;;8216:11;;8181:46;;;8206:9;;8181:46;8169:9;:58;;;;8254:13;;;;;;;;;;;8246:21;;:4;:21;;;:55;;;;;8285:15;;;;;;;;;;;8271:30;;:2;:30;;;;8246:55;:83;;;;;8307:18;:22;8326:2;8307:22;;;;;;;;;;;;;;;;;;;;;;;;;8305:24;8246:83;:102;;;;;8333:15;;;;;;;;;;;8246:102;8242:397;;;8416:12;;8406:6;:22;;8398:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8511:14;;8501:6;8485:13;8495:2;8485:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8477:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8598:1;8578:19;;:21;8575:49;;;8601:19;;:21;;;;;;;;;:::i;:::-;;;;;;8575:49;8242:397;8657:28;8688:24;8706:4;8688:9;:24::i;:::-;8657:55;;8732:6;;;;;;;;;;;8731:7;:32;;;;;8750:13;;;;;;;;;;;8742:21;;:4;:21;;;;8731:32;:47;;;;;8767:11;;;;;;;;;;;8731:47;:73;;;;;8803:1;8782:20;:22;8731:73;:100;;;;;8828:3;8808:19;;:23;8731:100;8727:371;;;8852:38;8869:20;8852:16;:38::i;:::-;8909:26;8938:21;8909:50;;9002:1;8981:18;:22;8978:105;;;9028:35;9041:21;9028:12;:35::i;:::-;8978:105;8833:265;8727:371;8078:1031;8040:1137;;;9138:1;9126:9;:13;;;;9164:1;9152:9;:13;;;;8040:1137;9189:30;9204:4;9209:2;9212:6;9189:14;:30::i;:::-;7646:1581;;;:::o;1238:190::-;1324:7;1357:1;1352;:6;;1360:12;1344:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1384:9;1400:1;1396;:5;;;;:::i;:::-;1384:17;;1419:1;1412:8;;;1238:190;;;;;:::o;9854:96::-;9911:14;;;;;;;;;;;:23;;:31;9935:6;9911:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9854:96;:::o;6907:254::-;6974:7;7013;;7002;:18;;6994:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7078:19;7101:10;:8;:10::i;:::-;7078:33;;7129:24;7141:11;7129:7;:11;;:24;;;;:::i;:::-;7122:31;;;6907:254;;;:::o;9235:483::-;4986:4;4977:6;;:13;;;;;;;;;;;;;;;;;;9313:21:::1;9351:1;9337:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9313:40;;9382:4;9364;9369:1;9364:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9408:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9398:4;9403:1;9398:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9441:62;9458:4;9473:15;;;;;;;;;;;9491:11;9441:8;:62::i;:::-;9514:15;;;;;;;;;;;:66;;;9595:11;9621:1;9637:4;9664;9684:15;9514:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9302:416;5022:5:::0;5013:6;;:14;;;;;;;;;;;;;;;;;;9235:483;:::o;10739:146::-;10833:44;10851:6;10859:9;10870:6;10833:17;:44::i;:::-;10739:146;;;:::o;13457:163::-;13498:7;13519:15;13536;13555:19;:17;:19::i;:::-;13518:56;;;;13592:20;13604:7;13592;:11;;:20;;;;:::i;:::-;13585:27;;;;13457:163;:::o;1690:132::-;1748:7;1775:39;1779:1;1782;1775:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1768:46;;1690:132;;;;:::o;10893:487::-;10992:15;11009:23;11034:12;11048:23;11073:12;11087:13;11104:19;11115:7;11104:10;:19::i;:::-;10991:132;;;;;;;;;;;;11152:28;11172:7;11152;:15;11160:6;11152:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11134:7;:15;11142:6;11134:15;;;;;;;;;;;;;;;:46;;;;11212:39;11235:15;11212:7;:18;11220:9;11212:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11191:7;:18;11199:9;11191:18;;;;;;;;;;;;;;;:60;;;;11262:16;11272:5;11262:9;:16::i;:::-;11289:23;11301:4;11307;11289:11;:23::i;:::-;11345:9;11328:44;;11337:6;11328:44;;;11356:15;11328:44;;;;;;:::i;:::-;;;;;;;;10980:400;;;;;;10893:487;;;:::o;13628:256::-;13678:7;13687;13707:15;13725:7;;13707:25;;13743:15;4074:17;13743:25;;13793:20;4074:17;13793:7;;:11;;:20;;;;:::i;:::-;13783:7;:30;13779:61;;;13823:7;;4074:17;13815:25;;;;;;;;13779:61;13859:7;13868;13851:25;;;;;;13628:256;;;:::o;1830:189::-;1916:7;1948:1;1944;:5;1951:12;1936:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1975:9;1991:1;1987;:5;;;;:::i;:::-;1975:17;;2010:1;2003:8;;;1830:189;;;;;:::o;12205:471::-;12264:7;12273;12282;12291;12300;12309;12330:23;12355:12;12369:13;12386:42;12398:7;12407:9;;12418;;12386:11;:42::i;:::-;12329:99;;;;;;12439:19;12462:10;:8;:10::i;:::-;12439:33;;12484:15;12501:23;12526:12;12542:46;12554:7;12563:4;12569:5;12576:11;12542;:46::i;:::-;12483:105;;;;;;12607:7;12616:15;12633:4;12639:15;12656:4;12662:5;12599:69;;;;;;;;;;;;;;;;;;;12205:471;;;;;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1172:50;;1094:136;;;;:::o;907:179::-;965:7;985:9;1001:1;997;:5;;;;:::i;:::-;985:17;;1026:1;1021;:6;;1013:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1077:1;1070:8;;;907:179;;;;:::o;11388:212::-;11441:19;11464:10;:8;:10::i;:::-;11441:33;;11485:13;11501:22;11511:11;11501:5;:9;;:22;;;;:::i;:::-;11485:38;;11559:33;11586:5;11559:7;:22;11575:4;11559:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11534:7;:22;11550:4;11534:22;;;;;;;;;;;;;;;:58;;;;11430:170;;11388:212;:::o;11608:147::-;11686:17;11698:4;11686:7;;:11;;:17;;;;:::i;:::-;11676:7;:27;;;;11727:20;11742:4;11727:10;;:14;;:20;;;;:::i;:::-;11714:10;:33;;;;11608:147;;:::o;12684:351::-;12777:7;12786;12795;12815:12;12830:28;12854:3;12830:19;12842:6;12830:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12815:43;;12869:13;12885:29;12910:3;12885:20;12897:7;12885;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12869:45;;12925:23;12951:28;12973:5;12951:17;12963:4;12951:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12925:54;;12998:15;13015:4;13021:5;12990:37;;;;;;;;;12684:351;;;;;;;:::o;13043:409::-;13153:7;13162;13171;13191:15;13209:24;13221:11;13209:7;:11;;:24;;;;:::i;:::-;13191:42;;13244:12;13259:21;13268:11;13259:4;:8;;:21;;;;:::i;:::-;13244:36;;13291:13;13307:22;13317:11;13307:5;:9;;:22;;;;:::i;:::-;13291:38;;13340:23;13366:28;13388:5;13366:17;13378:4;13366:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13340:54;;13413:7;13422:15;13439:4;13405:39;;;;;;;;;;13043:409;;;;;;;;:::o;1436:246::-;1494:7;1523:1;1518;:6;1514:47;;;1548:1;1541:8;;;;1514:47;1571:9;1587:1;1583;:5;;;;:::i;:::-;1571:17;;1616:1;1611;1607;:5;;;;:::i;:::-;:10;1599:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1673:1;1666:8;;;1436:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:323::-;3684:6;3733:2;3721:9;3712:7;3708:23;3704:32;3701:119;;;3739:79;;:::i;:::-;3701:119;3859:1;3884:50;3926:7;3917:6;3906:9;3902:22;3884:50;:::i;:::-;3874:60;;3830:114;3628:323;;;;:::o;3957:345::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:61;4277:7;4268:6;4257:9;4253:22;4224:61;:::i;:::-;4214:71;;4170:125;3957:345;;;;:::o;4308:663::-;4396:6;4404;4412;4461:2;4449:9;4440:7;4436:23;4432:32;4429:119;;;4467:79;;:::i;:::-;4429:119;4587:1;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4558:128;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4864:2;4890:64;4946:7;4937:6;4926:9;4922:22;4890:64;:::i;:::-;4880:74;;4835:129;4308:663;;;;;:::o;4977:179::-;5046:10;5067:46;5109:3;5101:6;5067:46;:::i;:::-;5145:4;5140:3;5136:14;5122:28;;4977:179;;;;:::o;5162:108::-;5239:24;5257:5;5239:24;:::i;:::-;5234:3;5227:37;5162:108;;:::o;5276:118::-;5363:24;5381:5;5363:24;:::i;:::-;5358:3;5351:37;5276:118;;:::o;5430:732::-;5549:3;5578:54;5626:5;5578:54;:::i;:::-;5648:86;5727:6;5722:3;5648:86;:::i;:::-;5641:93;;5758:56;5808:5;5758:56;:::i;:::-;5837:7;5868:1;5853:284;5878:6;5875:1;5872:13;5853:284;;;5954:6;5948:13;5981:63;6040:3;6025:13;5981:63;:::i;:::-;5974:70;;6067:60;6120:6;6067:60;:::i;:::-;6057:70;;5913:224;5900:1;5897;5893:9;5888:14;;5853:284;;;5857:14;6153:3;6146:10;;5554:608;;;5430:732;;;;:::o;6168:109::-;6249:21;6264:5;6249:21;:::i;:::-;6244:3;6237:34;6168:109;;:::o;6283:147::-;6378:45;6417:5;6378:45;:::i;:::-;6373:3;6366:58;6283:147;;:::o;6436:364::-;6524:3;6552:39;6585:5;6552:39;:::i;:::-;6607:71;6671:6;6666:3;6607:71;:::i;:::-;6600:78;;6687:52;6732:6;6727:3;6720:4;6713:5;6709:16;6687:52;:::i;:::-;6764:29;6786:6;6764:29;:::i;:::-;6759:3;6755:39;6748:46;;6528:272;6436:364;;;;:::o;6806:366::-;6948:3;6969:67;7033:2;7028:3;6969:67;:::i;:::-;6962:74;;7045:93;7134:3;7045:93;:::i;:::-;7163:2;7158:3;7154:12;7147:19;;6806:366;;;:::o;7178:::-;7320:3;7341:67;7405:2;7400:3;7341:67;:::i;:::-;7334:74;;7417:93;7506:3;7417:93;:::i;:::-;7535:2;7530:3;7526:12;7519:19;;7178:366;;;:::o;7550:::-;7692:3;7713:67;7777:2;7772:3;7713:67;:::i;:::-;7706:74;;7789:93;7878:3;7789:93;:::i;:::-;7907:2;7902:3;7898:12;7891:19;;7550:366;;;:::o;7922:::-;8064:3;8085:67;8149:2;8144:3;8085:67;:::i;:::-;8078:74;;8161:93;8250:3;8161:93;:::i;:::-;8279:2;8274:3;8270:12;8263:19;;7922:366;;;:::o;8294:::-;8436:3;8457:67;8521:2;8516:3;8457:67;:::i;:::-;8450:74;;8533:93;8622:3;8533:93;:::i;:::-;8651:2;8646:3;8642:12;8635:19;;8294:366;;;:::o;8666:::-;8808:3;8829:67;8893:2;8888:3;8829:67;:::i;:::-;8822:74;;8905:93;8994:3;8905:93;:::i;:::-;9023:2;9018:3;9014:12;9007:19;;8666:366;;;:::o;9038:::-;9180:3;9201:67;9265:2;9260:3;9201:67;:::i;:::-;9194:74;;9277:93;9366:3;9277:93;:::i;:::-;9395:2;9390:3;9386:12;9379:19;;9038:366;;;:::o;9410:::-;9552:3;9573:67;9637:2;9632:3;9573:67;:::i;:::-;9566:74;;9649:93;9738:3;9649:93;:::i;:::-;9767:2;9762:3;9758:12;9751:19;;9410:366;;;:::o;9782:::-;9924:3;9945:67;10009:2;10004:3;9945:67;:::i;:::-;9938:74;;10021:93;10110:3;10021:93;:::i;:::-;10139:2;10134:3;10130:12;10123:19;;9782:366;;;:::o;10154:::-;10296:3;10317:67;10381:2;10376:3;10317:67;:::i;:::-;10310:74;;10393:93;10482:3;10393:93;:::i;:::-;10511:2;10506:3;10502:12;10495:19;;10154:366;;;:::o;10526:::-;10668:3;10689:67;10753:2;10748:3;10689:67;:::i;:::-;10682:74;;10765:93;10854:3;10765:93;:::i;:::-;10883:2;10878:3;10874:12;10867:19;;10526:366;;;:::o;10898:::-;11040:3;11061:67;11125:2;11120:3;11061:67;:::i;:::-;11054:74;;11137:93;11226:3;11137:93;:::i;:::-;11255:2;11250:3;11246:12;11239:19;;10898:366;;;:::o;11270:::-;11412:3;11433:67;11497:2;11492:3;11433:67;:::i;:::-;11426:74;;11509:93;11598:3;11509:93;:::i;:::-;11627:2;11622:3;11618:12;11611:19;;11270:366;;;:::o;11642:118::-;11729:24;11747:5;11729:24;:::i;:::-;11724:3;11717:37;11642:118;;:::o;11766:112::-;11849:22;11865:5;11849:22;:::i;:::-;11844:3;11837:35;11766:112;;:::o;11884:222::-;11977:4;12015:2;12004:9;12000:18;11992:26;;12028:71;12096:1;12085:9;12081:17;12072:6;12028:71;:::i;:::-;11884:222;;;;:::o;12112:332::-;12233:4;12271:2;12260:9;12256:18;12248:26;;12284:71;12352:1;12341:9;12337:17;12328:6;12284:71;:::i;:::-;12365:72;12433:2;12422:9;12418:18;12409:6;12365:72;:::i;:::-;12112:332;;;;;:::o;12450:::-;12571:4;12609:2;12598:9;12594:18;12586:26;;12622:71;12690:1;12679:9;12675:17;12666:6;12622:71;:::i;:::-;12703:72;12771:2;12760:9;12756:18;12747:6;12703:72;:::i;:::-;12450:332;;;;;:::o;12788:807::-;13037:4;13075:3;13064:9;13060:19;13052:27;;13089:71;13157:1;13146:9;13142:17;13133:6;13089:71;:::i;:::-;13170:72;13238:2;13227:9;13223:18;13214:6;13170:72;:::i;:::-;13252:80;13328:2;13317:9;13313:18;13304:6;13252:80;:::i;:::-;13342;13418:2;13407:9;13403:18;13394:6;13342:80;:::i;:::-;13432:73;13500:3;13489:9;13485:19;13476:6;13432:73;:::i;:::-;13515;13583:3;13572:9;13568:19;13559:6;13515:73;:::i;:::-;12788:807;;;;;;;;;:::o;13601:210::-;13688:4;13726:2;13715:9;13711:18;13703:26;;13739:65;13801:1;13790:9;13786:17;13777:6;13739:65;:::i;:::-;13601:210;;;;:::o;13817:313::-;13930:4;13968:2;13957:9;13953:18;13945:26;;14017:9;14011:4;14007:20;14003:1;13992:9;13988:17;13981:47;14045:78;14118:4;14109:6;14045:78;:::i;:::-;14037:86;;13817:313;;;;:::o;14136:419::-;14302:4;14340:2;14329:9;14325:18;14317:26;;14389:9;14383:4;14379:20;14375:1;14364:9;14360:17;14353:47;14417:131;14543:4;14417:131;:::i;:::-;14409:139;;14136:419;;;:::o;14561:::-;14727:4;14765:2;14754:9;14750:18;14742:26;;14814:9;14808:4;14804:20;14800:1;14789:9;14785:17;14778:47;14842:131;14968:4;14842:131;:::i;:::-;14834:139;;14561:419;;;:::o;14986:::-;15152:4;15190:2;15179:9;15175:18;15167:26;;15239:9;15233:4;15229:20;15225:1;15214:9;15210:17;15203:47;15267:131;15393:4;15267:131;:::i;:::-;15259:139;;14986:419;;;:::o;15411:::-;15577:4;15615:2;15604:9;15600:18;15592:26;;15664:9;15658:4;15654:20;15650:1;15639:9;15635:17;15628:47;15692:131;15818:4;15692:131;:::i;:::-;15684:139;;15411:419;;;:::o;15836:::-;16002:4;16040:2;16029:9;16025:18;16017:26;;16089:9;16083:4;16079:20;16075:1;16064:9;16060:17;16053:47;16117:131;16243:4;16117:131;:::i;:::-;16109:139;;15836:419;;;:::o;16261:::-;16427:4;16465:2;16454:9;16450:18;16442:26;;16514:9;16508:4;16504:20;16500:1;16489:9;16485:17;16478:47;16542:131;16668:4;16542:131;:::i;:::-;16534:139;;16261:419;;;:::o;16686:::-;16852:4;16890:2;16879:9;16875:18;16867:26;;16939:9;16933:4;16929:20;16925:1;16914:9;16910:17;16903:47;16967:131;17093:4;16967:131;:::i;:::-;16959:139;;16686:419;;;:::o;17111:::-;17277:4;17315:2;17304:9;17300:18;17292:26;;17364:9;17358:4;17354:20;17350:1;17339:9;17335:17;17328:47;17392:131;17518:4;17392:131;:::i;:::-;17384:139;;17111:419;;;:::o;17536:::-;17702:4;17740:2;17729:9;17725:18;17717:26;;17789:9;17783:4;17779:20;17775:1;17764:9;17760:17;17753:47;17817:131;17943:4;17817:131;:::i;:::-;17809:139;;17536:419;;;:::o;17961:::-;18127:4;18165:2;18154:9;18150:18;18142:26;;18214:9;18208:4;18204:20;18200:1;18189:9;18185:17;18178:47;18242:131;18368:4;18242:131;:::i;:::-;18234:139;;17961:419;;;:::o;18386:::-;18552:4;18590:2;18579:9;18575:18;18567:26;;18639:9;18633:4;18629:20;18625:1;18614:9;18610:17;18603:47;18667:131;18793:4;18667:131;:::i;:::-;18659:139;;18386:419;;;:::o;18811:::-;18977:4;19015:2;19004:9;19000:18;18992:26;;19064:9;19058:4;19054:20;19050:1;19039:9;19035:17;19028:47;19092:131;19218:4;19092:131;:::i;:::-;19084:139;;18811:419;;;:::o;19236:::-;19402:4;19440:2;19429:9;19425:18;19417:26;;19489:9;19483:4;19479:20;19475:1;19464:9;19460:17;19453:47;19517:131;19643:4;19517:131;:::i;:::-;19509:139;;19236:419;;;:::o;19661:222::-;19754:4;19792:2;19781:9;19777:18;19769:26;;19805:71;19873:1;19862:9;19858:17;19849:6;19805:71;:::i;:::-;19661:222;;;;:::o;19889:831::-;20152:4;20190:3;20179:9;20175:19;20167:27;;20204:71;20272:1;20261:9;20257:17;20248:6;20204:71;:::i;:::-;20285:80;20361:2;20350:9;20346:18;20337:6;20285:80;:::i;:::-;20412:9;20406:4;20402:20;20397:2;20386:9;20382:18;20375:48;20440:108;20543:4;20534:6;20440:108;:::i;:::-;20432:116;;20558:72;20626:2;20615:9;20611:18;20602:6;20558:72;:::i;:::-;20640:73;20708:3;20697:9;20693:19;20684:6;20640:73;:::i;:::-;19889:831;;;;;;;;:::o;20726:214::-;20815:4;20853:2;20842:9;20838:18;20830:26;;20866:67;20930:1;20919:9;20915:17;20906:6;20866:67;:::i;:::-;20726:214;;;;:::o;21027:132::-;21094:4;21117:3;21109:11;;21147:4;21142:3;21138:14;21130:22;;21027:132;;;:::o;21165:114::-;21232:6;21266:5;21260:12;21250:22;;21165:114;;;:::o;21285:99::-;21337:6;21371:5;21365:12;21355:22;;21285:99;;;:::o;21390:113::-;21460:4;21492;21487:3;21483:14;21475:22;;21390:113;;;:::o;21509:184::-;21608:11;21642:6;21637:3;21630:19;21682:4;21677:3;21673:14;21658:29;;21509:184;;;;:::o;21699:169::-;21783:11;21817:6;21812:3;21805:19;21857:4;21852:3;21848:14;21833:29;;21699:169;;;;:::o;21874:305::-;21914:3;21933:20;21951:1;21933:20;:::i;:::-;21928:25;;21967:20;21985:1;21967:20;:::i;:::-;21962:25;;22121:1;22053:66;22049:74;22046:1;22043:81;22040:107;;;22127:18;;:::i;:::-;22040:107;22171:1;22168;22164:9;22157:16;;21874:305;;;;:::o;22185:185::-;22225:1;22242:20;22260:1;22242:20;:::i;:::-;22237:25;;22276:20;22294:1;22276:20;:::i;:::-;22271:25;;22315:1;22305:35;;22320:18;;:::i;:::-;22305:35;22362:1;22359;22355:9;22350:14;;22185:185;;;;:::o;22376:348::-;22416:7;22439:20;22457:1;22439:20;:::i;:::-;22434:25;;22473:20;22491:1;22473:20;:::i;:::-;22468:25;;22661:1;22593:66;22589:74;22586:1;22583:81;22578:1;22571:9;22564:17;22560:105;22557:131;;;22668:18;;:::i;:::-;22557:131;22716:1;22713;22709:9;22698:20;;22376:348;;;;:::o;22730:191::-;22770:4;22790:20;22808:1;22790:20;:::i;:::-;22785:25;;22824:20;22842:1;22824:20;:::i;:::-;22819:25;;22863:1;22860;22857:8;22854:34;;;22868:18;;:::i;:::-;22854:34;22913:1;22910;22906:9;22898:17;;22730:191;;;;:::o;22927:96::-;22964:7;22993:24;23011:5;22993:24;:::i;:::-;22982:35;;22927:96;;;:::o;23029:90::-;23063:7;23106:5;23099:13;23092:21;23081:32;;23029:90;;;:::o;23125:126::-;23162:7;23202:42;23195:5;23191:54;23180:65;;23125:126;;;:::o;23257:77::-;23294:7;23323:5;23312:16;;23257:77;;;:::o;23340:86::-;23375:7;23415:4;23408:5;23404:16;23393:27;;23340:86;;;:::o;23432:121::-;23490:9;23523:24;23541:5;23523:24;:::i;:::-;23510:37;;23432:121;;;:::o;23559:307::-;23627:1;23637:113;23651:6;23648:1;23645:13;23637:113;;;23736:1;23731:3;23727:11;23721:18;23717:1;23712:3;23708:11;23701:39;23673:2;23670:1;23666:10;23661:15;;23637:113;;;23768:6;23765:1;23762:13;23759:101;;;23848:1;23839:6;23834:3;23830:16;23823:27;23759:101;23608:258;23559:307;;;:::o;23872:171::-;23911:3;23934:24;23952:5;23934:24;:::i;:::-;23925:33;;23980:4;23973:5;23970:15;23967:41;;;23988:18;;:::i;:::-;23967:41;24035:1;24028:5;24024:13;24017:20;;23872:171;;;:::o;24049:180::-;24097:77;24094:1;24087:88;24194:4;24191:1;24184:15;24218:4;24215:1;24208:15;24235:180;24283:77;24280:1;24273:88;24380:4;24377:1;24370:15;24404:4;24401:1;24394:15;24421:180;24469:77;24466:1;24459:88;24566:4;24563:1;24556:15;24590:4;24587:1;24580:15;24607:180;24655:77;24652:1;24645:88;24752:4;24749:1;24742:15;24776:4;24773:1;24766:15;24916:117;25025:1;25022;25015:12;25039:102;25080:6;25131:2;25127:7;25122:2;25115:5;25111:14;25107:28;25097:38;;25039:102;;;:::o;25147:222::-;25287:34;25283:1;25275:6;25271:14;25264:58;25356:5;25351:2;25343:6;25339:15;25332:30;25147:222;:::o;25375:175::-;25515:27;25511:1;25503:6;25499:14;25492:51;25375:175;:::o;25556:229::-;25696:34;25692:1;25684:6;25680:14;25673:58;25765:12;25760:2;25752:6;25748:15;25741:37;25556:229;:::o;25791:221::-;25931:34;25927:1;25919:6;25915:14;25908:58;26000:4;25995:2;25987:6;25983:15;25976:29;25791:221;:::o;26018:177::-;26158:29;26154:1;26146:6;26142:14;26135:53;26018:177;:::o;26201:220::-;26341:34;26337:1;26329:6;26325:14;26318:58;26410:3;26405:2;26397:6;26393:15;26386:28;26201:220;:::o;26427:182::-;26567:34;26563:1;26555:6;26551:14;26544:58;26427:182;:::o;26615:228::-;26755:34;26751:1;26743:6;26739:14;26732:58;26824:11;26819:2;26811:6;26807:15;26800:36;26615:228;:::o;26849:224::-;26989:34;26985:1;26977:6;26973:14;26966:58;27058:7;27053:2;27045:6;27041:15;27034:32;26849:224;:::o;27079:176::-;27219:28;27215:1;27207:6;27203:14;27196:52;27079:176;:::o;27261:223::-;27401:34;27397:1;27389:6;27385:14;27378:58;27470:6;27465:2;27457:6;27453:15;27446:31;27261:223;:::o;27490:173::-;27630:25;27626:1;27618:6;27614:14;27607:49;27490:173;:::o;27669:163::-;27809:15;27805:1;27797:6;27793:14;27786:39;27669:163;:::o;27838:122::-;27911:24;27929:5;27911:24;:::i;:::-;27904:5;27901:35;27891:63;;27950:1;27947;27940:12;27891:63;27838:122;:::o;27966:116::-;28036:21;28051:5;28036:21;:::i;:::-;28029:5;28026:32;28016:60;;28072:1;28069;28062:12;28016:60;27966:116;:::o;28088:122::-;28161:24;28179:5;28161:24;:::i;:::-;28154:5;28151:35;28141:63;;28200:1;28197;28190:12;28141:63;28088:122;:::o

Swarm Source

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