ETH Price: $2,730.03 (+0.64%)

Token

Make Ethereum Great Again (M.E.G.A)
 

Overview

Max Total Supply

1,000,000,000 M.E.G.A

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,599,110.984794282 M.E.G.A

Value
$0.00
0x794b6d68187e3b93042ca94f3378671646f4e0b1
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:
MEGA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-14
*/

/*
SPDX-License-Identifier: MIT

“MEGA: Make Ethereum Great Again! Imagine Vitalik Buterin working alongside unlikely allies 
like Elon Musk and President Donald Trump to supercharge Ethereum’s future. 
This unexpected powerhouse team would bring innovation, bold ideas, and perhaps a bit of controversy, 
setting the stage for Ethereum’s next chapter in the spotlight. From decentralized finance to global applications, 
MEGA is all about pushing boundaries and realizing Ethereum’s full potential!”

https://t.me/megatoken_eth
https://x.com/MEGAETHEREUM
https://makeethereumgreatagain.org

*/

pragma solidity 0.8.26;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

    uint256 private _initialBuyTax=21;
    uint256 private _initialSellTax=21;
    uint256 public _finalBuyTax=0;
    uint256 public _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 public _transferTax=0;
    uint256 public _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Make Ethereum Great Again";
    string private constant _symbol = unicode"M.E.G.A";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals; 
    uint256 public _maxWalletSize = 20000000 * 10**_decimals; 
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals; 
    uint256 public _maxTaxSwap= 16000000 * 10**_decimals; 
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[account];
    }

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

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

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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


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

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

     function rescueETH() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));

        if(tokenBalance>0){
            swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            sendETHToFee(ethBalance);
        }
    }

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

Contract Security Audit

Contract ABI

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

