ETH Price: $3,229.89 (-3.45%)
 

Overview

Max Total Supply

100,000,000 $NUKE

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 $NUKE

Value
$0.00
0x68e88cbeb57a128e2ab76874aa1151894366654c
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:
NuclearShib

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-21
*/

/*
    https://t.me/NuclearShib
    http://nuclearshib.com/

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.15;

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

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

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

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

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

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

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

}

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract NuclearShib is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Nuclear Shib";
    string private constant _symbol = "$NUKE";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 1e18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 4;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 4;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address private marketingAddress;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxWalletSize = 2000000 * 1e18 + 1 * 1e18;
    uint256 public _swapTokensAtAmount = 100000 * 1e18;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        marketingAddress = address(0x0d1e833094d4439c5d54Ef976954734049a40BeE);

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress] = true;
        
        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 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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trading open check
            if (!tradingOpen) {
                require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active.");
            }

            if(to != uniswapV2Pair) {
				if (!_isExcludedFromFee[to]) {
					require(balanceOf(to) + amount < _maxWalletSize, "Balance exceeds max wallet size!");
				}
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount * 20)
            {
                contractTokenBalance = _swapTokensAtAmount * 20;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private lockTheSwap {
        payable(marketingAddress).transfer(amount);
    }

	function openTrading() public onlyOwner {
		tradingOpen = true;
	}
	
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f919062000643565b6000196200002e9190620006aa565b6005556000600755600460085560006009556004600a55600954600b55600a54600c55600b54600d55600c54600e556000601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff0219169083151502179055506a01a784457e508ee964000060125569152d02c7e14af6800000601355348015620000bd57600080fd5b506000620000d0620005d960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350730d1e833094d4439c5d54ef976954734049a40bee600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460016000620001da620005d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e491906200074f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037291906200074f565b6040518363ffffffff1660e01b81526004016200039192919062000792565b6020604051808303816000875af1158015620003b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d791906200074f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200042d620005e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000560620005d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620005ca9190620007d0565b60405180910390a350620007ed565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000650826200060a565b91506200065d836200060a565b92508262000670576200066f62000614565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006b7826200060a565b9150620006c4836200060a565b925082821015620006da57620006d96200067b565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200071782620006ea565b9050919050565b62000729816200070a565b81146200073557600080fd5b50565b60008151905062000749816200071e565b92915050565b600060208284031215620007685762000767620006e5565b5b6000620007788482850162000738565b91505092915050565b6200078c816200070a565b82525050565b6000604082019050620007a9600083018562000781565b620007b8602083018462000781565b9392505050565b620007ca816200060a565b82525050565b6000602082019050620007e76000830184620007bf565b92915050565b612d8f80620007fd6000396000f3fe6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610334578063a9059cbb1461035f578063c9567bf91461039c578063dd62ed3e146103b3578063f2fde38b146103f057610109565b806370a082311461028a578063715018a6146102c75780638da5cb5b146102de5780638f9a55c01461030957610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610419565b6040516101309190612095565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612150565b610456565b60405161016d91906121ab565b60405180910390f35b34801561018257600080fd5b5061018b610474565b6040516101989190612225565b60405180910390f35b3480156101ad57600080fd5b506101b661049a565b6040516101c3919061224f565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee919061226a565b6104ad565b60405161020091906121ab565b60405180910390f35b34801561021557600080fd5b5061021e610586565b60405161022b919061224f565b60405180910390f35b34801561024057600080fd5b5061024961058c565b60405161025691906122d9565b60405180910390f35b34801561026b57600080fd5b50610274610595565b6040516102819190612303565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac919061231e565b6105bb565b6040516102be919061224f565b60405180910390f35b3480156102d357600080fd5b506102dc61060c565b005b3480156102ea57600080fd5b506102f361075f565b6040516103009190612303565b60405180910390f35b34801561031557600080fd5b5061031e610788565b60405161032b919061224f565b60405180910390f35b34801561034057600080fd5b5061034961078e565b6040516103569190612095565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190612150565b6107cb565b60405161039391906121ab565b60405180910390f35b3480156103a857600080fd5b506103b16107e9565b005b3480156103bf57600080fd5b506103da60048036038101906103d5919061234b565b61089b565b6040516103e7919061224f565b60405180910390f35b3480156103fc57600080fd5b506104176004803603810190610412919061231e565b610922565b005b60606040518060400160405280600c81526020017f4e75636c65617220536869620000000000000000000000000000000000000000815250905090565b600061046a610463610ae3565b8484610aeb565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104ba848484610cb4565b61057b846104c6610ae3565b61057685604051806060016040528060288152602001612d3260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052c610ae3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e69092919063ffffffff16565b610aeb565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610605600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154a565b9050919050565b610614610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610698906123d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f244e554b45000000000000000000000000000000000000000000000000000000815250905090565b60006107df6107d8610ae3565b8484610cb4565b6001905092915050565b6107f1610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610875906123d7565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61092a610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae906123d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612469565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b51906124fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc09061258d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca7919061224f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906126b1565b60405180910390fd5b60008111610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612743565b60405180910390fd5b610ddd61075f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e4b5750610e1b61075f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111e557601160149054906101000a900460ff16610f4557600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f055750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b906127af565b60405180910390fd5b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461104457600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110435760125481610ff8846105bb565b61100291906127fe565b10611042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611039906128a0565b60405180910390fd5b5b5b600061104f306105bb565b905060006013548210159050601460135461106a91906128c0565b821061108257601460135461107f91906128c0565b91505b80801561109c5750601160159054906101000a900460ff16155b80156110f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561110e5750601160169054906101000a900460ff165b80156111645750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111ba5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111e2576111c8826115b8565b600047905060008111156111e0576111df47611831565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061128c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061133f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561133e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561134d57600090506114d4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113f85750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561141057600754600b81905550600854600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114bb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156114d357600954600b81905550600a54600c819055505b5b6114e0848484846118d3565b50505050565b600083831115829061152e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115259190612095565b60405180910390fd5b506000838561153d919061291a565b9050809150509392505050565b6000600554821115611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906129c0565b60405180910390fd5b600061159b611900565b90506115b0818461192b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115f0576115ef6129e0565b5b60405190808252806020026020018201604052801561161e5781602001602082028036833780820191505090505b509050308160008151811061163657611635612a0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117019190612a53565b8160018151811061171557611714612a0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610aeb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117e0959493929190612b79565b600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118b4573d6000803e3d6000fd5b506000601160156101000a81548160ff02191690831515021790555050565b806118e1576118e0611975565b5b6118ec8484846119b2565b806118fa576118f9611b7d565b5b50505050565b600080600061190d611b91565b91509150611924818361192b90919063ffffffff16565b9250505090565b600061196d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bf9565b905092915050565b6000600b5414801561198957506000600c54145b6119b057600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806119c487611c5c565b955095509550955095509550611a2286600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc490919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0381611d6c565b611b0d8483611e29565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b6a919061224f565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611bcb6a52b7d2dcc80cd2e400000060055461192b90919063ffffffff16565b821015611bec576005546a52b7d2dcc80cd2e4000000935093505050611bf5565b81819350935050505b9091565b60008083118290611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c379190612095565b60405180910390fd5b5060008385611c4f9190612c02565b9050809150509392505050565b6000806000806000806000806000611c798a600b54600c54611e63565b9250925092506000611c89611900565b90506000806000611c9c8e878787611ef9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e6565b905092915050565b6000808284611d1d91906127fe565b905083811015611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990612c7f565b60405180910390fd5b8091505092915050565b6000611d76611900565b90506000611d8d8284611f8290919063ffffffff16565b9050611de181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e3e82600554611cc490919063ffffffff16565b600581905550611e5981600654611d0e90919063ffffffff16565b6006819055505050565b600080600080611e8f6064611e81888a611f8290919063ffffffff16565b61192b90919063ffffffff16565b90506000611eb96064611eab888b611f8290919063ffffffff16565b61192b90919063ffffffff16565b90506000611ee282611ed4858c611cc490919063ffffffff16565b611cc490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f128589611f8290919063ffffffff16565b90506000611f298689611f8290919063ffffffff16565b90506000611f408789611f8290919063ffffffff16565b90506000611f6982611f5b8587611cc490919063ffffffff16565b611cc490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611f945760009050611ff6565b60008284611fa291906128c0565b9050828482611fb19190612c02565b14611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe890612d11565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561203657808201518184015260208101905061201b565b83811115612045576000848401525b50505050565b6000601f19601f8301169050919050565b600061206782611ffc565b6120718185612007565b9350612081818560208601612018565b61208a8161204b565b840191505092915050565b600060208201905081810360008301526120af818461205c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120e7826120bc565b9050919050565b6120f7816120dc565b811461210257600080fd5b50565b600081359050612114816120ee565b92915050565b6000819050919050565b61212d8161211a565b811461213857600080fd5b50565b60008135905061214a81612124565b92915050565b60008060408385031215612167576121666120b7565b5b600061217585828601612105565b92505060206121868582860161213b565b9150509250929050565b60008115159050919050565b6121a581612190565b82525050565b60006020820190506121c0600083018461219c565b92915050565b6000819050919050565b60006121eb6121e66121e1846120bc565b6121c6565b6120bc565b9050919050565b60006121fd826121d0565b9050919050565b600061220f826121f2565b9050919050565b61221f81612204565b82525050565b600060208201905061223a6000830184612216565b92915050565b6122498161211a565b82525050565b60006020820190506122646000830184612240565b92915050565b600080600060608486031215612283576122826120b7565b5b600061229186828701612105565b93505060206122a286828701612105565b92505060406122b38682870161213b565b9150509250925092565b600060ff82169050919050565b6122d3816122bd565b82525050565b60006020820190506122ee60008301846122ca565b92915050565b6122fd816120dc565b82525050565b600060208201905061231860008301846122f4565b92915050565b600060208284031215612334576123336120b7565b5b600061234284828501612105565b91505092915050565b60008060408385031215612362576123616120b7565b5b600061237085828601612105565b925050602061238185828601612105565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123c1602083612007565b91506123cc8261238b565b602082019050919050565b600060208201905081810360008301526123f0816123b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612453602683612007565b915061245e826123f7565b604082019050919050565b6000602082019050818103600083015261248281612446565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124e5602483612007565b91506124f082612489565b604082019050919050565b60006020820190508181036000830152612514816124d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612577602283612007565b91506125828261251b565b604082019050919050565b600060208201905081810360008301526125a68161256a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612609602583612007565b9150612614826125ad565b604082019050919050565b60006020820190508181036000830152612638816125fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061269b602383612007565b91506126a68261263f565b604082019050919050565b600060208201905081810360008301526126ca8161268e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061272d602983612007565b9150612738826126d1565b604082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612799601683612007565b91506127a482612763565b602082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128098261211a565b91506128148361211a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612849576128486127cf565b5b828201905092915050565b7f42616c616e63652065786365656473206d61782077616c6c65742073697a6521600082015250565b600061288a602083612007565b915061289582612854565b602082019050919050565b600060208201905081810360008301526128b98161287d565b9050919050565b60006128cb8261211a565b91506128d68361211a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561290f5761290e6127cf565b5b828202905092915050565b60006129258261211a565b91506129308361211a565b925082821015612943576129426127cf565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006129aa602a83612007565b91506129b58261294e565b604082019050919050565b600060208201905081810360008301526129d98161299d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a4d816120ee565b92915050565b600060208284031215612a6957612a686120b7565b5b6000612a7784828501612a3e565b91505092915050565b6000819050919050565b6000612aa5612aa0612a9b84612a80565b6121c6565b61211a565b9050919050565b612ab581612a8a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612af0816120dc565b82525050565b6000612b028383612ae7565b60208301905092915050565b6000602082019050919050565b6000612b2682612abb565b612b308185612ac6565b9350612b3b83612ad7565b8060005b83811015612b6c578151612b538882612af6565b9750612b5e83612b0e565b925050600181019050612b3f565b5085935050505092915050565b600060a082019050612b8e6000830188612240565b612b9b6020830187612aac565b8181036040830152612bad8186612b1b565b9050612bbc60608301856122f4565b612bc96080830184612240565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c0d8261211a565b9150612c188361211a565b925082612c2857612c27612bd3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c69601b83612007565b9150612c7482612c33565b602082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602183612007565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f0f73d2a42c1f71a513c3690e0c36deff230d394262e11c746ed42ffa9cfe06b64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610334578063a9059cbb1461035f578063c9567bf91461039c578063dd62ed3e146103b3578063f2fde38b146103f057610109565b806370a082311461028a578063715018a6146102c75780638da5cb5b146102de5780638f9a55c01461030957610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610419565b6040516101309190612095565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612150565b610456565b60405161016d91906121ab565b60405180910390f35b34801561018257600080fd5b5061018b610474565b6040516101989190612225565b60405180910390f35b3480156101ad57600080fd5b506101b661049a565b6040516101c3919061224f565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee919061226a565b6104ad565b60405161020091906121ab565b60405180910390f35b34801561021557600080fd5b5061021e610586565b60405161022b919061224f565b60405180910390f35b34801561024057600080fd5b5061024961058c565b60405161025691906122d9565b60405180910390f35b34801561026b57600080fd5b50610274610595565b6040516102819190612303565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac919061231e565b6105bb565b6040516102be919061224f565b60405180910390f35b3480156102d357600080fd5b506102dc61060c565b005b3480156102ea57600080fd5b506102f361075f565b6040516103009190612303565b60405180910390f35b34801561031557600080fd5b5061031e610788565b60405161032b919061224f565b60405180910390f35b34801561034057600080fd5b5061034961078e565b6040516103569190612095565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190612150565b6107cb565b60405161039391906121ab565b60405180910390f35b3480156103a857600080fd5b506103b16107e9565b005b3480156103bf57600080fd5b506103da60048036038101906103d5919061234b565b61089b565b6040516103e7919061224f565b60405180910390f35b3480156103fc57600080fd5b506104176004803603810190610412919061231e565b610922565b005b60606040518060400160405280600c81526020017f4e75636c65617220536869620000000000000000000000000000000000000000815250905090565b600061046a610463610ae3565b8484610aeb565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104ba848484610cb4565b61057b846104c6610ae3565b61057685604051806060016040528060288152602001612d3260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052c610ae3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e69092919063ffffffff16565b610aeb565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610605600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154a565b9050919050565b610614610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610698906123d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f244e554b45000000000000000000000000000000000000000000000000000000815250905090565b60006107df6107d8610ae3565b8484610cb4565b6001905092915050565b6107f1610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610875906123d7565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61092a610ae3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae906123d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612469565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b51906124fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc09061258d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca7919061224f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061261f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906126b1565b60405180910390fd5b60008111610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612743565b60405180910390fd5b610ddd61075f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e4b5750610e1b61075f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111e557601160149054906101000a900460ff16610f4557600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f055750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b906127af565b60405180910390fd5b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461104457600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110435760125481610ff8846105bb565b61100291906127fe565b10611042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611039906128a0565b60405180910390fd5b5b5b600061104f306105bb565b905060006013548210159050601460135461106a91906128c0565b821061108257601460135461107f91906128c0565b91505b80801561109c5750601160159054906101000a900460ff16155b80156110f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561110e5750601160169054906101000a900460ff165b80156111645750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111ba5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111e2576111c8826115b8565b600047905060008111156111e0576111df47611831565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061128c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061133f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561133e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561134d57600090506114d4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113f85750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561141057600754600b81905550600854600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114bb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156114d357600954600b81905550600a54600c819055505b5b6114e0848484846118d3565b50505050565b600083831115829061152e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115259190612095565b60405180910390fd5b506000838561153d919061291a565b9050809150509392505050565b6000600554821115611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906129c0565b60405180910390fd5b600061159b611900565b90506115b0818461192b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115f0576115ef6129e0565b5b60405190808252806020026020018201604052801561161e5781602001602082028036833780820191505090505b509050308160008151811061163657611635612a0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117019190612a53565b8160018151811061171557611714612a0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610aeb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117e0959493929190612b79565b600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118b4573d6000803e3d6000fd5b506000601160156101000a81548160ff02191690831515021790555050565b806118e1576118e0611975565b5b6118ec8484846119b2565b806118fa576118f9611b7d565b5b50505050565b600080600061190d611b91565b91509150611924818361192b90919063ffffffff16565b9250505090565b600061196d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bf9565b905092915050565b6000600b5414801561198957506000600c54145b6119b057600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806119c487611c5c565b955095509550955095509550611a2286600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc490919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0381611d6c565b611b0d8483611e29565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b6a919061224f565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611bcb6a52b7d2dcc80cd2e400000060055461192b90919063ffffffff16565b821015611bec576005546a52b7d2dcc80cd2e4000000935093505050611bf5565b81819350935050505b9091565b60008083118290611c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c379190612095565b60405180910390fd5b5060008385611c4f9190612c02565b9050809150509392505050565b6000806000806000806000806000611c798a600b54600c54611e63565b9250925092506000611c89611900565b90506000806000611c9c8e878787611ef9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e6565b905092915050565b6000808284611d1d91906127fe565b905083811015611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990612c7f565b60405180910390fd5b8091505092915050565b6000611d76611900565b90506000611d8d8284611f8290919063ffffffff16565b9050611de181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e3e82600554611cc490919063ffffffff16565b600581905550611e5981600654611d0e90919063ffffffff16565b6006819055505050565b600080600080611e8f6064611e81888a611f8290919063ffffffff16565b61192b90919063ffffffff16565b90506000611eb96064611eab888b611f8290919063ffffffff16565b61192b90919063ffffffff16565b90506000611ee282611ed4858c611cc490919063ffffffff16565b611cc490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f128589611f8290919063ffffffff16565b90506000611f298689611f8290919063ffffffff16565b90506000611f408789611f8290919063ffffffff16565b90506000611f6982611f5b8587611cc490919063ffffffff16565b611cc490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611f945760009050611ff6565b60008284611fa291906128c0565b9050828482611fb19190612c02565b14611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe890612d11565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561203657808201518184015260208101905061201b565b83811115612045576000848401525b50505050565b6000601f19601f8301169050919050565b600061206782611ffc565b6120718185612007565b9350612081818560208601612018565b61208a8161204b565b840191505092915050565b600060208201905081810360008301526120af818461205c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120e7826120bc565b9050919050565b6120f7816120dc565b811461210257600080fd5b50565b600081359050612114816120ee565b92915050565b6000819050919050565b61212d8161211a565b811461213857600080fd5b50565b60008135905061214a81612124565b92915050565b60008060408385031215612167576121666120b7565b5b600061217585828601612105565b92505060206121868582860161213b565b9150509250929050565b60008115159050919050565b6121a581612190565b82525050565b60006020820190506121c0600083018461219c565b92915050565b6000819050919050565b60006121eb6121e66121e1846120bc565b6121c6565b6120bc565b9050919050565b60006121fd826121d0565b9050919050565b600061220f826121f2565b9050919050565b61221f81612204565b82525050565b600060208201905061223a6000830184612216565b92915050565b6122498161211a565b82525050565b60006020820190506122646000830184612240565b92915050565b600080600060608486031215612283576122826120b7565b5b600061229186828701612105565b93505060206122a286828701612105565b92505060406122b38682870161213b565b9150509250925092565b600060ff82169050919050565b6122d3816122bd565b82525050565b60006020820190506122ee60008301846122ca565b92915050565b6122fd816120dc565b82525050565b600060208201905061231860008301846122f4565b92915050565b600060208284031215612334576123336120b7565b5b600061234284828501612105565b91505092915050565b60008060408385031215612362576123616120b7565b5b600061237085828601612105565b925050602061238185828601612105565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123c1602083612007565b91506123cc8261238b565b602082019050919050565b600060208201905081810360008301526123f0816123b4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612453602683612007565b915061245e826123f7565b604082019050919050565b6000602082019050818103600083015261248281612446565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124e5602483612007565b91506124f082612489565b604082019050919050565b60006020820190508181036000830152612514816124d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612577602283612007565b91506125828261251b565b604082019050919050565b600060208201905081810360008301526125a68161256a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612609602583612007565b9150612614826125ad565b604082019050919050565b60006020820190508181036000830152612638816125fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061269b602383612007565b91506126a68261263f565b604082019050919050565b600060208201905081810360008301526126ca8161268e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061272d602983612007565b9150612738826126d1565b604082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612799601683612007565b91506127a482612763565b602082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128098261211a565b91506128148361211a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612849576128486127cf565b5b828201905092915050565b7f42616c616e63652065786365656473206d61782077616c6c65742073697a6521600082015250565b600061288a602083612007565b915061289582612854565b602082019050919050565b600060208201905081810360008301526128b98161287d565b9050919050565b60006128cb8261211a565b91506128d68361211a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561290f5761290e6127cf565b5b828202905092915050565b60006129258261211a565b91506129308361211a565b925082821015612943576129426127cf565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006129aa602a83612007565b91506129b58261294e565b604082019050919050565b600060208201905081810360008301526129d98161299d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a4d816120ee565b92915050565b600060208284031215612a6957612a686120b7565b5b6000612a7784828501612a3e565b91505092915050565b6000819050919050565b6000612aa5612aa0612a9b84612a80565b6121c6565b61211a565b9050919050565b612ab581612a8a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612af0816120dc565b82525050565b6000612b028383612ae7565b60208301905092915050565b6000602082019050919050565b6000612b2682612abb565b612b308185612ac6565b9350612b3b83612ad7565b8060005b83811015612b6c578151612b538882612af6565b9750612b5e83612b0e565b925050600181019050612b3f565b5085935050505092915050565b600060a082019050612b8e6000830188612240565b612b9b6020830187612aac565b8181036040830152612bad8186612b1b565b9050612bbc60608301856122f4565b612bc96080830184612240565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c0d8261211a565b9150612c188361211a565b925082612c2857612c27612bd3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c69601b83612007565b9150612c7482612c33565b602082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602183612007565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f0f73d2a42c1f71a513c3690e0c36deff230d394262e11c746ed42ffa9cfe06b64736f6c634300080f0033

Deployed Bytecode Sourcemap

4111:11133:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6292:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7217:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5208:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6569:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6478:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5256:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6672:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1598:148;;;;;;;;;;;;;:::i;:::-;;1384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5398:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6383:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6818:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11766:68;;;;;;;;;;;;;:::i;:::-;;7025:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1754:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6292:83;6329:13;6362:5;;;;;;;;;;;;;;;;;6355:12;;6292:83;:::o;7217:193::-;7319:4;7341:39;7350:12;:10;:12::i;:::-;7364:7;7373:6;7341:8;:39::i;:::-;7398:4;7391:11;;7217:193;;;;:::o;5208:41::-;;;;;;;;;;;;;:::o;6569:95::-;6622:7;4667:16;6642:14;;6569:95;:::o;7418:446::-;7550:4;7567:36;7577:6;7585:9;7596:6;7567:9;:36::i;:::-;7614:220;7637:6;7658:12;:10;:12::i;:::-;7685:138;7741:6;7685:138;;;;;;;;;;;;;;;;;:11;:19;7697:6;7685:19;;;;;;;;;;;;;;;:33;7705:12;:10;:12::i;:::-;7685:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7614:8;:220::i;:::-;7852:4;7845:11;;7418:446;;;;;:::o;5462:50::-;;;;:::o;6478:83::-;6519:5;4340:2;6537:16;;6478:83;:::o;5256:28::-;;;;;;;;;;;;;:::o;6672:138::-;6738:7;6765:37;6785:7;:16;6793:7;6785:16;;;;;;;;;;;;;;;;6765:19;:37::i;:::-;6758:44;;6672:138;;;:::o;1598:148::-;1521:12;:10;:12::i;:::-;1511:22;;:6;;;;;;;;;;:22;;;1503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1705:1:::1;1668:40;;1689:6;::::0;::::1;;;;;;;;1668:40;;;;;;;;;;;;1736:1;1719:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1598:148::o:0;1384:79::-;1422:7;1449:6;;;;;;;;;;;1442:13;;1384:79;:::o;5398:57::-;;;;:::o;6383:87::-;6422:13;6455:7;;;;;;;;;;;;;;;;;6448:14;;6383:87;:::o;6818:199::-;6923:4;6945:42;6955:12;:10;:12::i;:::-;6969:9;6980:6;6945:9;:42::i;:::-;7005:4;6998:11;;6818:199;;;;:::o;11766:68::-;1521:12;:10;:12::i;:::-;1511:22;;:6;;;;;;;;;;:22;;;1503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11825:4:::1;11811:11;;:18;;;;;;;;;;;;;;;;;;11766:68::o:0;7025:184::-;7142:7;7174:11;:18;7186:5;7174:18;;;;;;;;;;;;;;;:27;7193:7;7174:27;;;;;;;;;;;;;;;;7167:34;;7025:184;;;;:::o;1754:244::-;1521:12;:10;:12::i;:::-;1511:22;;:6;;;;;;;;;;:22;;;1503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1863:1:::1;1843:22;;:8;:22;;::::0;1835:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1953:8;1924:38;;1945:6;::::0;::::1;;;;;;;;1924:38;;;;;;;;;;;;1982:8;1973:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1754:244:::0;:::o;174:98::-;227:7;254:10;247:17;;174:98;:::o;8555:369::-;8699:1;8682:19;;:5;:19;;;8674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8780:1;8761:21;;:7;:21;;;8753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8862:6;8832:11;:18;8844:5;8832:18;;;;;;;;;;;;;;;:27;8851:7;8832:27;;;;;;;;;;;;;;;:36;;;;8900:7;8884:32;;8893:5;8884:32;;;8909:6;8884:32;;;;;;:::i;:::-;;;;;;;;8555:369;;;:::o;8932:2211::-;9070:1;9054:18;;:4;:18;;;9046:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9147:1;9133:16;;:2;:16;;;9125:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9217:1;9208:6;:10;9200:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9289:7;:5;:7::i;:::-;9281:15;;:4;:15;;;;:32;;;;;9306:7;:5;:7::i;:::-;9300:13;;:2;:13;;;;9281:32;9277:1140;;;9371:11;;;;;;;;;;;9366:138;;9411:18;:24;9430:4;9411:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9439:18;:22;9458:2;9439:22;;;;;;;;;;;;;;;;;;;;;;;;;9411:50;9403:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9366:138;9529:13;;;;;;;;;;;9523:19;;:2;:19;;;9520:175;;9556:18;:22;9575:2;9556:22;;;;;;;;;;;;;;;;;;;;;;;;;9551:129;;9621:14;;9612:6;9596:13;9606:2;9596:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9588:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;9551:129;9520:175;9711:28;9742:24;9760:4;9742:9;:24::i;:::-;9711:55;;9781:12;9820:19;;9796:20;:43;;9781:58;;9905:2;9883:19;;:24;;;;:::i;:::-;9859:20;:48;9856:148;;9986:2;9964:19;;:24;;;;:::i;:::-;9941:47;;9856:148;10024:7;:18;;;;;10036:6;;;;;;;;;;;10035:7;10024:18;:43;;;;;10054:13;;;;;;;;;;;10046:21;;:4;:21;;;;10024:43;:58;;;;;10071:11;;;;;;;;;;;10024:58;:87;;;;;10087:18;:24;10106:4;10087:24;;;;;;;;;;;;;;;;;;;;;;;;;10086:25;10024:87;:114;;;;;10116:18;:22;10135:2;10116:22;;;;;;;;;;;;;;;;;;;;;;;;;10115:23;10024:114;10020:386;;;10159:38;10176:20;10159:16;:38::i;:::-;10216:26;10245:21;10216:50;;10310:1;10289:18;:22;10285:106;;;10336:35;10349:21;10336:12;:35::i;:::-;10285:106;10140:266;10020:386;9315:1102;;9277:1140;10429:12;10444:4;10429:19;;10493:18;:24;10512:4;10493:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10521:18;:22;10540:2;10521:22;;;;;;;;;;;;;;;;;;;;;;;;;10493:50;10492:102;;;;10557:13;;;;;;;;;;;10549:21;;:4;:21;;;;:44;;;;;10580:13;;;;;;;;;;;10574:19;;:2;:19;;;;10549:44;10492:102;10488:594;;;10621:5;10611:15;;10488:594;;;10704:13;;;;;;;;;;;10696:21;;:4;:21;;;:55;;;;;10735:15;;;;;;;;;;;10721:30;;:2;:30;;;;10696:55;10693:162;;;10784:14;;10772:9;:26;;;;10827:12;;10817:7;:22;;;;10693:162;10914:13;;;;;;;;;;;10908:19;;:2;:19;;;:55;;;;;10947:15;;;;;;;;;;;10931:32;;:4;:32;;;;10908:55;10904:165;;;10996:15;;10984:9;:27;;;;11040:13;;11030:7;:23;;;;10904:165;10488:594;11094:41;11109:4;11115:2;11119:6;11127:7;11094:14;:41::i;:::-;9035:2108;8932:2211;;;:::o;2362:224::-;2482:7;2515:1;2510;:6;;2518:12;2502:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2542:9;2558:1;2554;:5;;;;:::i;:::-;2542:17;;2577:1;2570:8;;;2362:224;;;;;:::o;7872:323::-;7967:7;8025;;8014;:18;;7992:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8113:19;8135:10;:8;:10::i;:::-;8113:32;;8163:24;8175:11;8163:7;:11;;:24;;;;:::i;:::-;8156:31;;;7872:323;;;:::o;11151:483::-;5562:4;5553:6;;:13;;;;;;;;;;;;;;;;;;11229:21:::1;11267:1;11253:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11229:40;;11298:4;11280;11285:1;11280:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11324:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11314:4;11319:1;11314:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11357:62;11374:4;11389:15;;;;;;;;;;;11407:11;11357:8;:62::i;:::-;11430:15;;;;;;;;;;;:66;;;11511:11;11537:1;11553:4;11580;11600:15;11430:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11218:416;5598:5:::0;5589:6;;:14;;;;;;;;;;;;;;;;;;11151:483;:::o;11642:119::-;5562:4;5553:6;;:13;;;;;;;;;;;;;;;;;;11719:16:::1;;;;;;;;;;;11711:34;;:42;11746:6;11711:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5598:5:::0;5589:6;;:14;;;;;;;;;;;;;;;;;;11642:119;:::o;11843:282::-;11999:7;11994:28;;12008:14;:12;:14::i;:::-;11994:28;12033:44;12051:6;12059:9;12070:6;12033:17;:44::i;:::-;12093:7;12088:29;;12102:15;:13;:15::i;:::-;12088:29;11843:282;;;;:::o;14810:164::-;14852:7;14873:15;14890;14909:19;:17;:19::i;:::-;14872:56;;;;14946:20;14958:7;14946;:11;;:20;;;;:::i;:::-;14939:27;;;;14810:164;:::o;2848:132::-;2906:7;2933:39;2937:1;2940;2933:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2926:46;;2848:132;;;;:::o;8203:219::-;8263:1;8250:9;;:14;:30;;;;;8279:1;8268:7;;:12;8250:30;8282:7;8246:43;8321:9;;8301:17;:29;;;;8359:7;;8341:15;:25;;;;8391:1;8379:9;:13;;;;8413:1;8403:7;:11;;;;8203:219;:::o;12133:610::-;12280:15;12310:23;12348:12;12375:23;12413:12;12440:13;12467:19;12478:7;12467:10;:19::i;:::-;12265:221;;;;;;;;;;;;12515:28;12535:7;12515;:15;12523:6;12515:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12497:7;:15;12505:6;12497:15;;;;;;;;;;;;;;;:46;;;;12575:39;12598:15;12575:7;:18;12583:9;12575:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12554:7;:18;12562:9;12554:18;;;;;;;;;;;;;;;:60;;;;12625:16;12635:5;12625:9;:16::i;:::-;12652:23;12664:4;12670;12652:11;:23::i;:::-;12708:9;12691:44;;12700:6;12691:44;;;12719:15;12691:44;;;;;;:::i;:::-;;;;;;;;12254:489;;;;;;12133:610;;;:::o;8430:117::-;8486:17;;8474:9;:29;;;;8524:15;;8514:7;:25;;;;8430:117::o;14982:257::-;15033:7;15042;15062:15;15080:7;;15062:25;;15098:15;4667:16;15098:25;;15148:20;4667:16;15148:7;;:11;;:20;;;;:::i;:::-;15138:7;:30;15134:61;;;15178:7;;4667:16;15170:25;;;;;;;;15134:61;15214:7;15223;15206:25;;;;;;14982:257;;;:::o;2988:223::-;3108:7;3140:1;3136;:5;3143:12;3128:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3167:9;3183:1;3179;:5;;;;:::i;:::-;3167:17;;3202:1;3195:8;;;2988:223;;;;;:::o;13168:615::-;13268:7;13290;13312;13334;13356;13378;13414:23;13439:12;13453:13;13483:40;13495:7;13504:9;;13515:7;;13483:11;:40::i;:::-;13413:110;;;;;;13534:19;13556:10;:8;:10::i;:::-;13534:32;;13578:15;13595:23;13620:12;13649:46;13661:7;13670:4;13676:5;13683:11;13649;:46::i;:::-;13577:118;;;;;;13714:7;13723:15;13740:4;13746:15;13763:4;13769:5;13706:69;;;;;;;;;;;;;;;;;;;13168:615;;;;;;;:::o;2218:136::-;2276:7;2303:43;2307:1;2310;2303:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2296:50;;2218:136;;;;:::o;2031:179::-;2089:7;2109:9;2125:1;2121;:5;;;;:::i;:::-;2109:17;;2150:1;2145;:6;;2137:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2201:1;2194:8;;;2031:179;;;;:::o;12751:211::-;12804:19;12826:10;:8;:10::i;:::-;12804:32;;12847:13;12863:22;12873:11;12863:5;:9;;:22;;;;:::i;:::-;12847:38;;12921:33;12948:5;12921:7;:22;12937:4;12921:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12896:7;:22;12912:4;12896:22;;;;;;;;;;;;;;;:58;;;;12793:169;;12751:211;:::o;12970:147::-;13048:17;13060:4;13048:7;;:11;;:17;;;;:::i;:::-;13038:7;:27;;;;13089:20;13104:4;13089:10;;:14;;:20;;;;:::i;:::-;13076:10;:33;;;;12970:147;;:::o;13791:469::-;13960:7;13982;14004;14039:12;14054:30;14080:3;14054:21;14066:8;14054:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14039:45;;14095:13;14111:28;14135:3;14111:19;14123:6;14111:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14095:44;;14150:23;14176:28;14198:5;14176:17;14188:4;14176:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14150:54;;14223:15;14240:4;14246:5;14215:37;;;;;;;;;13791:469;;;;;;;:::o;14268:534::-;14462:7;14484;14506;14541:15;14559:24;14571:11;14559:7;:11;;:24;;;;:::i;:::-;14541:42;;14594:12;14609:21;14618:11;14609:4;:8;;:21;;;;:::i;:::-;14594:36;;14641:13;14657:22;14667:11;14657:5;:9;;:22;;;;:::i;:::-;14641:38;;14690:23;14716:28;14738:5;14716:17;14728:4;14716:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14690:54;;14763:7;14772:15;14789:4;14755:39;;;;;;;;;;14268:534;;;;;;;;:::o;2594:246::-;2652:7;2681:1;2676;:6;2672:47;;2706:1;2699:8;;;;2672:47;2729:9;2745:1;2741;:5;;;;:::i;:::-;2729:17;;2774:1;2769;2765;:5;;;;:::i;:::-;:10;2757:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2831:1;2824:8;;;2594:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:329::-;6285:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:119;;;6340:79;;:::i;:::-;6302:119;6460:1;6485:53;6530:7;6521:6;6510:9;6506:22;6485:53;:::i;:::-;6475:63;;6431:117;6226:329;;;;:::o;6561:474::-;6629:6;6637;6686:2;6674:9;6665:7;6661:23;6657:32;6654:119;;;6692:79;;:::i;:::-;6654:119;6812:1;6837:53;6882:7;6873:6;6862:9;6858:22;6837:53;:::i;:::-;6827:63;;6783:117;6939:2;6965:53;7010:7;7001:6;6990:9;6986:22;6965:53;:::i;:::-;6955:63;;6910:118;6561:474;;;;;:::o;7041:182::-;7181:34;7177:1;7169:6;7165:14;7158:58;7041:182;:::o;7229:366::-;7371:3;7392:67;7456:2;7451:3;7392:67;:::i;:::-;7385:74;;7468:93;7557:3;7468:93;:::i;:::-;7586:2;7581:3;7577:12;7570:19;;7229:366;;;:::o;7601:419::-;7767:4;7805:2;7794:9;7790:18;7782:26;;7854:9;7848:4;7844:20;7840:1;7829:9;7825:17;7818:47;7882:131;8008:4;7882:131;:::i;:::-;7874:139;;7601:419;;;:::o;8026:225::-;8166:34;8162:1;8154:6;8150:14;8143:58;8235:8;8230:2;8222:6;8218:15;8211:33;8026:225;:::o;8257:366::-;8399:3;8420:67;8484:2;8479:3;8420:67;:::i;:::-;8413:74;;8496:93;8585:3;8496:93;:::i;:::-;8614:2;8609:3;8605:12;8598:19;;8257:366;;;:::o;8629:419::-;8795:4;8833:2;8822:9;8818:18;8810:26;;8882:9;8876:4;8872:20;8868:1;8857:9;8853:17;8846:47;8910:131;9036:4;8910:131;:::i;:::-;8902:139;;8629:419;;;:::o;9054:223::-;9194:34;9190:1;9182:6;9178:14;9171:58;9263:6;9258:2;9250:6;9246:15;9239:31;9054:223;:::o;9283:366::-;9425:3;9446:67;9510:2;9505:3;9446:67;:::i;:::-;9439:74;;9522:93;9611:3;9522:93;:::i;:::-;9640:2;9635:3;9631:12;9624:19;;9283:366;;;:::o;9655:419::-;9821:4;9859:2;9848:9;9844:18;9836:26;;9908:9;9902:4;9898:20;9894:1;9883:9;9879:17;9872:47;9936:131;10062:4;9936:131;:::i;:::-;9928:139;;9655:419;;;:::o;10080:221::-;10220:34;10216:1;10208:6;10204:14;10197:58;10289:4;10284:2;10276:6;10272:15;10265:29;10080:221;:::o;10307:366::-;10449:3;10470:67;10534:2;10529:3;10470:67;:::i;:::-;10463:74;;10546:93;10635:3;10546:93;:::i;:::-;10664:2;10659:3;10655:12;10648:19;;10307:366;;;:::o;10679:419::-;10845:4;10883:2;10872:9;10868:18;10860:26;;10932:9;10926:4;10922:20;10918:1;10907:9;10903:17;10896:47;10960:131;11086:4;10960:131;:::i;:::-;10952:139;;10679:419;;;:::o;11104:224::-;11244:34;11240:1;11232:6;11228:14;11221:58;11313:7;11308:2;11300:6;11296:15;11289:32;11104:224;:::o;11334:366::-;11476:3;11497:67;11561:2;11556:3;11497:67;:::i;:::-;11490:74;;11573:93;11662:3;11573:93;:::i;:::-;11691:2;11686:3;11682:12;11675:19;;11334:366;;;:::o;11706:419::-;11872:4;11910:2;11899:9;11895:18;11887:26;;11959:9;11953:4;11949:20;11945:1;11934:9;11930:17;11923:47;11987:131;12113:4;11987:131;:::i;:::-;11979:139;;11706:419;;;:::o;12131:222::-;12271:34;12267:1;12259:6;12255:14;12248:58;12340:5;12335:2;12327:6;12323:15;12316:30;12131:222;:::o;12359:366::-;12501:3;12522:67;12586:2;12581:3;12522:67;:::i;:::-;12515:74;;12598:93;12687:3;12598:93;:::i;:::-;12716:2;12711:3;12707:12;12700:19;;12359:366;;;:::o;12731:419::-;12897:4;12935:2;12924:9;12920:18;12912:26;;12984:9;12978:4;12974:20;12970:1;12959:9;12955:17;12948:47;13012:131;13138:4;13012:131;:::i;:::-;13004:139;;12731:419;;;:::o;13156:228::-;13296:34;13292:1;13284:6;13280:14;13273:58;13365:11;13360:2;13352:6;13348:15;13341:36;13156:228;:::o;13390:366::-;13532:3;13553:67;13617:2;13612:3;13553:67;:::i;:::-;13546:74;;13629:93;13718:3;13629:93;:::i;:::-;13747:2;13742:3;13738:12;13731:19;;13390:366;;;:::o;13762:419::-;13928:4;13966:2;13955:9;13951:18;13943:26;;14015:9;14009:4;14005:20;14001:1;13990:9;13986:17;13979:47;14043:131;14169:4;14043:131;:::i;:::-;14035:139;;13762:419;;;:::o;14187:172::-;14327:24;14323:1;14315:6;14311:14;14304:48;14187:172;:::o;14365:366::-;14507:3;14528:67;14592:2;14587:3;14528:67;:::i;:::-;14521:74;;14604:93;14693:3;14604:93;:::i;:::-;14722:2;14717:3;14713:12;14706:19;;14365:366;;;:::o;14737:419::-;14903:4;14941:2;14930:9;14926:18;14918:26;;14990:9;14984:4;14980:20;14976:1;14965:9;14961:17;14954:47;15018:131;15144:4;15018:131;:::i;:::-;15010:139;;14737:419;;;:::o;15162:180::-;15210:77;15207:1;15200:88;15307:4;15304:1;15297:15;15331:4;15328:1;15321:15;15348:305;15388:3;15407:20;15425:1;15407:20;:::i;:::-;15402:25;;15441:20;15459:1;15441:20;:::i;:::-;15436:25;;15595:1;15527:66;15523:74;15520:1;15517:81;15514:107;;;15601:18;;:::i;:::-;15514:107;15645:1;15642;15638:9;15631:16;;15348:305;;;;:::o;15659:182::-;15799:34;15795:1;15787:6;15783:14;15776:58;15659:182;:::o;15847:366::-;15989:3;16010:67;16074:2;16069:3;16010:67;:::i;:::-;16003:74;;16086:93;16175:3;16086:93;:::i;:::-;16204:2;16199:3;16195:12;16188:19;;15847:366;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:348::-;16684:7;16707:20;16725:1;16707:20;:::i;:::-;16702:25;;16741:20;16759:1;16741:20;:::i;:::-;16736:25;;16929:1;16861:66;16857:74;16854:1;16851:81;16846:1;16839:9;16832:17;16828:105;16825:131;;;16936:18;;:::i;:::-;16825:131;16984:1;16981;16977:9;16966:20;;16644:348;;;;:::o;16998:191::-;17038:4;17058:20;17076:1;17058:20;:::i;:::-;17053:25;;17092:20;17110:1;17092:20;:::i;:::-;17087:25;;17131:1;17128;17125:8;17122:34;;;17136:18;;:::i;:::-;17122:34;17181:1;17178;17174:9;17166:17;;16998:191;;;;:::o;17195:229::-;17335:34;17331:1;17323:6;17319:14;17312:58;17404:12;17399:2;17391:6;17387:15;17380:37;17195:229;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:180::-;18275:77;18272:1;18265:88;18372:4;18369:1;18362:15;18396:4;18393:1;18386:15;18413:180;18461:77;18458:1;18451:88;18558:4;18555:1;18548:15;18582:4;18579:1;18572:15;18599:143;18656:5;18687:6;18681:13;18672:22;;18703:33;18730:5;18703:33;:::i;:::-;18599:143;;;;:::o;18748:351::-;18818:6;18867:2;18855:9;18846:7;18842:23;18838:32;18835:119;;;18873:79;;:::i;:::-;18835:119;18993:1;19018:64;19074:7;19065:6;19054:9;19050:22;19018:64;:::i;:::-;19008:74;;18964:128;18748:351;;;;:::o;19105:85::-;19150:7;19179:5;19168:16;;19105:85;;;:::o;19196:158::-;19254:9;19287:61;19305:42;19314:32;19340:5;19314:32;:::i;:::-;19305:42;:::i;:::-;19287:61;:::i;:::-;19274:74;;19196:158;;;:::o;19360:147::-;19455:45;19494:5;19455:45;:::i;:::-;19450:3;19443:58;19360:147;;:::o;19513:114::-;19580:6;19614:5;19608:12;19598:22;;19513:114;;;:::o;19633:184::-;19732:11;19766:6;19761:3;19754:19;19806:4;19801:3;19797:14;19782:29;;19633:184;;;;:::o;19823:132::-;19890:4;19913:3;19905:11;;19943:4;19938:3;19934:14;19926:22;;19823:132;;;:::o;19961:108::-;20038:24;20056:5;20038:24;:::i;:::-;20033:3;20026:37;19961:108;;:::o;20075:179::-;20144:10;20165:46;20207:3;20199:6;20165:46;:::i;:::-;20243:4;20238:3;20234:14;20220:28;;20075:179;;;;:::o;20260:113::-;20330:4;20362;20357:3;20353:14;20345:22;;20260:113;;;:::o;20409:732::-;20528:3;20557:54;20605:5;20557:54;:::i;:::-;20627:86;20706:6;20701:3;20627:86;:::i;:::-;20620:93;;20737:56;20787:5;20737:56;:::i;:::-;20816:7;20847:1;20832:284;20857:6;20854:1;20851:13;20832:284;;;20933:6;20927:13;20960:63;21019:3;21004:13;20960:63;:::i;:::-;20953:70;;21046:60;21099:6;21046:60;:::i;:::-;21036:70;;20892:224;20879:1;20876;20872:9;20867:14;;20832:284;;;20836:14;21132:3;21125:10;;20533:608;;;20409:732;;;;:::o;21147:831::-;21410:4;21448:3;21437:9;21433:19;21425:27;;21462:71;21530:1;21519:9;21515:17;21506:6;21462:71;:::i;:::-;21543:80;21619:2;21608:9;21604:18;21595:6;21543:80;:::i;:::-;21670:9;21664:4;21660:20;21655:2;21644:9;21640:18;21633:48;21698:108;21801:4;21792:6;21698:108;:::i;:::-;21690:116;;21816:72;21884:2;21873:9;21869:18;21860:6;21816:72;:::i;:::-;21898:73;21966:3;21955:9;21951:19;21942:6;21898:73;:::i;:::-;21147:831;;;;;;;;:::o;21984:180::-;22032:77;22029:1;22022:88;22129:4;22126:1;22119:15;22153:4;22150:1;22143:15;22170:185;22210:1;22227:20;22245:1;22227:20;:::i;:::-;22222:25;;22261:20;22279:1;22261:20;:::i;:::-;22256:25;;22300:1;22290:35;;22305:18;;:::i;:::-;22290:35;22347:1;22344;22340:9;22335:14;;22170:185;;;;:::o;22361:177::-;22501:29;22497:1;22489:6;22485:14;22478:53;22361:177;:::o;22544:366::-;22686:3;22707:67;22771:2;22766:3;22707:67;:::i;:::-;22700:74;;22783:93;22872:3;22783:93;:::i;:::-;22901:2;22896:3;22892:12;22885:19;;22544:366;;;:::o;22916:419::-;23082:4;23120:2;23109:9;23105:18;23097:26;;23169:9;23163:4;23159:20;23155:1;23144:9;23140:17;23133:47;23197:131;23323:4;23197:131;:::i;:::-;23189:139;;22916:419;;;:::o;23341:220::-;23481:34;23477:1;23469:6;23465:14;23458:58;23550:3;23545:2;23537:6;23533:15;23526:28;23341:220;:::o;23567:366::-;23709:3;23730:67;23794:2;23789:3;23730:67;:::i;:::-;23723:74;;23806:93;23895:3;23806:93;:::i;:::-;23924:2;23919:3;23915:12;23908:19;;23567:366;;;:::o;23939:419::-;24105:4;24143:2;24132:9;24128:18;24120:26;;24192:9;24186:4;24182:20;24178:1;24167:9;24163:17;24156:47;24220:131;24346:4;24220:131;:::i;:::-;24212:139;;23939:419;;;:::o

Swarm Source

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