6080604052601560065560156007555f6008555f6009556019600a556019600b556019600c555f600d555f600e556009600a61003b91906105b5565b6301312d0061004a91906105ff565b600f556009600a61005b91906105b5565b6301312d0061006a91906105ff565b6010556009600a61007b91906105b5565b6298968061008991906105ff565b6011556009600a61009a91906105b5565b62f424006100a891906105ff565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016553480156100f2575f80fd5b505f61010261041660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101ac61041660201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f991906105b5565b633b9aca0061020891906105ff565b60015f61021961041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026961041d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039161041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ed91906105b5565b633b9aca006103fc91906105ff565b604051610409919061064f565b60405180910390a3610668565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c6578086048111156104a2576104a1610444565b5b60018516156104b15780820291505b80810290506104bf85610471565b9450610486565b94509492505050565b5f826104de5760019050610599565b816104eb575f9050610599565b8160018114610501576002811461050b5761053a565b6001915050610599565b60ff84111561051d5761051c610444565b5b8360020a91508482111561053457610533610444565b5b50610599565b5060208310610133831016604e8410600b841016171561056f5782820a90508381111561056a57610569610444565b5b610599565b61057c848484600161047d565b9250905081840481111561059357610592610444565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105bf826105a0565b91506105ca836105a9565b92506105f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104cf565b905092915050565b5f610609826105a0565b9150610614836105a0565b9250828202610622816105a0565b9150828204841483151761063957610638610444565b5b5092915050565b610649816105a0565b82525050565b5f6020820190506106625f830184610640565b92915050565b61329e806106755f395ff3fe608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063bf474bed11610063578063bf474bed146104ca578063c9567bf9146104f4578063dd62ed3e1461050a578063ec1f3f631461054657610170565b806395d89b411461043a578063a9059cbb14610464578063baeb7a7d146104a057610170565b806370a0823114610354578063715018a614610390578063751039fc146103a65780637d1db4a5146103bc5780638da5cb5b146103e65780638f9a55c01461041057610170565b806320800a001161012257806320800a001461026e57806323b872dd1461028457806327b1a8e9146102c0578063313ce567146102ea5780633ef947211461031457806351bc3c851461033e57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da578063109daa991461020457806317391e491461021a57806318160ddd1461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861056e565b6040516101959190612398565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612449565b6105ab565b6040516101d191906124a1565b60405180910390f35b3480156101e5575f80fd5b506101ee6105c8565b6040516101fb91906124c9565b60405180910390f35b34801561020f575f80fd5b506102186105ce565b005b348015610225575f80fd5b5061022e6106a2565b60405161023b91906124c9565b60405180910390f35b34801561024f575f80fd5b506102586106a8565b60405161026591906124c9565b60405180910390f35b348015610279575f80fd5b506102826106cb565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906124e2565b610762565b6040516102b791906124a1565b60405180910390f35b3480156102cb575f80fd5b506102d4610836565b6040516102e191906124c9565b60405180910390f35b3480156102f5575f80fd5b506102fe61083c565b60405161030b919061254d565b60405180910390f35b34801561031f575f80fd5b50610328610844565b60405161033591906124c9565b60405180910390f35b348015610349575f80fd5b5061035261084a565b005b34801561035f575f80fd5b5061037a60048036038101906103759190612566565b6108e1565b60405161038791906124c9565b60405180910390f35b34801561039b575f80fd5b506103a4610927565b005b3480156103b1575f80fd5b506103ba610a75565b005b3480156103c7575f80fd5b506103d0610ba4565b6040516103dd91906124c9565b60405180910390f35b3480156103f1575f80fd5b506103fa610baa565b60405161040791906125a0565b60405180910390f35b34801561041b575f80fd5b50610424610bd1565b60405161043191906124c9565b60405180910390f35b348015610445575f80fd5b5061044e610bd7565b60405161045b9190612398565b60405180910390f35b34801561046f575f80fd5b5061048a60048036038101906104859190612449565b610c14565b60405161049791906124a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610c31565b6040516104c191906124c9565b60405180910390f35b3480156104d5575f80fd5b506104de610c37565b6040516104eb91906124c9565b60405180910390f35b3480156104ff575f80fd5b50610508610c3d565b005b348015610515575f80fd5b50610530600480360381019061052b91906125b9565b61115c565b60405161053d91906124c9565b60405180910390f35b348015610551575f80fd5b5061056c600480360381019061056791906125f7565b6111de565b005b60606040518060400160405280601981526020017f4d616b6520457468657265756d20477265617420416761696e00000000000000815250905090565b5f6105be6105b761126a565b8484611271565b6001905092915050565b60125481565b6105d661126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106599061266c565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161069891906126cc565b60405180910390a1565b600d5481565b5f6009600a6106b79190612841565b633b9aca006106c6919061288b565b905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070b61126a565b73ffffffffffffffffffffffffffffffffffffffff161461072a575f80fd5b5f610734306108e1565b90505f8111156107485761074781611434565b5b5f4790505f81111561075e5761075d8161169f565b5b5050565b5f61076e848484611707565b61082b8461077a61126a565b610826856040518060600160405280602881526020016132416028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107dd61126a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e79092919063ffffffff16565b611271565b600190509392505050565b600e5481565b5f6009905090565b60095481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088a61126a565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f80fd5b5f6108b3306108e1565b90505f8111156108c7576108c681611434565b5b5f4790505f8111156108dd576108dc8161169f565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61092f61126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b29061266c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a7d61126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b009061266c565b60405180910390fd5b6009600a610b179190612841565b633b9aca00610b26919061288b565b600f819055506009600a610b3a9190612841565b633b9aca00610b49919061288b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b7e9190612841565b633b9aca00610b8d919061288b565b604051610b9a91906124c9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f4d2e452e472e4100000000000000000000000000000000000000000000000000815250905090565b5f610c27610c2061126a565b8484611707565b6001905092915050565b60085481565b60115481565b610c4561126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc89061266c565b60405180910390fd5b60148054906101000a900460ff1615610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690612916565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dbb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610da79190612841565b633b9aca00610db6919061288b565b611271565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e499190612948565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef39190612948565b6040518363ffffffff1660e01b8152600401610f10929190612973565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190612948565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fd7306108e1565b5f80610fe1610baa565b426040518863ffffffff1660e01b81526004016110039695949392919061299a565b60606040518083038185885af115801561101f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110449190612a0d565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110e4929190612a5d565b6020604051808303815f875af1158015611100573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111249190612aae565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661121e61126a565b73ffffffffffffffffffffffffffffffffffffffff161461123d575f80fd5b600854811115801561125157506009548111155b611259575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690612b49565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612bd7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142791906124c9565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561146b5761146a612bf5565b5b6040519080825280602002602001820160405280156114995781602001602082028036833780820191505090505b50905030815f815181106114b0576114af612c22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611554573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115789190612948565b8160018151811061158c5761158b612c22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115f23060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611271565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611654959493929190612d06565b5f604051808303815f87803b15801561166b575f80fd5b505af115801561167d573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611703573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90612dce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90612e5c565b60405180910390fd5b5f8111611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90612eea565b60405180910390fd5b5f61182e610baa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561189c575061186c610baa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e375760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611998575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6119a0575f80fd5b5f600e54036119e8576119e560646119d7600a54600e54116119c4576006546119c8565b6008545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b5f600e541115611a1d57611a1a6064611a0c600d548561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ac6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b19575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c1157600f54821115611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90612f52565b60405180910390fd5b60105482611b70856108e1565b611b7a9190612f70565b1115611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290612fed565b60405180910390fd5b611bf76064611be9600a54600e5411611bd657600654611bda565b6008545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b9050600e5f815480929190611c0b9061300b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c9957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cdd57611cda6064611ccc600b54600e5411611cb957600754611cbd565b6009545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b5f611ce7306108e1565b9050601460159054906101000a900460ff16158015611d52575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d6a5750601460169054906101000a900460ff165b8015611d77575060115481115b8015611d865750600c54600e54115b15611e3557601654431115611d9d575f6015819055505b600360155410611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd99061309c565b60405180910390fd5b611dff611dfa84611df584601254612209565b612209565b611434565b5f4790505f811115611e1557611e144761169f565b5b60155f815480929190611e279061300b565b919050555043601681905550505b505b5f811115611f3657611e8f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2d91906124c9565b60405180910390a35b611f868260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612029611fdd828461227e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120cc848661227e90919063ffffffff16565b6040516120d991906124c9565b60405180910390a350505050565b5f83831115829061212e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121259190612398565b60405180910390fd5b505f838561213c91906130ba565b9050809150509392505050565b5f808303612159575f90506121ba565b5f8284612166919061288b565b9050828482612175919061311a565b146121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131ba565b60405180910390fd5b809150505b92915050565b5f61220183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c7565b905092915050565b5f8183116122175782612219565b815b905092915050565b5f80828461222f9190612f70565b905083811015612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226b90613222565b60405180910390fd5b8091505092915050565b5f6122bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e7565b905092915050565b5f808311829061230d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123049190612398565b60405180910390fd5b505f838561231b919061311a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61236a82612328565b6123748185612332565b9350612384818560208601612342565b61238d81612350565b840191505092915050565b5f6020820190508181035f8301526123b08184612360565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123e5826123bc565b9050919050565b6123f5816123db565b81146123ff575f80fd5b50565b5f81359050612410816123ec565b92915050565b5f819050919050565b61242881612416565b8114612432575f80fd5b50565b5f813590506124438161241f565b92915050565b5f806040838503121561245f5761245e6123b8565b5b5f61246c85828601612402565b925050602061247d85828601612435565b9150509250929050565b5f8115159050919050565b61249b81612487565b82525050565b5f6020820190506124b45f830184612492565b92915050565b6124c381612416565b82525050565b5f6020820190506124dc5f8301846124ba565b92915050565b5f805f606084860312156124f9576124f86123b8565b5b5f61250686828701612402565b935050602061251786828701612402565b925050604061252886828701612435565b9150509250925092565b5f60ff82169050919050565b61254781612532565b82525050565b5f6020820190506125605f83018461253e565b92915050565b5f6020828403121561257b5761257a6123b8565b5b5f61258884828501612402565b91505092915050565b61259a816123db565b82525050565b5f6020820190506125b35f830184612591565b92915050565b5f80604083850312156125cf576125ce6123b8565b5b5f6125dc85828601612402565b92505060206125ed85828601612402565b9150509250929050565b5f6020828403121561260c5761260b6123b8565b5b5f61261984828501612435565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612656602083612332565b915061266182612622565b602082019050919050565b5f6020820190508181035f8301526126838161264a565b9050919050565b5f819050919050565b5f819050919050565b5f6126b66126b16126ac8461268a565b612693565b612416565b9050919050565b6126c68161269c565b82525050565b5f6020820190506126df5f8301846126bd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561276757808604811115612743576127426126e5565b5b60018516156127525780820291505b808102905061276085612712565b9450612727565b94509492505050565b5f8261277f576001905061283a565b8161278c575f905061283a565b81600181146127a257600281146127ac576127db565b600191505061283a565b60ff8411156127be576127bd6126e5565b5b8360020a9150848211156127d5576127d46126e5565b5b5061283a565b5060208310610133831016604e8410600b84101617156128105782820a90508381111561280b5761280a6126e5565b5b61283a565b61281d848484600161271e565b92509050818404811115612834576128336126e5565b5b81810290505b9392505050565b5f61284b82612416565b915061285683612532565b92506128837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612770565b905092915050565b5f61289582612416565b91506128a083612416565b92508282026128ae81612416565b915082820484148315176128c5576128c46126e5565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612900601783612332565b915061290b826128cc565b602082019050919050565b5f6020820190508181035f83015261292d816128f4565b9050919050565b5f81519050612942816123ec565b92915050565b5f6020828403121561295d5761295c6123b8565b5b5f61296a84828501612934565b91505092915050565b5f6040820190506129865f830185612591565b6129936020830184612591565b9392505050565b5f60c0820190506129ad5f830189612591565b6129ba60208301886124ba565b6129c760408301876126bd565b6129d460608301866126bd565b6129e16080830185612591565b6129ee60a08301846124ba565b979650505050505050565b5f81519050612a078161241f565b92915050565b5f805f60608486031215612a2457612a236123b8565b5b5f612a31868287016129f9565b9350506020612a42868287016129f9565b9250506040612a53868287016129f9565b9150509250925092565b5f604082019050612a705f830185612591565b612a7d60208301846124ba565b9392505050565b612a8d81612487565b8114612a97575f80fd5b50565b5f81519050612aa881612a84565b92915050565b5f60208284031215612ac357612ac26123b8565b5b5f612ad084828501612a9a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b33602483612332565b9150612b3e82612ad9565b604082019050919050565b5f6020820190508181035f830152612b6081612b27565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bc1602283612332565b9150612bcc82612b67565b604082019050919050565b5f6020820190508181035f830152612bee81612bb5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c81816123db565b82525050565b5f612c928383612c78565b60208301905092915050565b5f602082019050919050565b5f612cb482612c4f565b612cbe8185612c59565b9350612cc983612c69565b805f5b83811015612cf9578151612ce08882612c87565b9750612ceb83612c9e565b925050600181019050612ccc565b5085935050505092915050565b5f60a082019050612d195f8301886124ba565b612d2660208301876126bd565b8181036040830152612d388186612caa565b9050612d476060830185612591565b612d5460808301846124ba565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612db8602583612332565b9150612dc382612d5e565b604082019050919050565b5f6020820190508181035f830152612de581612dac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e46602383612332565b9150612e5182612dec565b604082019050919050565b5f6020820190508181035f830152612e7381612e3a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ed4602983612332565b9150612edf82612e7a565b604082019050919050565b5f6020820190508181035f830152612f0181612ec8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f3c601983612332565b9150612f4782612f08565b602082019050919050565b5f6020820190508181035f830152612f6981612f30565b9050919050565b5f612f7a82612416565b9150612f8583612416565b9250828201905080821115612f9d57612f9c6126e5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fd7601a83612332565b9150612fe282612fa3565b602082019050919050565b5f6020820190508181035f83015261300481612fcb565b9050919050565b5f61301582612416565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613047576130466126e5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613086601783612332565b915061309182613052565b602082019050919050565b5f6020820190508181035f8301526130b38161307a565b9050919050565b5f6130c482612416565b91506130cf83612416565b92508282039050818111156130e7576130e66126e5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61312482612416565b915061312f83612416565b92508261313f5761313e6130ed565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131a4602183612332565b91506131af8261314a565b604082019050919050565b5f6020820190508181035f8301526131d181613198565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61320c601b83612332565b9150613217826131d8565b602082019050919050565b5f6020820190508181035f83015261323981613200565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a56631e4dbfb7f5abbeb6a3243183bedf58a67d0f92c3fa3cc948b518488efe664736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063bf474bed11610063578063bf474bed146104ca578063c9567bf9146104f4578063dd62ed3e1461050a578063ec1f3f631461054657610170565b806395d89b411461043a578063a9059cbb14610464578063baeb7a7d146104a057610170565b806370a0823114610354578063715018a614610390578063751039fc146103a65780637d1db4a5146103bc5780638da5cb5b146103e65780638f9a55c01461041057610170565b806320800a001161012257806320800a001461026e57806323b872dd1461028457806327b1a8e9146102c0578063313ce567146102ea5780633ef947211461031457806351bc3c851461033e57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da578063109daa991461020457806317391e491461021a57806318160ddd1461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861056e565b6040516101959190612398565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612449565b6105ab565b6040516101d191906124a1565b60405180910390f35b3480156101e5575f80fd5b506101ee6105c8565b6040516101fb91906124c9565b60405180910390f35b34801561020f575f80fd5b506102186105ce565b005b348015610225575f80fd5b5061022e6106a2565b60405161023b91906124c9565b60405180910390f35b34801561024f575f80fd5b506102586106a8565b60405161026591906124c9565b60405180910390f35b348015610279575f80fd5b506102826106cb565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906124e2565b610762565b6040516102b791906124a1565b60405180910390f35b3480156102cb575f80fd5b506102d4610836565b6040516102e191906124c9565b60405180910390f35b3480156102f5575f80fd5b506102fe61083c565b60405161030b919061254d565b60405180910390f35b34801561031f575f80fd5b50610328610844565b60405161033591906124c9565b60405180910390f35b348015610349575f80fd5b5061035261084a565b005b34801561035f575f80fd5b5061037a60048036038101906103759190612566565b6108e1565b60405161038791906124c9565b60405180910390f35b34801561039b575f80fd5b506103a4610927565b005b3480156103b1575f80fd5b506103ba610a75565b005b3480156103c7575f80fd5b506103d0610ba4565b6040516103dd91906124c9565b60405180910390f35b3480156103f1575f80fd5b506103fa610baa565b60405161040791906125a0565b60405180910390f35b34801561041b575f80fd5b50610424610bd1565b60405161043191906124c9565b60405180910390f35b348015610445575f80fd5b5061044e610bd7565b60405161045b9190612398565b60405180910390f35b34801561046f575f80fd5b5061048a60048036038101906104859190612449565b610c14565b60405161049791906124a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610c31565b6040516104c191906124c9565b60405180910390f35b3480156104d5575f80fd5b506104de610c37565b6040516104eb91906124c9565b60405180910390f35b3480156104ff575f80fd5b50610508610c3d565b005b348015610515575f80fd5b50610530600480360381019061052b91906125b9565b61115c565b60405161053d91906124c9565b60405180910390f35b348015610551575f80fd5b5061056c600480360381019061056791906125f7565b6111de565b005b60606040518060400160405280601981526020017f4d616b6520457468657265756d20477265617420416761696e00000000000000815250905090565b5f6105be6105b761126a565b8484611271565b6001905092915050565b60125481565b6105d661126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106599061266c565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161069891906126cc565b60405180910390a1565b600d5481565b5f6009600a6106b79190612841565b633b9aca006106c6919061288b565b905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070b61126a565b73ffffffffffffffffffffffffffffffffffffffff161461072a575f80fd5b5f610734306108e1565b90505f8111156107485761074781611434565b5b5f4790505f81111561075e5761075d8161169f565b5b5050565b5f61076e848484611707565b61082b8461077a61126a565b610826856040518060600160405280602881526020016132416028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107dd61126a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e79092919063ffffffff16565b611271565b600190509392505050565b600e5481565b5f6009905090565b60095481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088a61126a565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f80fd5b5f6108b3306108e1565b90505f8111156108c7576108c681611434565b5b5f4790505f8111156108dd576108dc8161169f565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61092f61126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b29061266c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a7d61126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b009061266c565b60405180910390fd5b6009600a610b179190612841565b633b9aca00610b26919061288b565b600f819055506009600a610b3a9190612841565b633b9aca00610b49919061288b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b7e9190612841565b633b9aca00610b8d919061288b565b604051610b9a91906124c9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f4d2e452e472e4100000000000000000000000000000000000000000000000000815250905090565b5f610c27610c2061126a565b8484611707565b6001905092915050565b60085481565b60115481565b610c4561126a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc89061266c565b60405180910390fd5b60148054906101000a900460ff1615610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690612916565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dbb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610da79190612841565b633b9aca00610db6919061288b565b611271565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e499190612948565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef39190612948565b6040518363ffffffff1660e01b8152600401610f10929190612973565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190612948565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fd7306108e1565b5f80610fe1610baa565b426040518863ffffffff1660e01b81526004016110039695949392919061299a565b60606040518083038185885af115801561101f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110449190612a0d565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110e4929190612a5d565b6020604051808303815f875af1158015611100573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111249190612aae565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661121e61126a565b73ffffffffffffffffffffffffffffffffffffffff161461123d575f80fd5b600854811115801561125157506009548111155b611259575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690612b49565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612bd7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142791906124c9565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561146b5761146a612bf5565b5b6040519080825280602002602001820160405280156114995781602001602082028036833780820191505090505b50905030815f815181106114b0576114af612c22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611554573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115789190612948565b8160018151811061158c5761158b612c22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115f23060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611271565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611654959493929190612d06565b5f604051808303815f87803b15801561166b575f80fd5b505af115801561167d573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611703573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90612dce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90612e5c565b60405180910390fd5b5f8111611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90612eea565b60405180910390fd5b5f61182e610baa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561189c575061186c610baa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e375760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611998575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6119a0575f80fd5b5f600e54036119e8576119e560646119d7600a54600e54116119c4576006546119c8565b6008545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b5f600e541115611a1d57611a1a6064611a0c600d548561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ac6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b19575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c1157600f54821115611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90612f52565b60405180910390fd5b60105482611b70856108e1565b611b7a9190612f70565b1115611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290612fed565b60405180910390fd5b611bf76064611be9600a54600e5411611bd657600654611bda565b6008545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b9050600e5f815480929190611c0b9061300b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c9957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cdd57611cda6064611ccc600b54600e5411611cb957600754611cbd565b6009545b8561214990919063ffffffff16565b6121c090919063ffffffff16565b90505b5f611ce7306108e1565b9050601460159054906101000a900460ff16158015611d52575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d6a5750601460169054906101000a900460ff165b8015611d77575060115481115b8015611d865750600c54600e54115b15611e3557601654431115611d9d575f6015819055505b600360155410611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd99061309c565b60405180910390fd5b611dff611dfa84611df584601254612209565b612209565b611434565b5f4790505f811115611e1557611e144761169f565b5b60155f815480929190611e279061300b565b919050555043601681905550505b505b5f811115611f3657611e8f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2d91906124c9565b60405180910390a35b611f868260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612029611fdd828461227e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120cc848661227e90919063ffffffff16565b6040516120d991906124c9565b60405180910390a350505050565b5f83831115829061212e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121259190612398565b60405180910390fd5b505f838561213c91906130ba565b9050809150509392505050565b5f808303612159575f90506121ba565b5f8284612166919061288b565b9050828482612175919061311a565b146121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131ba565b60405180910390fd5b809150505b92915050565b5f61220183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c7565b905092915050565b5f8183116122175782612219565b815b905092915050565b5f80828461222f9190612f70565b905083811015612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226b90613222565b60405180910390fd5b8091505092915050565b5f6122bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e7565b905092915050565b5f808311829061230d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123049190612398565b60405180910390fd5b505f838561231b919061311a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61236a82612328565b6123748185612332565b9350612384818560208601612342565b61238d81612350565b840191505092915050565b5f6020820190508181035f8301526123b08184612360565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123e5826123bc565b9050919050565b6123f5816123db565b81146123ff575f80fd5b50565b5f81359050612410816123ec565b92915050565b5f819050919050565b61242881612416565b8114612432575f80fd5b50565b5f813590506124438161241f565b92915050565b5f806040838503121561245f5761245e6123b8565b5b5f61246c85828601612402565b925050602061247d85828601612435565b9150509250929050565b5f8115159050919050565b61249b81612487565b82525050565b5f6020820190506124b45f830184612492565b92915050565b6124c381612416565b82525050565b5f6020820190506124dc5f8301846124ba565b92915050565b5f805f606084860312156124f9576124f86123b8565b5b5f61250686828701612402565b935050602061251786828701612402565b925050604061252886828701612435565b9150509250925092565b5f60ff82169050919050565b61254781612532565b82525050565b5f6020820190506125605f83018461253e565b92915050565b5f6020828403121561257b5761257a6123b8565b5b5f61258884828501612402565b91505092915050565b61259a816123db565b82525050565b5f6020820190506125b35f830184612591565b92915050565b5f80604083850312156125cf576125ce6123b8565b5b5f6125dc85828601612402565b92505060206125ed85828601612402565b9150509250929050565b5f6020828403121561260c5761260b6123b8565b5b5f61261984828501612435565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612656602083612332565b915061266182612622565b602082019050919050565b5f6020820190508181035f8301526126838161264a565b9050919050565b5f819050919050565b5f819050919050565b5f6126b66126b16126ac8461268a565b612693565b612416565b9050919050565b6126c68161269c565b82525050565b5f6020820190506126df5f8301846126bd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561276757808604811115612743576127426126e5565b5b60018516156127525780820291505b808102905061276085612712565b9450612727565b94509492505050565b5f8261277f576001905061283a565b8161278c575f905061283a565b81600181146127a257600281146127ac576127db565b600191505061283a565b60ff8411156127be576127bd6126e5565b5b8360020a9150848211156127d5576127d46126e5565b5b5061283a565b5060208310610133831016604e8410600b84101617156128105782820a90508381111561280b5761280a6126e5565b5b61283a565b61281d848484600161271e565b92509050818404811115612834576128336126e5565b5b81810290505b9392505050565b5f61284b82612416565b915061285683612532565b92506128837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612770565b905092915050565b5f61289582612416565b91506128a083612416565b92508282026128ae81612416565b915082820484148315176128c5576128c46126e5565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612900601783612332565b915061290b826128cc565b602082019050919050565b5f6020820190508181035f83015261292d816128f4565b9050919050565b5f81519050612942816123ec565b92915050565b5f6020828403121561295d5761295c6123b8565b5b5f61296a84828501612934565b91505092915050565b5f6040820190506129865f830185612591565b6129936020830184612591565b9392505050565b5f60c0820190506129ad5f830189612591565b6129ba60208301886124ba565b6129c760408301876126bd565b6129d460608301866126bd565b6129e16080830185612591565b6129ee60a08301846124ba565b979650505050505050565b5f81519050612a078161241f565b92915050565b5f805f60608486031215612a2457612a236123b8565b5b5f612a31868287016129f9565b9350506020612a42868287016129f9565b9250506040612a53868287016129f9565b9150509250925092565b5f604082019050612a705f830185612591565b612a7d60208301846124ba565b9392505050565b612a8d81612487565b8114612a97575f80fd5b50565b5f81519050612aa881612a84565b92915050565b5f60208284031215612ac357612ac26123b8565b5b5f612ad084828501612a9a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b33602483612332565b9150612b3e82612ad9565b604082019050919050565b5f6020820190508181035f830152612b6081612b27565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bc1602283612332565b9150612bcc82612b67565b604082019050919050565b5f6020820190508181035f830152612bee81612bb5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c81816123db565b82525050565b5f612c928383612c78565b60208301905092915050565b5f602082019050919050565b5f612cb482612c4f565b612cbe8185612c59565b9350612cc983612c69565b805f5b83811015612cf9578151612ce08882612c87565b9750612ceb83612c9e565b925050600181019050612ccc565b5085935050505092915050565b5f60a082019050612d195f8301886124ba565b612d2660208301876126bd565b8181036040830152612d388186612caa565b9050612d476060830185612591565b612d5460808301846124ba565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612db8602583612332565b9150612dc382612d5e565b604082019050919050565b5f6020820190508181035f830152612de581612dac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e46602383612332565b9150612e5182612dec565b604082019050919050565b5f6020820190508181035f830152612e7381612e3a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ed4602983612332565b9150612edf82612e7a565b604082019050919050565b5f6020820190508181035f830152612f0181612ec8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f3c601983612332565b9150612f4782612f08565b602082019050919050565b5f6020820190508181035f830152612f6981612f30565b9050919050565b5f612f7a82612416565b9150612f8583612416565b9250828201905080821115612f9d57612f9c6126e5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fd7601a83612332565b9150612fe282612fa3565b602082019050919050565b5f6020820190508181035f83015261300481612fcb565b9050919050565b5f61301582612416565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613047576130466126e5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613086601783612332565b915061309182613052565b602082019050919050565b5f6020820190508181035f8301526130b38161307a565b9050919050565b5f6130c482612416565b91506130cf83612416565b92508282039050818111156130e7576130e66126e5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61312482612416565b915061312f83612416565b92508261313f5761313e6130ed565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131a4602183612332565b91506131af8261314a565b604082019050919050565b5f6020820190508181035f8301526131d181613198565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61320c601b83612332565b9150613217826131d8565b602082019050919050565b5f6020820190508181035f83015261323981613200565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a56631e4dbfb7f5abbeb6a3243183bedf58a67d0f92c3fa3cc948b518488efe664736f6c634300081a0033

Deployed Bytecode Sourcemap

4059:8792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6048:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6881:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5202:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10956:119;;;;;;;;;;;;;:::i;:::-;;4698:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6325:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:355;;;;;;;;;;;;;:::i;:::-;;7050:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4734:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6234:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4534:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12500:348;;;;;;;;;;;;;:::i;:::-;;6428:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3140:148;;;;;;;;;;;;;:::i;:::-;;10789:159;;;;;;;;;;;;;:::i;:::-;;5010:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2926:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5072:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6139:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6555:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4498:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5136:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11185:671;;;;;;;;;;;;;:::i;:::-;;6730:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11870:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6048:83;6085:13;6118:5;;;;;;;;;;;;;;;;;6111:12;;6048:83;:::o;6881:161::-;6956:4;6973:39;6982:12;:10;:12::i;:::-;6996:7;7005:6;6973:8;:39::i;:::-;7030:4;7023:11;;6881:161;;;;:::o;5202:52::-;;;;:::o;10956:119::-;3063:12;:10;:12::i;:::-;3053:22;;:6;;;;;;;;;;:22;;;3045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11029:1:::1;11014:12;:16;;;;11046:21;11065:1;11046:21;;;;;;:::i;:::-;;;;;;;;10956:119::o:0;4698:29::-;;;;:::o;6325:95::-;6378:7;4804:1;4860:2;:13;;;;:::i;:::-;4847:10;:26;;;;:::i;:::-;6398:14;;6325:95;:::o;12134:355::-;12197:10;;;;;;;;;;;12183:24;;:12;:10;:12::i;:::-;:24;;;12175:33;;;;;;12219:20;12240:24;12258:4;12240:9;:24::i;:::-;12219:45;;12293:1;12280:12;:14;12277:75;;;12310:30;12327:12;12310:16;:30::i;:::-;12277:75;12364:18;12383:21;12364:40;;12429:1;12418:10;:12;12415:67;;;12446:24;12459:10;12446:12;:24::i;:::-;12415:67;12164:325;;12134:355::o;7050:313::-;7148:4;7165:36;7175:6;7183:9;7194:6;7165:9;:36::i;:::-;7212:121;7221:6;7229:12;:10;:12::i;:::-;7243:89;7281:6;7243:89;;;;;;;;;;;;;;;;;:11;:19;7255:6;7243:19;;;;;;;;;;;;;;;:33;7263:12;:10;:12::i;:::-;7243:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7212:8;:121::i;:::-;7351:4;7344:11;;7050:313;;;;;:::o;4734:26::-;;;;:::o;6234:83::-;6275:5;4804:1;6293:16;;6234:83;:::o;4534:30::-;;;;:::o;12500:348::-;12564:10;;;;;;;;;;;12550:24;;:12;:10;:12::i;:::-;:24;;;12542:33;;;;;;12586:20;12607:24;12625:4;12607:9;:24::i;:::-;12586:45;;12658:1;12645:12;:14;12642:73;;;12673:30;12690:12;12673:16;:30::i;:::-;12642:73;12725:18;12744:21;12725:40;;12790:1;12779:10;:12;12776:65;;;12805:24;12818:10;12805:12;:24::i;:::-;12776:65;12531:317;;12500:348::o;6428:119::-;6494:7;6521:9;:18;6531:7;6521:18;;;;;;;;;;;;;;;;6514:25;;6428:119;;;:::o;3140:148::-;3063:12;:10;:12::i;:::-;3053:22;;:6;;;;;;;;;;:22;;;3045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:1:::1;3210:40;;3231:6;::::0;::::1;;;;;;;;3210:40;;;;;;;;;;;;3278:1;3261:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3140:148::o:0;10789:159::-;3063:12;:10;:12::i;:::-;3053:22;;:6;;;;;;;;;;:22;;;3045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4804:1:::1;4860:2;:13;;;;:::i;:::-;4847:10;:26;;;;:::i;:::-;10842:12;:22;;;;4804:1;4860:2;:13;;;;:::i;:::-;4847:10;:26;;;;:::i;:::-;10875:14;:22;;;;10913:27;4804:1;4860:2;:13;;;;:::i;:::-;4847:10;:26;;;;:::i;:::-;10913:27;;;;;;:::i;:::-;;;;;;;;10789:159::o:0;5010:54::-;;;;:::o;2926:79::-;2964:7;2991:6;;;;;;;;;;;2984:13;;2926:79;:::o;5072:56::-;;;;:::o;6139:87::-;6178:13;6211:7;;;;;;;;;;;;;;;;;6204:14;;6139:87;:::o;6555:167::-;6633:4;6650:42;6660:12;:10;:12::i;:::-;6674:9;6685:6;6650:9;:42::i;:::-;6710:4;6703:11;;6555:167;;;;:::o;4498:29::-;;;;:::o;5136:58::-;;;;:::o;11185:671::-;3063:12;:10;:12::i;:::-;3053:22;;:6;;;;;;;;;;:22;;;3045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11249:11:::1;::::0;::::1;;;;;;;;11248:12;11240:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11335:42;11298:15;;:80;;;;;;;;;;;;;;;;;;11389:58;11406:4;11421:15;;;;;;;;;;;4804:1;4860:2;:13;;;;:::i;:::-;4847:10;:26;;;;:::i;:::-;11389:8;:58::i;:::-;11492:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11474:55;;;11538:4;11545:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11474:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11458:13;;:110;;;;;;;;;;;;;;;;;;11579:15;;;;;;;;;;;:31;;;11618:21;11649:4;11655:24;11673:4;11655:9;:24::i;:::-;11680:1;11682::::0;11684:7:::1;:5;:7::i;:::-;11692:15;11579:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11726:13;;;;;;;;;;;11719:29;;;11757:15;;;;;;;;;;;11775:14;11719:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11815:4;11801:11;;:18;;;;;;;;;;;;;;;;;;11844:4;11830:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11185:671::o:0;6730:143::-;6811:7;6838:11;:18;6850:5;6838:18;;;;;;;;;;;;;;;:27;6857:7;6838:27;;;;;;;;;;;;;;;;6831:34;;6730:143;;;;:::o;11870:218::-;11945:10;;;;;;;;;;;11931:24;;:12;:10;:12::i;:::-;:24;;;11923:33;;;;;;11982:12;;11973:7;:21;;:47;;;;;12007:13;;11998:7;:22;;11973:47;11965:56;;;;;;12043:7;12030:12;:20;;;;12073:7;12059:13;:21;;;;11870:218;:::o;681:98::-;734:7;761:10;754:17;;681:98;:::o;7371:335::-;7481:1;7464:19;;:5;:19;;;7456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7562:1;7543:21;;:7;:21;;;7535:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:6;7614:11;:18;7626:5;7614:18;;;;;;;;;;;;;;;:27;7633:7;7614:27;;;;;;;;;;;;;;;:36;;;;7682:7;7666:32;;7675:5;7666:32;;;7691:6;7666:32;;;;;;:::i;:::-;;;;;;;;7371:335;;;:::o;10298:483::-;5666:4;5657:6;;:13;;;;;;;;;;;;;;;;;;10376:21:::1;10414:1;10400:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10376:40;;10445:4;10427;10432:1;10427:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10471:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10461:4;10466:1;10461:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10504:62;10521:4;10536:15;;;;;;;;;;;10554:11;10504:8;:62::i;:::-;10577:15;;;;;;;;;;;:66;;;10658:11;10684:1;10700:4;10727;10747:15;10577:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10365:416;5702:5:::0;5693:6;;:14;;;;;;;;;;;;;;;;;;10298:483;:::o;11083:92::-;11140:10;;;;;;;;;;;:19;;:27;11160:6;11140:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11083:92;:::o;7714:2468::-;7818:1;7802:18;;:4;:18;;;7794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7895:1;7881:16;;:2;:16;;;7873:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7965:1;7956:6;:10;7948:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8023:17;8065:7;:5;:7::i;:::-;8057:15;;:4;:15;;;;:32;;;;;8082:7;:5;:7::i;:::-;8076:13;;:2;:13;;;;8057:32;:52;;;;;8099:10;;;;;;;;;;;8093:16;;:2;:16;;;;8057:52;8053:1773;;;8135:4;:10;8140:4;8135:10;;;;;;;;;;;;;;;;;;;;;;;;;8134:11;:24;;;;;8150:4;:8;8155:2;8150:8;;;;;;;;;;;;;;;;;;;;;;;;;8149:9;8134:24;8126:33;;;;;;8190:1;8179:9;;:12;8176:139;;8223:76;8295:3;8223:67;8245:15;;8235:9;;:25;8234:55;;8275:14;;8234:55;;;8262:12;;8234:55;8223:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8211:88;;8176:139;8342:1;8332:9;;:11;8329:95;;;8375:33;8404:3;8375:24;8386:12;;8375:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8363:45;;8329:95;8452:13;;;;;;;;;;;8444:21;;:4;:21;;;:55;;;;;8483:15;;;;;;;;;;;8469:30;;:2;:30;;;;8444:55;:83;;;;;8505:18;:22;8524:2;8505:22;;;;;;;;;;;;;;;;;;;;;;;;;8503:24;8444:83;8440:420;;;8567:12;;8557:6;:22;;8549:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8662:14;;8652:6;8636:13;8646:2;8636:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8628:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:76;8810:3;8738:67;8760:15;;8750:9;;:25;8749:55;;8790:14;;8749:55;;;8777:12;;8749:55;8738:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8726:88;;8833:9;;:11;;;;;;;;;:::i;:::-;;;;;;8440:420;8885:13;;;;;;;;;;;8879:19;;:2;:19;;;:43;;;;;8917:4;8902:20;;:4;:20;;;;8879:43;8876:174;;;8955:79;9030:3;8955:70;8977:16;;8967:9;;:26;8966:58;;9009:15;;8966:58;;;8995:13;;8966:58;8955:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8943:91;;8876:174;9066:28;9097:24;9115:4;9097:9;:24::i;:::-;9066:55;;9141:6;;;;;;;;;;;9140:7;:30;;;;;9157:13;;;;;;;;;;;9151:19;;:2;:19;;;9140:30;:45;;;;;9174:11;;;;;;;;;;;9140:45;:89;;;;;9212:17;;9189:20;:40;9140:89;:123;;;;;9245:18;;9233:9;;:30;9140:123;9136:679;;;9303:13;;9288:12;:28;9284:90;;;9353:1;9341:9;:13;;;;9284:90;9412:1;9400:9;;:13;9392:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9460:69;9477:51;9481:6;9489:38;9493:20;9515:11;;9489:3;:38::i;:::-;9477:3;:51::i;:::-;9460:16;:69::i;:::-;9548:26;9577:21;9548:50;;9642:1;9621:18;:22;9617:106;;;9668:35;9681:21;9668:12;:35::i;:::-;9617:106;9741:9;;:11;;;;;;;;;:::i;:::-;;;;;;9787:12;9771:13;:28;;;;9265:550;9136:679;8111:1715;8053:1773;9851:1;9841:9;:11;9838:161;;;9891:39;9920:9;9891;:24;9909:4;9891:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9866:9;:24;9884:4;9866:24;;;;;;;;;;;;;;;:64;;;;9971:4;9948:39;;9957:4;9948:39;;;9977:9;9948:39;;;;;;:::i;:::-;;;;;;;;9838:161;10025:27;10045:6;10025:9;:15;10035:4;10025:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10009:9;:15;10019:4;10009:15;;;;;;;;;;;;;;;:43;;;;10077:40;10095:21;10106:9;10095:6;:10;;:21;;;;:::i;:::-;10077:9;:13;10087:2;10077:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10063:9;:13;10073:2;10063:13;;;;;;;;;;;;;;;:54;;;;10148:2;10133:41;;10142:4;10133:41;;;10152:21;10163:9;10152:6;:10;;:21;;;;:::i;:::-;10133:41;;;;;;:::i;:::-;;;;;;;;7783:2399;7714:2468;;;:::o;1818:190::-;1904:7;1937:1;1932;:6;;1940:12;1924:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1964:9;1980:1;1976;:5;;;;:::i;:::-;1964:17;;1999:1;1992:8;;;1818:190;;;;;:::o;2016:246::-;2074:7;2103:1;2098;:6;2094:47;;2128:1;2121:8;;;;2094:47;2151:9;2167:1;2163;:5;;;;:::i;:::-;2151:17;;2196:1;2191;2187;:5;;;;:::i;:::-;:10;2179:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2253:1;2246:8;;;2016:246;;;;;:::o;2270:132::-;2328:7;2355:39;2359:1;2362;2355:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2348:46;;2270:132;;;;:::o;10192:98::-;10249:7;10276:1;10274;:3;10273:9;;10281:1;10273:9;;;10279:1;10273:9;10266:16;;10192:98;;;;:::o;1487:179::-;1545:7;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1606:1;1601;:6;;1593:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1657:1;1650:8;;;1487:179;;;;:::o;1674:136::-;1732:7;1759:43;1763:1;1766;1759:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1752:50;;1674:136;;;;:::o;2410:189::-;2496:7;2528:1;2524;:5;2531:12;2516:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2555:9;2571:1;2567;:5;;;;:::i;:::-;2555:17;;2590:1;2583:8;;;2410:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:329::-;5972:6;6021:2;6009:9;6000:7;5996:23;5992:32;5989:119;;;6027:79;;:::i;:::-;5989:119;6147:1;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6118:117;5913:329;;;;:::o;6248:182::-;6388:34;6384:1;6376:6;6372:14;6365:58;6248:182;:::o;6436:366::-;6578:3;6599:67;6663:2;6658:3;6599:67;:::i;:::-;6592:74;;6675:93;6764:3;6675:93;:::i;:::-;6793:2;6788:3;6784:12;6777:19;;6436:366;;;:::o;6808:419::-;6974:4;7012:2;7001:9;6997:18;6989:26;;7061:9;7055:4;7051:20;7047:1;7036:9;7032:17;7025:47;7089:131;7215:4;7089:131;:::i;:::-;7081:139;;6808:419;;;:::o;7233:85::-;7278:7;7307:5;7296:16;;7233:85;;;:::o;7324:60::-;7352:3;7373:5;7366:12;;7324:60;;;:::o;7390:158::-;7448:9;7481:61;7499:42;7508:32;7534:5;7508:32;:::i;:::-;7499:42;:::i;:::-;7481:61;:::i;:::-;7468:74;;7390:158;;;:::o;7554:147::-;7649:45;7688:5;7649:45;:::i;:::-;7644:3;7637:58;7554:147;;:::o;7707:238::-;7808:4;7846:2;7835:9;7831:18;7823:26;;7859:79;7935:1;7924:9;7920:17;7911:6;7859:79;:::i;:::-;7707:238;;;;:::o;7951:180::-;7999:77;7996:1;7989:88;8096:4;8093:1;8086:15;8120:4;8117:1;8110:15;8137:102;8179:8;8226:5;8223:1;8219:13;8198:34;;8137:102;;;:::o;8245:848::-;8306:5;8313:4;8337:6;8328:15;;8361:5;8352:14;;8375:712;8396:1;8386:8;8383:15;8375:712;;;8491:4;8486:3;8482:14;8476:4;8473:24;8470:50;;;8500:18;;:::i;:::-;8470:50;8550:1;8540:8;8536:16;8533:451;;;8965:4;8958:5;8954:16;8945:25;;8533:451;9015:4;9009;9005:15;8997:23;;9045:32;9068:8;9045:32;:::i;:::-;9033:44;;8375:712;;;8245:848;;;;;;;:::o;9099:1073::-;9153:5;9344:8;9334:40;;9365:1;9356:10;;9367:5;;9334:40;9393:4;9383:36;;9410:1;9401:10;;9412:5;;9383:36;9479:4;9527:1;9522:27;;;;9563:1;9558:191;;;;9472:277;;9522:27;9540:1;9531:10;;9542:5;;;9558:191;9603:3;9593:8;9590:17;9587:43;;;9610:18;;:::i;:::-;9587:43;9659:8;9656:1;9652:16;9643:25;;9694:3;9687:5;9684:14;9681:40;;;9701:18;;:::i;:::-;9681:40;9734:5;;;9472:277;;9858:2;9848:8;9845:16;9839:3;9833:4;9830:13;9826:36;9808:2;9798:8;9795:16;9790:2;9784:4;9781:12;9777:35;9761:111;9758:246;;;9914:8;9908:4;9904:19;9895:28;;9949:3;9942:5;9939:14;9936:40;;;9956:18;;:::i;:::-;9936:40;9989:5;;9758:246;10029:42;10067:3;10057:8;10051:4;10048:1;10029:42;:::i;:::-;10014:57;;;;10103:4;10098:3;10094:14;10087:5;10084:25;10081:51;;;10112:18;;:::i;:::-;10081:51;10161:4;10154:5;10150:16;10141:25;;9099:1073;;;;;;:::o;10178:281::-;10236:5;10260:23;10278:4;10260:23;:::i;:::-;10252:31;;10304:25;10320:8;10304:25;:::i;:::-;10292:37;;10348:104;10385:66;10375:8;10369:4;10348:104;:::i;:::-;10339:113;;10178:281;;;;:::o;10465:410::-;10505:7;10528:20;10546:1;10528:20;:::i;:::-;10523:25;;10562:20;10580:1;10562:20;:::i;:::-;10557:25;;10617:1;10614;10610:9;10639:30;10657:11;10639:30;:::i;:::-;10628:41;;10818:1;10809:7;10805:15;10802:1;10799:22;10779:1;10772:9;10752:83;10729:139;;10848:18;;:::i;:::-;10729:139;10513:362;10465:410;;;;:::o;10881:173::-;11021:25;11017:1;11009:6;11005:14;10998:49;10881:173;:::o;11060:366::-;11202:3;11223:67;11287:2;11282:3;11223:67;:::i;:::-;11216:74;;11299:93;11388:3;11299:93;:::i;:::-;11417:2;11412:3;11408:12;11401:19;;11060:366;;;:::o;11432:419::-;11598:4;11636:2;11625:9;11621:18;11613:26;;11685:9;11679:4;11675:20;11671:1;11660:9;11656:17;11649:47;11713:131;11839:4;11713:131;:::i;:::-;11705:139;;11432:419;;;:::o;11857:143::-;11914:5;11945:6;11939:13;11930:22;;11961:33;11988:5;11961:33;:::i;:::-;11857:143;;;;:::o;12006:351::-;12076:6;12125:2;12113:9;12104:7;12100:23;12096:32;12093:119;;;12131:79;;:::i;:::-;12093:119;12251:1;12276:64;12332:7;12323:6;12312:9;12308:22;12276:64;:::i;:::-;12266:74;;12222:128;12006:351;;;;:::o;12363:332::-;12484:4;12522:2;12511:9;12507:18;12499:26;;12535:71;12603:1;12592:9;12588:17;12579:6;12535:71;:::i;:::-;12616:72;12684:2;12673:9;12669:18;12660:6;12616:72;:::i;:::-;12363:332;;;;;:::o;12701:807::-;12950:4;12988:3;12977:9;12973:19;12965:27;;13002:71;13070:1;13059:9;13055:17;13046:6;13002:71;:::i;:::-;13083:72;13151:2;13140:9;13136:18;13127:6;13083:72;:::i;:::-;13165:80;13241:2;13230:9;13226:18;13217:6;13165:80;:::i;:::-;13255;13331:2;13320:9;13316:18;13307:6;13255:80;:::i;:::-;13345:73;13413:3;13402:9;13398:19;13389:6;13345:73;:::i;:::-;13428;13496:3;13485:9;13481:19;13472:6;13428:73;:::i;:::-;12701:807;;;;;;;;;:::o;13514:143::-;13571:5;13602:6;13596:13;13587:22;;13618:33;13645:5;13618:33;:::i;:::-;13514:143;;;;:::o;13663:663::-;13751:6;13759;13767;13816:2;13804:9;13795:7;13791:23;13787:32;13784:119;;;13822:79;;:::i;:::-;13784:119;13942:1;13967:64;14023:7;14014:6;14003:9;13999:22;13967:64;:::i;:::-;13957:74;;13913:128;14080:2;14106:64;14162:7;14153:6;14142:9;14138:22;14106:64;:::i;:::-;14096:74;;14051:129;14219:2;14245:64;14301:7;14292:6;14281:9;14277:22;14245:64;:::i;:::-;14235:74;;14190:129;13663:663;;;;;:::o;14332:332::-;14453:4;14491:2;14480:9;14476:18;14468:26;;14504:71;14572:1;14561:9;14557:17;14548:6;14504:71;:::i;:::-;14585:72;14653:2;14642:9;14638:18;14629:6;14585:72;:::i;:::-;14332:332;;;;;:::o;14670:116::-;14740:21;14755:5;14740:21;:::i;:::-;14733:5;14730:32;14720:60;;14776:1;14773;14766:12;14720:60;14670:116;:::o;14792:137::-;14846:5;14877:6;14871:13;14862:22;;14893:30;14917:5;14893:30;:::i;:::-;14792:137;;;;:::o;14935:345::-;15002:6;15051:2;15039:9;15030:7;15026:23;15022:32;15019:119;;;15057:79;;:::i;:::-;15019:119;15177:1;15202:61;15255:7;15246:6;15235:9;15231:22;15202:61;:::i;:::-;15192:71;;15148:125;14935:345;;;;:::o;15286:223::-;15426:34;15422:1;15414:6;15410:14;15403:58;15495:6;15490:2;15482:6;15478:15;15471:31;15286:223;:::o;15515:366::-;15657:3;15678:67;15742:2;15737:3;15678:67;:::i;:::-;15671:74;;15754:93;15843:3;15754:93;:::i;:::-;15872:2;15867:3;15863:12;15856:19;;15515:366;;;:::o;15887:419::-;16053:4;16091:2;16080:9;16076:18;16068:26;;16140:9;16134:4;16130:20;16126:1;16115:9;16111:17;16104:47;16168:131;16294:4;16168:131;:::i;:::-;16160:139;;15887:419;;;:::o;16312:221::-;16452:34;16448:1;16440:6;16436:14;16429:58;16521:4;16516:2;16508:6;16504:15;16497:29;16312:221;:::o;16539:366::-;16681:3;16702:67;16766:2;16761:3;16702:67;:::i;:::-;16695:74;;16778:93;16867:3;16778:93;:::i;:::-;16896:2;16891:3;16887:12;16880:19;;16539:366;;;:::o;16911:419::-;17077:4;17115:2;17104:9;17100:18;17092:26;;17164:9;17158:4;17154:20;17150:1;17139:9;17135:17;17128:47;17192:131;17318:4;17192:131;:::i;:::-;17184:139;;16911:419;;;:::o;17336:180::-;17384:77;17381:1;17374:88;17481:4;17478:1;17471:15;17505:4;17502:1;17495:15;17522:180;17570:77;17567:1;17560:88;17667:4;17664:1;17657:15;17691:4;17688:1;17681:15;17708:114;17775:6;17809:5;17803:12;17793:22;;17708:114;;;:::o;17828:184::-;17927:11;17961:6;17956:3;17949:19;18001:4;17996:3;17992:14;17977:29;;17828:184;;;;:::o;18018:132::-;18085:4;18108:3;18100:11;;18138:4;18133:3;18129:14;18121:22;;18018:132;;;:::o;18156:108::-;18233:24;18251:5;18233:24;:::i;:::-;18228:3;18221:37;18156:108;;:::o;18270:179::-;18339:10;18360:46;18402:3;18394:6;18360:46;:::i;:::-;18438:4;18433:3;18429:14;18415:28;;18270:179;;;;:::o;18455:113::-;18525:4;18557;18552:3;18548:14;18540:22;;18455:113;;;:::o;18604:732::-;18723:3;18752:54;18800:5;18752:54;:::i;:::-;18822:86;18901:6;18896:3;18822:86;:::i;:::-;18815:93;;18932:56;18982:5;18932:56;:::i;:::-;19011:7;19042:1;19027:284;19052:6;19049:1;19046:13;19027:284;;;19128:6;19122:13;19155:63;19214:3;19199:13;19155:63;:::i;:::-;19148:70;;19241:60;19294:6;19241:60;:::i;:::-;19231:70;;19087:224;19074:1;19071;19067:9;19062:14;;19027:284;;;19031:14;19327:3;19320:10;;18728:608;;;18604:732;;;;:::o;19342:831::-;19605:4;19643:3;19632:9;19628:19;19620:27;;19657:71;19725:1;19714:9;19710:17;19701:6;19657:71;:::i;:::-;19738:80;19814:2;19803:9;19799:18;19790:6;19738:80;:::i;:::-;19865:9;19859:4;19855:20;19850:2;19839:9;19835:18;19828:48;19893:108;19996:4;19987:6;19893:108;:::i;:::-;19885:116;;20011:72;20079:2;20068:9;20064:18;20055:6;20011:72;:::i;:::-;20093:73;20161:3;20150:9;20146:19;20137:6;20093:73;:::i;:::-;19342:831;;;;;;;;:::o;20179:224::-;20319:34;20315:1;20307:6;20303:14;20296:58;20388:7;20383:2;20375:6;20371:15;20364:32;20179:224;:::o;20409:366::-;20551:3;20572:67;20636:2;20631:3;20572:67;:::i;:::-;20565:74;;20648:93;20737:3;20648:93;:::i;:::-;20766:2;20761:3;20757:12;20750:19;;20409:366;;;:::o;20781:419::-;20947:4;20985:2;20974:9;20970:18;20962:26;;21034:9;21028:4;21024:20;21020:1;21009:9;21005:17;20998:47;21062:131;21188:4;21062:131;:::i;:::-;21054:139;;20781:419;;;:::o;21206:222::-;21346:34;21342:1;21334:6;21330:14;21323:58;21415:5;21410:2;21402:6;21398:15;21391:30;21206:222;:::o;21434:366::-;21576:3;21597:67;21661:2;21656:3;21597:67;:::i;:::-;21590:74;;21673:93;21762:3;21673:93;:::i;:::-;21791:2;21786:3;21782:12;21775:19;;21434:366;;;:::o;21806:419::-;21972:4;22010:2;21999:9;21995:18;21987:26;;22059:9;22053:4;22049:20;22045:1;22034:9;22030:17;22023:47;22087:131;22213:4;22087:131;:::i;:::-;22079:139;;21806:419;;;:::o;22231:228::-;22371:34;22367:1;22359:6;22355:14;22348:58;22440:11;22435:2;22427:6;22423:15;22416:36;22231:228;:::o;22465:366::-;22607:3;22628:67;22692:2;22687:3;22628:67;:::i;:::-;22621:74;;22704:93;22793:3;22704:93;:::i;:::-;22822:2;22817:3;22813:12;22806:19;;22465:366;;;:::o;22837:419::-;23003:4;23041:2;23030:9;23026:18;23018:26;;23090:9;23084:4;23080:20;23076:1;23065:9;23061:17;23054:47;23118:131;23244:4;23118:131;:::i;:::-;23110:139;;22837:419;;;:::o;23262:175::-;23402:27;23398:1;23390:6;23386:14;23379:51;23262:175;:::o;23443:366::-;23585:3;23606:67;23670:2;23665:3;23606:67;:::i;:::-;23599:74;;23682:93;23771:3;23682:93;:::i;:::-;23800:2;23795:3;23791:12;23784:19;;23443:366;;;:::o;23815:419::-;23981:4;24019:2;24008:9;24004:18;23996:26;;24068:9;24062:4;24058:20;24054:1;24043:9;24039:17;24032:47;24096:131;24222:4;24096:131;:::i;:::-;24088:139;;23815:419;;;:::o;24240:191::-;24280:3;24299:20;24317:1;24299:20;:::i;:::-;24294:25;;24333:20;24351:1;24333:20;:::i;:::-;24328:25;;24376:1;24373;24369:9;24362:16;;24397:3;24394:1;24391:10;24388:36;;;24404:18;;:::i;:::-;24388:36;24240:191;;;;:::o;24437:176::-;24577:28;24573:1;24565:6;24561:14;24554:52;24437:176;:::o;24619:366::-;24761:3;24782:67;24846:2;24841:3;24782:67;:::i;:::-;24775:74;;24858:93;24947:3;24858:93;:::i;:::-;24976:2;24971:3;24967:12;24960:19;;24619:366;;;:::o;24991:419::-;25157:4;25195:2;25184:9;25180:18;25172:26;;25244:9;25238:4;25234:20;25230:1;25219:9;25215:17;25208:47;25272:131;25398:4;25272:131;:::i;:::-;25264:139;;24991:419;;;:::o;25416:233::-;25455:3;25478:24;25496:5;25478:24;:::i;:::-;25469:33;;25524:66;25517:5;25514:77;25511:103;;25594:18;;:::i;:::-;25511:103;25641:1;25634:5;25630:13;25623:20;;25416:233;;;:::o;25655:173::-;25795:25;25791:1;25783:6;25779:14;25772:49;25655:173;:::o;25834:366::-;25976:3;25997:67;26061:2;26056:3;25997:67;:::i;:::-;25990:74;;26073:93;26162:3;26073:93;:::i;:::-;26191:2;26186:3;26182:12;26175:19;;25834:366;;;:::o;26206:419::-;26372:4;26410:2;26399:9;26395:18;26387:26;;26459:9;26453:4;26449:20;26445:1;26434:9;26430:17;26423:47;26487:131;26613:4;26487:131;:::i;:::-;26479:139;;26206:419;;;:::o;26631:194::-;26671:4;26691:20;26709:1;26691:20;:::i;:::-;26686:25;;26725:20;26743:1;26725:20;:::i;:::-;26720:25;;26769:1;26766;26762:9;26754:17;;26793:1;26787:4;26784:11;26781:37;;;26798:18;;:::i;:::-;26781:37;26631:194;;;;:::o;26831:180::-;26879:77;26876:1;26869:88;26976:4;26973:1;26966:15;27000:4;26997:1;26990:15;27017:185;27057:1;27074:20;27092:1;27074:20;:::i;:::-;27069:25;;27108:20;27126:1;27108:20;:::i;:::-;27103:25;;27147:1;27137:35;;27152:18;;:::i;:::-;27137:35;27194:1;27191;27187:9;27182:14;;27017:185;;;;:::o;27208:220::-;27348:34;27344:1;27336:6;27332:14;27325:58;27417:3;27412:2;27404:6;27400:15;27393:28;27208:220;:::o;27434:366::-;27576:3;27597:67;27661:2;27656:3;27597:67;:::i;:::-;27590:74;;27673:93;27762:3;27673:93;:::i;:::-;27791:2;27786:3;27782:12;27775:19;;27434:366;;;:::o;27806:419::-;27972:4;28010:2;27999:9;27995:18;27987:26;;28059:9;28053:4;28049:20;28045:1;28034:9;28030:17;28023:47;28087:131;28213:4;28087:131;:::i;:::-;28079:139;;27806:419;;;:::o;28231:177::-;28371:29;28367:1;28359:6;28355:14;28348:53;28231:177;:::o;28414:366::-;28556:3;28577:67;28641:2;28636:3;28577:67;:::i;:::-;28570:74;;28653:93;28742:3;28653:93;:::i;:::-;28771:2;28766:3;28762:12;28755:19;;28414:366;;;:::o;28786:419::-;28952:4;28990:2;28979:9;28975:18;28967:26;;29039:9;29033:4;29029:20;29025:1;29014:9;29010:17;29003:47;29067:131;29193:4;29067:131;:::i;:::-;29059:139;;28786:419;;;:::o

Swarm Source

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