ETH Price: $3,111.06 (-0.69%)

Token

ERC20 ***
 

Overview

Max Total Supply

100,000,000 ERC20 ***

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 ERC20 ***

Value
$0.00
0x04bda42de3bc32abb00df46004204424d4cf8287
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:
GridAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-08
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

/*

     ____                   __  ______  ______     
    /\  _`\          __    /\ \/\  _  \/\__  _\    
    \ \ \L\_\  _ __ /\_\   \_\ \ \ \L\ \/_/\ \/    
     \ \ \L_L /\`'__\/\ \  /'_` \ \  __ \ \ \ \    
      \ \ \/, \ \ \/ \ \ \/\ \L\ \ \ \/\ \ \_\ \__ 
       \ \____/\ \_\  \ \_\ \___,_\ \_\ \_\/\_____\
        \/___/  \/_/   \/_/\/__,_ /\/_/\/_/\/_____/
                                                                 
                        
    Website:    https://gridai.cloud/
    Twitter:    https://twitter.com/gridai_cloud
    Telegram:   https://t.me/gridai_portal
    Documentation: https://docs.gridai.cloud/

*/

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 GridAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address payable private _revShare;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax =20;
    uint256 private constant _initialSellTax=20;
    uint256 private constant _reduceBuyTaxAt=35;
    uint256 private constant _reduceSellTaxAt=45;
    uint256 private constant _preventSwapBefore=40;
    uint256 private _finalBuyTax=10;
    uint256 private _finalSellTax=20;
    uint256 private _buyCount=0;
    uint256 private _countTax;
    
    string  private constant _name   = unicode"GridAI";
    string  private constant _symbol = unicode"GRID";
    uint8   private constant _decimals = 18;
    uint256 private constant _totalSupply = 100_000_000 * 10**_decimals;
    uint256 private constant _countTrigger = 8100 * 10**_decimals;
    uint256 public  constant _taxSwapThreshold = 200_000 * 10**_decimals;
    uint256 public  constant _maxTaxSwap = 1_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = 1_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 1_000_000 * 10**_decimals;   

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

    event FinalTax (uint256 _valueBuy, uint256 _valueSell);
    event TradingActive (bool _tradingOpen,bool _swapEnabled);
    event maxAmount(uint256 _value);

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

    constructor (address taxWallet, address revShare) {
        _taxWallet = payable(taxWallet);
        _revShare  = payable(revShare); 
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_revShare]  = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

    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) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

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

            if(!tradingOpen){
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

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

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ){
                uint256 getMinValue = (contractTokenBalance > _maxTaxSwap)?_maxTaxSwap:contractTokenBalance;
                swapTokensForEth((amount > getMinValue)?getMinValue:amount);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
                _countTax = 0;
            }
        }

        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 sendETHToFee(uint256 amount) private {
        uint256 tax = (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax;
        uint256 taxAmount;
        uint256 revShareAmount;

        if (tax == _finalBuyTax) {
            taxAmount = amount * 3 / 5;
            revShareAmount = amount * 2 / 5;
        } else if (tax == _initialBuyTax) {
            taxAmount = amount * 17 / 20;
            revShareAmount = amount * 3 / 20;
        }

        _taxWallet.transfer(taxAmount);
        _revShare.transfer(revShareAmount);
    }

    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 pair () external onlyOwner {
        require(!tradingOpen,"init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(_totalSupply.mul(_initialBuyTax).div(100));
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(
            uniswapV2Router.factory())
            .createPair(address(this), 
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function openTrading () external onlyOwner {
        require(!tradingOpen,"trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive (tradingOpen,swapEnabled);
    }

    function removeLimits () external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;
        emit maxAmount (_totalSupply);
    }
    
    function setFinalTax (uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 30 && _valueSell <= 30 && tradingOpen, "Exceeds value");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"},{"internalType":"address","name":"revShare","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setFinalTax","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"}]

6080604052600a60085560146009556000600a556012600a62000023919062000684565b620f4240620000339190620006d5565b600c556012600a62000046919062000684565b620f4240620000569190620006d5565b600d556000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055503480156200009c57600080fd5b5060405162003b8038038062003b808339818101604052810190620000c291906200078a565b6000620000d4620004b960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000204919062000684565b6305f5e100620002159190620006d5565b6001600062000229620004b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200027d620004c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200042a620004b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000489919062000684565b6305f5e1006200049a9190620006d5565b604051620004a99190620007e2565b60405180910390a35050620007ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005785780860481111562000550576200054f620004ea565b5b6001851615620005605780820291505b8081029050620005708562000519565b945062000530565b94509492505050565b60008262000593576001905062000666565b81620005a3576000905062000666565b8160018114620005bc5760028114620005c757620005fd565b600191505062000666565b60ff841115620005dc57620005db620004ea565b5b8360020a915084821115620005f657620005f5620004ea565b5b5062000666565b5060208310610133831016604e8410600b8410161715620006375782820a905083811115620006315762000630620004ea565b5b62000666565b62000646848484600162000526565b9250905081840481111562000660576200065f620004ea565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000691826200066d565b91506200069e8362000677565b9250620006cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000581565b905092915050565b6000620006e2826200066d565b9150620006ef836200066d565b9250828202620006ff816200066d565b91508282048414831517620007195762000718620004ea565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007528262000725565b9050919050565b620007648162000745565b81146200077057600080fd5b50565b600081519050620007848162000759565b92915050565b60008060408385031215620007a457620007a362000720565b5b6000620007b48582860162000773565b9250506020620007c78582860162000773565b9150509250929050565b620007dc816200066d565b82525050565b6000602082019050620007f96000830184620007d1565b92915050565b613371806200080f6000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a8aa1b3111610064578063a8aa1b311461038a578063a9059cbb146103a1578063bf474bed146103de578063c9567bf914610409578063dd62ed3e146104205761011f565b80637d1db4a5146102b557806382116718146102e05780638da5cb5b146103095780638f9a55c01461033457806395d89b411461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a614610287578063751039fc1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b6040516101469190612439565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906124f4565b61049a565b604051610183919061254f565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b6040516101ae9190612579565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612579565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612594565b6104fb565b604051610216919061254f565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b6040516102419190612603565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061261e565b6105dd565b60405161027e9190612579565b60405180910390f35b34801561029357600080fd5b5061029c610626565b005b3480156102aa57600080fd5b506102b3610779565b005b3480156102c157600080fd5b506102ca6108a9565b6040516102d79190612579565b60405180910390f35b3480156102ec57600080fd5b506103076004803603810190610302919061264b565b6108af565b005b34801561031557600080fd5b5061031e6109f8565b60405161032b919061269a565b60405180910390f35b34801561034057600080fd5b50610349610a21565b6040516103569190612579565b60405180910390f35b34801561036b57600080fd5b50610374610a27565b6040516103819190612439565b60405180910390f35b34801561039657600080fd5b5061039f610a64565b005b3480156103ad57600080fd5b506103c860048036038101906103c391906124f4565b610fc0565b6040516103d5919061254f565b60405180910390f35b3480156103ea57600080fd5b506103f3610fde565b6040516104009190612579565b60405180910390f35b34801561041557600080fd5b5061041e610ffd565b005b34801561042c57600080fd5b50610447600480360381019061044291906126b5565b611171565b6040516104549190612579565b60405180910390f35b60606040518060400160405280600681526020017f4772696441490000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a76111f8565b8484611200565b6001905092915050565b6012600a6104c69190612857565b620f42406104d491906128a2565b81565b60006012600a6104e79190612857565b6305f5e1006104f691906128a2565b905090565b6000610508848484611394565b6105c9846105146111f8565b6105c48560405180606001604052806028815260200161331460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a6111f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d859092919063ffffffff16565b611200565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61062e6111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612930565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107816111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590612930565b60405180910390fd5b6012600a61081c9190612857565b6305f5e10061082b91906128a2565b600c819055506012600a61083f9190612857565b6305f5e10061084e91906128a2565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6108839190612857565b6305f5e10061089291906128a2565b60405161089f9190612579565b60405180910390a1565b600c5481565b6108b76111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612930565b60405180910390fd5b601e82111580156109565750601e8111155b801561096e5750600e60009054906101000a900460ff165b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a49061299c565b60405180910390fd5b81600881905550806009819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516109ec9291906129bc565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f4752494400000000000000000000000000000000000000000000000000000000815250905090565b610a6c6111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af090612930565b60405180910390fd5b600e60009054906101000a900460ff1615610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612a31565b60405180910390fd5b6000610ba8610b916064610b8360146012600a610b669190612857565b6305f5e100610b7591906128a2565b611de990919063ffffffff16565b611e6390919063ffffffff16565b610b9a306105dd565b611ead90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4830600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c349190612857565b6305f5e100610c4391906128a2565b611200565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612a66565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190612a66565b6040518363ffffffff1660e01b8152600401610da3929190612a93565b6020604051808303816000875af1158015610dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de69190612a66565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610e726111f8565b426040518863ffffffff1660e01b8152600401610e9496959493929190612b01565b60606040518083038185885af1158015610eb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ed79190612b77565b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f79929190612bca565b6020604051808303816000875af1158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612c1f565b5050565b6000610fd4610fcd6111f8565b8484611394565b6001905092915050565b6012600a610fec9190612857565b62030d40610ffa91906128a2565b81565b6110056111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990612930565b60405180910390fd5b600e60009054906101000a900460ff16156110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d990612c98565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051611167929190612cb8565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113879190612579565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113fe5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612d99565b60405180910390fd5b60008111611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612e2b565b60405180910390fd5b600061148a6109f8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114f857506114c86109f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ac857600e60009054906101000a900460ff166115f257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115b25750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612e97565b60405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561169d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116f35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117ae57600c5482111561173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173490612f03565b60405180910390fd5b600d548261174a856105dd565b6117549190612f23565b1115611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90612fa3565b60405180910390fd5b600a60008154809291906117a890612fc3565b91905055505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561183757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611876576064611865602d600a5411611852576014611856565b6009545b84611de990919063ffffffff16565b61186f919061303a565b905061193b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118ff57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561193a57606461192d6023600a541161191a57601461191e565b6008545b84611de990919063ffffffff16565b611937919061303a565b90505b5b80600b600082825461194d9190612f23565b92505081905550600061195f306105dd565b9050600e60019054906101000a900460ff161580156119cb5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119e35750600e60029054906101000a900460ff165b8015611a0957506012600a6119f89190612857565b62030d40611a0691906128a2565b81115b8015611a1757506028600a54115b8015611a3e57506012600a611a2c9190612857565b611fa4611a3991906128a2565b600b54115b15611ac65760006012600a611a539190612857565b620f4240611a6191906128a2565b8211611a6d5781611a8a565b6012600a611a7b9190612857565b620f4240611a8991906128a2565b5b9050611aa3818511611a9c5784611a9e565b815b611ef7565b60004790506000811115611abb57611aba81612170565b5b6000600b8190555050505b505b6000811115611bcc57611b2381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc39190612579565b60405180910390a35b611c1e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ead90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc5611c778284611ead90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6a8486611ead90919063ffffffff16565b604051611d779190612579565b60405180910390a350505050565b6000838311158290611dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc49190612439565b60405180910390fd5b5060008385611ddc919061306b565b9050809150509392505050565b6000808303611dfb5760009050611e5d565b60008284611e0991906128a2565b9050828482611e18919061303a565b14611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613111565b60405180910390fd5b809150505b92915050565b6000611ea583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612346565b905092915050565b6000611eef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d85565b905092915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2f57611f2e613131565b5b604051908082528060200260200182016040528015611f5d5781602001602082028036833780820191505090505b5090503081600081518110611f7557611f74613160565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561201c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120409190612a66565b8160018151811061205457612053613160565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bb30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611200565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211f95949392919061324d565b600060405180830381600087803b15801561213957600080fd5b505af115801561214d573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b60006023600a5411612183576014612187565b6008545b905060008060085483036121d05760056003856121a491906128a2565b6121ae919061303a565b915060056002856121bf91906128a2565b6121c9919061303a565b9050612210565b6014830361220f5760146011856121e791906128a2565b6121f1919061303a565b9150601460038561220291906128a2565b61220c919061303a565b90505b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612278573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122e1573d6000803e3d6000fd5b5050505050565b60008082846122f79190612f23565b90508381101561233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906132f3565b60405180910390fd5b8091505092915050565b6000808311829061238d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123849190612439565b60405180910390fd5b506000838561239c919061303a565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123e35780820151818401526020810190506123c8565b60008484015250505050565b6000601f19601f8301169050919050565b600061240b826123a9565b61241581856123b4565b93506124258185602086016123c5565b61242e816123ef565b840191505092915050565b600060208201905081810360008301526124538184612400565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248b82612460565b9050919050565b61249b81612480565b81146124a657600080fd5b50565b6000813590506124b881612492565b92915050565b6000819050919050565b6124d1816124be565b81146124dc57600080fd5b50565b6000813590506124ee816124c8565b92915050565b6000806040838503121561250b5761250a61245b565b5b6000612519858286016124a9565b925050602061252a858286016124df565b9150509250929050565b60008115159050919050565b61254981612534565b82525050565b60006020820190506125646000830184612540565b92915050565b612573816124be565b82525050565b600060208201905061258e600083018461256a565b92915050565b6000806000606084860312156125ad576125ac61245b565b5b60006125bb868287016124a9565b93505060206125cc868287016124a9565b92505060406125dd868287016124df565b9150509250925092565b600060ff82169050919050565b6125fd816125e7565b82525050565b600060208201905061261860008301846125f4565b92915050565b6000602082840312156126345761263361245b565b5b6000612642848285016124a9565b91505092915050565b600080604083850312156126625761266161245b565b5b6000612670858286016124df565b9250506020612681858286016124df565b9150509250929050565b61269481612480565b82525050565b60006020820190506126af600083018461268b565b92915050565b600080604083850312156126cc576126cb61245b565b5b60006126da858286016124a9565b92505060206126eb858286016124a9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561277b57808604811115612757576127566126f5565b5b60018516156127665780820291505b808102905061277485612724565b945061273b565b94509492505050565b6000826127945760019050612850565b816127a25760009050612850565b81600181146127b857600281146127c2576127f1565b6001915050612850565b60ff8411156127d4576127d36126f5565b5b8360020a9150848211156127eb576127ea6126f5565b5b50612850565b5060208310610133831016604e8410600b84101617156128265782820a905083811115612821576128206126f5565b5b612850565b6128338484846001612731565b9250905081840481111561284a576128496126f5565b5b81810290505b9392505050565b6000612862826124be565b915061286d836125e7565b925061289a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612784565b905092915050565b60006128ad826124be565b91506128b8836124be565b92508282026128c6816124be565b915082820484148315176128dd576128dc6126f5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291a6020836123b4565b9150612925826128e4565b602082019050919050565b600060208201905081810360008301526129498161290d565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b6000612986600d836123b4565b915061299182612950565b602082019050919050565b600060208201905081810360008301526129b581612979565b9050919050565b60006040820190506129d1600083018561256a565b6129de602083018461256a565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612a1b6013836123b4565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a6081612492565b92915050565b600060208284031215612a7c57612a7b61245b565b5b6000612a8a84828501612a51565b91505092915050565b6000604082019050612aa8600083018561268b565b612ab5602083018461268b565b9392505050565b6000819050919050565b6000819050919050565b6000612aeb612ae6612ae184612abc565b612ac6565b6124be565b9050919050565b612afb81612ad0565b82525050565b600060c082019050612b16600083018961268b565b612b23602083018861256a565b612b306040830187612af2565b612b3d6060830186612af2565b612b4a608083018561268b565b612b5760a083018461256a565b979650505050505050565b600081519050612b71816124c8565b92915050565b600080600060608486031215612b9057612b8f61245b565b5b6000612b9e86828701612b62565b9350506020612baf86828701612b62565b9250506040612bc086828701612b62565b9150509250925092565b6000604082019050612bdf600083018561268b565b612bec602083018461256a565b9392505050565b612bfc81612534565b8114612c0757600080fd5b50565b600081519050612c1981612bf3565b92915050565b600060208284031215612c3557612c3461245b565b5b6000612c4384828501612c0a565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612c826014836123b4565b9150612c8d82612c4c565b602082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b6000604082019050612ccd6000830185612540565b612cda6020830184612540565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612d17601f836123b4565b9150612d2282612ce1565b602082019050919050565b60006020820190508181036000830152612d4681612d0a565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612d836020836123b4565b9150612d8e82612d4d565b602082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e156029836123b4565b9150612e2082612db9565b604082019050919050565b60006020820190508181036000830152612e4481612e08565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612e816014836123b4565b9150612e8c82612e4b565b602082019050919050565b60006020820190508181036000830152612eb081612e74565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eed6019836123b4565b9150612ef882612eb7565b602082019050919050565b60006020820190508181036000830152612f1c81612ee0565b9050919050565b6000612f2e826124be565b9150612f39836124be565b9250828201905080821115612f5157612f506126f5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f8d601a836123b4565b9150612f9882612f57565b602082019050919050565b60006020820190508181036000830152612fbc81612f80565b9050919050565b6000612fce826124be565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300057612fff6126f5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613045826124be565b9150613050836124be565b9250826130605761305f61300b565b5b828204905092915050565b6000613076826124be565b9150613081836124be565b9250828203905081811115613099576130986126f5565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fb6021836123b4565b91506131068261309f565b604082019050919050565b6000602082019050818103600083015261312a816130ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131c481612480565b82525050565b60006131d683836131bb565b60208301905092915050565b6000602082019050919050565b60006131fa8261318f565b613204818561319a565b935061320f836131ab565b8060005b8381101561324057815161322788826131ca565b9750613232836131e2565b925050600181019050613213565b5085935050505092915050565b600060a082019050613262600083018861256a565b61326f6020830187612af2565b818103604083015261328181866131ef565b9050613290606083018561268b565b61329d608083018461256a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132dd601b836123b4565b91506132e8826132a7565b602082019050919050565b6000602082019050818103600083015261330c816132d0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002dd26e16d92bd25d41089725b7893f0207166d367f94cb032659b053c51e5c164736f6c63430008130033000000000000000000000000248f6ea3c2cef3fe6ca6f7aee3ec1a1958d448210000000000000000000000005248537d8dbe30dab5123fe546eb7abfeb729bf7

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a8aa1b3111610064578063a8aa1b311461038a578063a9059cbb146103a1578063bf474bed146103de578063c9567bf914610409578063dd62ed3e146104205761011f565b80637d1db4a5146102b557806382116718146102e05780638da5cb5b146103095780638f9a55c01461033457806395d89b411461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a614610287578063751039fc1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b6040516101469190612439565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906124f4565b61049a565b604051610183919061254f565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b6040516101ae9190612579565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612579565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612594565b6104fb565b604051610216919061254f565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b6040516102419190612603565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061261e565b6105dd565b60405161027e9190612579565b60405180910390f35b34801561029357600080fd5b5061029c610626565b005b3480156102aa57600080fd5b506102b3610779565b005b3480156102c157600080fd5b506102ca6108a9565b6040516102d79190612579565b60405180910390f35b3480156102ec57600080fd5b506103076004803603810190610302919061264b565b6108af565b005b34801561031557600080fd5b5061031e6109f8565b60405161032b919061269a565b60405180910390f35b34801561034057600080fd5b50610349610a21565b6040516103569190612579565b60405180910390f35b34801561036b57600080fd5b50610374610a27565b6040516103819190612439565b60405180910390f35b34801561039657600080fd5b5061039f610a64565b005b3480156103ad57600080fd5b506103c860048036038101906103c391906124f4565b610fc0565b6040516103d5919061254f565b60405180910390f35b3480156103ea57600080fd5b506103f3610fde565b6040516104009190612579565b60405180910390f35b34801561041557600080fd5b5061041e610ffd565b005b34801561042c57600080fd5b50610447600480360381019061044291906126b5565b611171565b6040516104549190612579565b60405180910390f35b60606040518060400160405280600681526020017f4772696441490000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a76111f8565b8484611200565b6001905092915050565b6012600a6104c69190612857565b620f42406104d491906128a2565b81565b60006012600a6104e79190612857565b6305f5e1006104f691906128a2565b905090565b6000610508848484611394565b6105c9846105146111f8565b6105c48560405180606001604052806028815260200161331460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a6111f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d859092919063ffffffff16565b611200565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61062e6111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612930565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107816111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590612930565b60405180910390fd5b6012600a61081c9190612857565b6305f5e10061082b91906128a2565b600c819055506012600a61083f9190612857565b6305f5e10061084e91906128a2565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6108839190612857565b6305f5e10061089291906128a2565b60405161089f9190612579565b60405180910390a1565b600c5481565b6108b76111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612930565b60405180910390fd5b601e82111580156109565750601e8111155b801561096e5750600e60009054906101000a900460ff165b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a49061299c565b60405180910390fd5b81600881905550806009819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516109ec9291906129bc565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f4752494400000000000000000000000000000000000000000000000000000000815250905090565b610a6c6111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af090612930565b60405180910390fd5b600e60009054906101000a900460ff1615610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612a31565b60405180910390fd5b6000610ba8610b916064610b8360146012600a610b669190612857565b6305f5e100610b7591906128a2565b611de990919063ffffffff16565b611e6390919063ffffffff16565b610b9a306105dd565b611ead90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4830600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c349190612857565b6305f5e100610c4391906128a2565b611200565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612a66565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190612a66565b6040518363ffffffff1660e01b8152600401610da3929190612a93565b6020604051808303816000875af1158015610dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de69190612a66565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610e726111f8565b426040518863ffffffff1660e01b8152600401610e9496959493929190612b01565b60606040518083038185885af1158015610eb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ed79190612b77565b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f79929190612bca565b6020604051808303816000875af1158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612c1f565b5050565b6000610fd4610fcd6111f8565b8484611394565b6001905092915050565b6012600a610fec9190612857565b62030d40610ffa91906128a2565b81565b6110056111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990612930565b60405180910390fd5b600e60009054906101000a900460ff16156110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d990612c98565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051611167929190612cb8565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113879190612579565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113fe5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612d99565b60405180910390fd5b60008111611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612e2b565b60405180910390fd5b600061148a6109f8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114f857506114c86109f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ac857600e60009054906101000a900460ff166115f257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115b25750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612e97565b60405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561169d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116f35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117ae57600c5482111561173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173490612f03565b60405180910390fd5b600d548261174a856105dd565b6117549190612f23565b1115611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90612fa3565b60405180910390fd5b600a60008154809291906117a890612fc3565b91905055505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561183757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611876576064611865602d600a5411611852576014611856565b6009545b84611de990919063ffffffff16565b61186f919061303a565b905061193b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118ff57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561193a57606461192d6023600a541161191a57601461191e565b6008545b84611de990919063ffffffff16565b611937919061303a565b90505b5b80600b600082825461194d9190612f23565b92505081905550600061195f306105dd565b9050600e60019054906101000a900460ff161580156119cb5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119e35750600e60029054906101000a900460ff165b8015611a0957506012600a6119f89190612857565b62030d40611a0691906128a2565b81115b8015611a1757506028600a54115b8015611a3e57506012600a611a2c9190612857565b611fa4611a3991906128a2565b600b54115b15611ac65760006012600a611a539190612857565b620f4240611a6191906128a2565b8211611a6d5781611a8a565b6012600a611a7b9190612857565b620f4240611a8991906128a2565b5b9050611aa3818511611a9c5784611a9e565b815b611ef7565b60004790506000811115611abb57611aba81612170565b5b6000600b8190555050505b505b6000811115611bcc57611b2381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc39190612579565b60405180910390a35b611c1e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ead90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc5611c778284611ead90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6a8486611ead90919063ffffffff16565b604051611d779190612579565b60405180910390a350505050565b6000838311158290611dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc49190612439565b60405180910390fd5b5060008385611ddc919061306b565b9050809150509392505050565b6000808303611dfb5760009050611e5d565b60008284611e0991906128a2565b9050828482611e18919061303a565b14611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613111565b60405180910390fd5b809150505b92915050565b6000611ea583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612346565b905092915050565b6000611eef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d85565b905092915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2f57611f2e613131565b5b604051908082528060200260200182016040528015611f5d5781602001602082028036833780820191505090505b5090503081600081518110611f7557611f74613160565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561201c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120409190612a66565b8160018151811061205457612053613160565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bb30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611200565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211f95949392919061324d565b600060405180830381600087803b15801561213957600080fd5b505af115801561214d573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b60006023600a5411612183576014612187565b6008545b905060008060085483036121d05760056003856121a491906128a2565b6121ae919061303a565b915060056002856121bf91906128a2565b6121c9919061303a565b9050612210565b6014830361220f5760146011856121e791906128a2565b6121f1919061303a565b9150601460038561220291906128a2565b61220c919061303a565b90505b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612278573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122e1573d6000803e3d6000fd5b5050505050565b60008082846122f79190612f23565b90508381101561233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906132f3565b60405180910390fd5b8091505092915050565b6000808311829061238d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123849190612439565b60405180910390fd5b506000838561239c919061303a565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123e35780820151818401526020810190506123c8565b60008484015250505050565b6000601f19601f8301169050919050565b600061240b826123a9565b61241581856123b4565b93506124258185602086016123c5565b61242e816123ef565b840191505092915050565b600060208201905081810360008301526124538184612400565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248b82612460565b9050919050565b61249b81612480565b81146124a657600080fd5b50565b6000813590506124b881612492565b92915050565b6000819050919050565b6124d1816124be565b81146124dc57600080fd5b50565b6000813590506124ee816124c8565b92915050565b6000806040838503121561250b5761250a61245b565b5b6000612519858286016124a9565b925050602061252a858286016124df565b9150509250929050565b60008115159050919050565b61254981612534565b82525050565b60006020820190506125646000830184612540565b92915050565b612573816124be565b82525050565b600060208201905061258e600083018461256a565b92915050565b6000806000606084860312156125ad576125ac61245b565b5b60006125bb868287016124a9565b93505060206125cc868287016124a9565b92505060406125dd868287016124df565b9150509250925092565b600060ff82169050919050565b6125fd816125e7565b82525050565b600060208201905061261860008301846125f4565b92915050565b6000602082840312156126345761263361245b565b5b6000612642848285016124a9565b91505092915050565b600080604083850312156126625761266161245b565b5b6000612670858286016124df565b9250506020612681858286016124df565b9150509250929050565b61269481612480565b82525050565b60006020820190506126af600083018461268b565b92915050565b600080604083850312156126cc576126cb61245b565b5b60006126da858286016124a9565b92505060206126eb858286016124a9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561277b57808604811115612757576127566126f5565b5b60018516156127665780820291505b808102905061277485612724565b945061273b565b94509492505050565b6000826127945760019050612850565b816127a25760009050612850565b81600181146127b857600281146127c2576127f1565b6001915050612850565b60ff8411156127d4576127d36126f5565b5b8360020a9150848211156127eb576127ea6126f5565b5b50612850565b5060208310610133831016604e8410600b84101617156128265782820a905083811115612821576128206126f5565b5b612850565b6128338484846001612731565b9250905081840481111561284a576128496126f5565b5b81810290505b9392505050565b6000612862826124be565b915061286d836125e7565b925061289a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612784565b905092915050565b60006128ad826124be565b91506128b8836124be565b92508282026128c6816124be565b915082820484148315176128dd576128dc6126f5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291a6020836123b4565b9150612925826128e4565b602082019050919050565b600060208201905081810360008301526129498161290d565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b6000612986600d836123b4565b915061299182612950565b602082019050919050565b600060208201905081810360008301526129b581612979565b9050919050565b60006040820190506129d1600083018561256a565b6129de602083018461256a565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612a1b6013836123b4565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a6081612492565b92915050565b600060208284031215612a7c57612a7b61245b565b5b6000612a8a84828501612a51565b91505092915050565b6000604082019050612aa8600083018561268b565b612ab5602083018461268b565b9392505050565b6000819050919050565b6000819050919050565b6000612aeb612ae6612ae184612abc565b612ac6565b6124be565b9050919050565b612afb81612ad0565b82525050565b600060c082019050612b16600083018961268b565b612b23602083018861256a565b612b306040830187612af2565b612b3d6060830186612af2565b612b4a608083018561268b565b612b5760a083018461256a565b979650505050505050565b600081519050612b71816124c8565b92915050565b600080600060608486031215612b9057612b8f61245b565b5b6000612b9e86828701612b62565b9350506020612baf86828701612b62565b9250506040612bc086828701612b62565b9150509250925092565b6000604082019050612bdf600083018561268b565b612bec602083018461256a565b9392505050565b612bfc81612534565b8114612c0757600080fd5b50565b600081519050612c1981612bf3565b92915050565b600060208284031215612c3557612c3461245b565b5b6000612c4384828501612c0a565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612c826014836123b4565b9150612c8d82612c4c565b602082019050919050565b60006020820190508181036000830152612cb181612c75565b9050919050565b6000604082019050612ccd6000830185612540565b612cda6020830184612540565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612d17601f836123b4565b9150612d2282612ce1565b602082019050919050565b60006020820190508181036000830152612d4681612d0a565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612d836020836123b4565b9150612d8e82612d4d565b602082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e156029836123b4565b9150612e2082612db9565b604082019050919050565b60006020820190508181036000830152612e4481612e08565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612e816014836123b4565b9150612e8c82612e4b565b602082019050919050565b60006020820190508181036000830152612eb081612e74565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eed6019836123b4565b9150612ef882612eb7565b602082019050919050565b60006020820190508181036000830152612f1c81612ee0565b9050919050565b6000612f2e826124be565b9150612f39836124be565b9250828201905080821115612f5157612f506126f5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f8d601a836123b4565b9150612f9882612f57565b602082019050919050565b60006020820190508181036000830152612fbc81612f80565b9050919050565b6000612fce826124be565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300057612fff6126f5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613045826124be565b9150613050836124be565b9250826130605761305f61300b565b5b828204905092915050565b6000613076826124be565b9150613081836124be565b9250828203905081811115613099576130986126f5565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fb6021836123b4565b91506131068261309f565b604082019050919050565b6000602082019050818103600083015261312a816130ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131c481612480565b82525050565b60006131d683836131bb565b60208301905092915050565b6000602082019050919050565b60006131fa8261318f565b613204818561319a565b935061320f836131ab565b8060005b8381101561324057815161322788826131ca565b9750613232836131e2565b925050600181019050613213565b5085935050505092915050565b600060a082019050613262600083018861256a565b61326f6020830187612af2565b818103604083015261328181866131ef565b9050613290606083018561268b565b61329d608083018461256a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132dd601b836123b4565b91506132e8826132a7565b602082019050919050565b6000602082019050818103600083015261330c816132d0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002dd26e16d92bd25d41089725b7893f0207166d367f94cb032659b053c51e5c164736f6c63430008130033

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

000000000000000000000000248f6ea3c2cef3fe6ca6f7aee3ec1a1958d448210000000000000000000000005248537d8dbe30dab5123fe546eb7abfeb729bf7

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x248f6EA3c2cEF3fe6cA6F7AEe3eC1a1958d44821
Arg [1] : revShare (address): 0x5248537d8DbE30dAb5123FE546Eb7AbfEb729bF7

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000248f6ea3c2cef3fe6ca6f7aee3ec1a1958d44821
Arg [1] : 0000000000000000000000005248537d8dbe30dab5123fe546eb7abfeb729bf7


Deployed Bytecode Sourcemap

4125:8980:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6381:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7219:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5345:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6658:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7388:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6567:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6766:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:148;;;;;;;;;;;;;:::i;:::-;;12589:170;;;;;;;;;;;;;:::i;:::-;;5416:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12771:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2994:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5478:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6472:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11504:850;;;;;;;;;;;;;:::i;:::-;;6893:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5270:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12362:219;;;;;;;;;;;;;:::i;:::-;;7068:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:83;6418:13;6451:5;;;;;;;;;;;;;;;;;6444:12;;6381:83;:::o;7219:161::-;7294:4;7311:39;7320:12;:10;:12::i;:::-;7334:7;7343:6;7311:8;:39::i;:::-;7368:4;7361:11;;7219:161;;;;:::o;5345:64::-;5119:2;5396;:13;;;;:::i;:::-;5384:9;:25;;;;:::i;:::-;5345:64;:::o;6658:100::-;6711:7;5119:2;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;6731:19;;6658:100;:::o;7388:313::-;7486:4;7503:36;7513:6;7521:9;7532:6;7503:9;:36::i;:::-;7550:121;7559:6;7567:12;:10;:12::i;:::-;7581:89;7619:6;7581:89;;;;;;;;;;;;;;;;;:11;:19;7593:6;7581:19;;;;;;;;;;;;;;;:33;7601:12;:10;:12::i;:::-;7581:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7550:8;:121::i;:::-;7689:4;7682:11;;7388:313;;;;;:::o;6567:83::-;6608:5;5119:2;6626:16;;6567:83;:::o;6766:119::-;6832:7;6859:9;:18;6869:7;6859:18;;;;;;;;;;;;;;;;6852:25;;6766:119;;;:::o;3208:148::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3315:1:::1;3278:40;;3299:6;::::0;::::1;;;;;;;;3278:40;;;;;;;;;;;;3346:1;3329:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3208:148::o:0;12589:170::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5119:2:::1;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;12644:12;:27;;;;5119:2;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;12682:14;:29;;;;12727:24;5119:2;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;12727:24;;;;;;:::i;:::-;;;;;;;;12589:170::o:0;5416:55::-;;;;:::o;12771:294::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12883:2:::1;12870:9;:15;;:35;;;;;12903:2;12889:10;:16;;12870:35;:50;;;;;12909:11;;;;;;;;;;;12870:50;12862:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12964:9;12949:12;:24;;;;13000:10;12984:13;:26;;;;13026:31;13035:9;13046:10;13026:31;;;;;;;:::i;:::-;;;;;;;;12771:294:::0;;:::o;2994:79::-;3032:7;3059:6;;;;;;;;;;;3052:13;;2994:79;:::o;5478:57::-;;;;:::o;6472:87::-;6511:13;6544:7;;;;;;;;;;;;;;;;;6537:14;;6472:87;:::o;11504:850::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11560:11:::1;;;;;;;;;;;11559:12;11551:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11605:19;11627:71;11656:41;11693:3;11656:32;4608:2;5119;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;11656:16;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;11627:24;11645:4;11627:9;:24::i;:::-;:28;;:71;;;;:::i;:::-;11605:93;;11746:42;11709:15;;:80;;;;;;;;;;;;;;;;;;11800:63;11817:4;11832:15;;;;;;;;;;;5119:2;5182;:13;;;;:::i;:::-;5168:11;:27;;;;:::i;:::-;11800:8;:63::i;:::-;11922:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11890:83;;;11982:4;12003:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11890:146;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11874:13;;:162;;;;;;;;;;;;;;;;;;12047:15;;;;;;;;;;;:31;;;12086:21;12132:4;12152:11;12178:1;12194::::0;12210:12:::1;:10;:12::i;:::-;12237:15;12047:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12281:13;;;;;;;;;;;12274:29;;;12312:15;;;;;;;;;;;12330:14;12274:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11540:814;11504:850::o:0;6893:167::-;6971:4;6988:42;6998:12;:10;:12::i;:::-;7012:9;7023:6;6988:9;:42::i;:::-;7048:4;7041:11;;6893:167;;;;:::o;5270:68::-;5119:2;5325;:13;;;;:::i;:::-;5315:7;:23;;;;:::i;:::-;5270:68;:::o;12362:219::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12425:11:::1;;;;;;;;;;;12424:12;12416:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12485:4;12471:11;;:18;;;;;;;;;;;;;;;;;;12514:4;12500:11;;:18;;;;;;;;;;;;;;;;;;12534:39;12549:11;;;;;;;;;;;12561;;;;;;;;;;;12534:39;;;;;;;:::i;:::-;;;;;;;;12362:219::o:0;7068:143::-;7149:7;7176:11;:18;7188:5;7176:18;;;;;;;;;;;;;;;:27;7195:7;7176:27;;;;;;;;;;;;;;;;7169:34;;7068:143;;;;:::o;751:98::-;804:7;831:10;824:17;;751:98;:::o;7709:276::-;7819:1;7802:19;;:5;:19;;;;:44;;;;;7844:1;7825:21;;:7;:21;;;;7802:44;7794:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7923:6;7893:11;:18;7905:5;7893:18;;;;;;;;;;;;;;;:27;7912:7;7893:27;;;;;;;;;;;;;;;:36;;;;7961:7;7945:32;;7954:5;7945:32;;;7970:6;7945:32;;;;;;:::i;:::-;;;;;;;;7709:276;;;:::o;7993:2444::-;8097:1;8081:18;;:4;:18;;;;:38;;;;;8117:1;8103:16;;:2;:16;;;;8081:38;8073:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;8184:1;8175:6;:10;8167:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8242:17;8286:7;:5;:7::i;:::-;8278:15;;:4;:15;;;;:32;;;;;8303:7;:5;:7::i;:::-;8297:13;;:2;:13;;;;8278:32;8274:1807;;;8334:11;;;;;;;;;;;8330:195;;8395:18;:22;8414:2;8395:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8421:18;:24;8440:4;8421:24;;;;;;;;;;;;;;;;;;;;;;;;;8395:50;8365:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8330:195;8553:13;;;;;;;;;;;8545:21;;:4;:21;;;:55;;;;;8584:15;;;;;;;;;;;8570:30;;:2;:30;;;;8545:55;:83;;;;;8606:18;:22;8625:2;8606:22;;;;;;;;;;;;;;;;;;;;;;;;;8604:24;8545:83;8541:313;;;8668:12;;8658:6;:22;;8650:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8763:14;;8753:6;8737:13;8747:2;8737:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8729:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:9;;:11;;;;;;;;;:::i;:::-;;;;;;8541:313;8893:13;;;;;;;;;;;8887:19;;:2;:19;;;:43;;;;;8925:4;8910:20;;:4;:20;;;;8887:43;8882:362;;;9034:3;8963:70;4759:2;8975:9;;:26;8974:58;;4658:2;8974:58;;;9003:13;;8974:58;8963:6;:10;;:70;;;;:::i;:::-;:74;;;;:::i;:::-;8951:86;;8882:362;;;9089:13;;;;;;;;;;;9081:21;;:4;:21;;;:43;;;;;9119:4;9106:18;;:2;:18;;;;9081:43;9077:167;;;9225:3;9157:67;4708:2;9169:9;;:25;9168:55;;4608:2;9168:55;;;9196:12;;9168:55;9157:6;:10;;:67;;;;:::i;:::-;:71;;;;:::i;:::-;9145:83;;9077:167;8882:362;9273:9;9260;;:22;;;;;;;:::i;:::-;;;;;;;;9297:28;9328:24;9346:4;9328:9;:24::i;:::-;9297:55;;9390:6;;;;;;;;;;;9389:7;:48;;;;;9424:13;;;;;;;;;;;9418:19;;:2;:19;;;9389:48;:81;;;;;9459:11;;;;;;;;;;;9389:81;:143;;;;;5119:2;5325;:13;;;;:::i;:::-;5315:7;:23;;;;:::i;:::-;9492:20;:40;9389:143;:195;;;;;4812:2;9554:9;;:30;9389:195;:241;;;;;5119:2;5250;:13;;;;:::i;:::-;5243:4;:20;;;;:::i;:::-;9605:9;;:25;9389:241;9367:703;;;9664:19;5119:2;5396;:13;;;;:::i;:::-;5384:9;:25;;;;:::i;:::-;9687:20;:34;9686:69;;9735:20;9686:69;;;5119:2;5396;:13;;;;:::i;:::-;5384:9;:25;;;;:::i;:::-;9686:69;9664:91;;9774:59;9801:11;9792:6;:20;9791:41;;9826:6;9791:41;;;9814:11;9791:41;9774:16;:59::i;:::-;9852:26;9881:21;9852:50;;9945:1;9924:18;:22;9921:102;;;9971:32;9984:18;9971:12;:32::i;:::-;9921:102;10053:1;10041:9;:13;;;;9645:425;;9367:703;8312:1769;8274:1807;10106:1;10096:9;:11;10093:161;;;10146:39;10175:9;10146;:24;10164:4;10146:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10121:9;:24;10139:4;10121:24;;;;;;;;;;;;;;;:64;;;;10226:4;10203:39;;10212:4;10203:39;;;10232:9;10203:39;;;;;;:::i;:::-;;;;;;;;10093:161;10280:27;10300:6;10280:9;:15;10290:4;10280:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10264:9;:15;10274:4;10264:15;;;;;;;;;;;;;;;:43;;;;10332:40;10350:21;10361:9;10350:6;:10;;:21;;;;:::i;:::-;10332:9;:13;10342:2;10332:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10318:9;:13;10328:2;10318:13;;;;;;;;;;;;;;;:54;;;;10403:2;10388:41;;10397:4;10388:41;;;10407:21;10418:9;10407:6;:10;;:21;;;;:::i;:::-;10388:41;;;;;;:::i;:::-;;;;;;;;8062:2375;7993:2444;;;:::o;1888:190::-;1974:7;2007:1;2002;:6;;2010:12;1994:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2034:9;2050:1;2046;:5;;;;:::i;:::-;2034:17;;2069:1;2062:8;;;1888:190;;;;;:::o;2086:246::-;2144:7;2173:1;2168;:6;2164:47;;2198:1;2191:8;;;;2164:47;2221:9;2237:1;2233;:5;;;;:::i;:::-;2221:17;;2266:1;2261;2257;:5;;;;:::i;:::-;:10;2249:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2323:1;2316:8;;;2086:246;;;;;:::o;2340:132::-;2398:7;2425:39;2429:1;2432;2425:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2418:46;;2340:132;;;;:::o;1744:136::-;1802:7;1829:43;1833:1;1836;1829:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1822:50;;1744:136;;;;:::o;11013:483::-;5859:4;5850:6;;:13;;;;;;;;;;;;;;;;;;11091:21:::1;11129:1;11115:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11091:40;;11160:4;11142;11147:1;11142:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11186:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11176:4;11181:1;11176:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11219:62;11236:4;11251:15;;;;;;;;;;;11269:11;11219:8;:62::i;:::-;11292:15;;;;;;;;;;;:66;;;11373:11;11399:1;11415:4;11442;11462:15;11292:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11080:416;5895:5:::0;5886:6;;:14;;;;;;;;;;;;;;;;;;11013:483;:::o;10445:560::-;10502:11;4708:2;10517:9;;:27;10516:61;;4608:2;10516:61;;;10548:12;;10516:61;10502:75;;10588:17;10616:22;10662:12;;10655:3;:19;10651:259;;10716:1;10712;10703:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;10691:26;;10762:1;10758;10749:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;10732:31;;10651:259;;;4608:2;10785:3;:21;10781:129;;10849:2;10844;10835:6;:11;;;;:::i;:::-;:16;;;;:::i;:::-;10823:28;;10896:2;10892:1;10883:6;:10;;;;:::i;:::-;:15;;;;:::i;:::-;10866:32;;10781:129;10651:259;10922:10;;;;;;;;;;;:19;;:30;10942:9;10922:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10963:9;;;;;;;;;;;:18;;:34;10982:14;10963:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10491:514;;;10445:560;:::o;1557:179::-;1615:7;1635:9;1651:1;1647;:5;;;;:::i;:::-;1635:17;;1676:1;1671;:6;;1663:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:1;1720:8;;;1557:179;;;;:::o;2480:189::-;2566:7;2598:1;2594;:5;2601:12;2586:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2625:9;2641:1;2637;:5;;;;:::i;:::-;2625:17;;2660:1;2653:8;;;2480: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:163::-;10555:15;10551:1;10543:6;10539:14;10532:39;10415:163;:::o;10584:366::-;10726:3;10747:67;10811:2;10806:3;10747:67;:::i;:::-;10740:74;;10823:93;10912:3;10823:93;:::i;:::-;10941:2;10936:3;10932:12;10925:19;;10584:366;;;:::o;10956:419::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11209:9;11203:4;11199:20;11195:1;11184:9;11180:17;11173:47;11237:131;11363:4;11237:131;:::i;:::-;11229:139;;10956:419;;;:::o;11381:332::-;11502:4;11540:2;11529:9;11525:18;11517:26;;11553:71;11621:1;11610:9;11606:17;11597:6;11553:71;:::i;:::-;11634:72;11702:2;11691:9;11687:18;11678:6;11634:72;:::i;:::-;11381:332;;;;;:::o;11719:169::-;11859:21;11855:1;11847:6;11843:14;11836:45;11719:169;:::o;11894:366::-;12036:3;12057:67;12121:2;12116:3;12057:67;:::i;:::-;12050:74;;12133:93;12222:3;12133:93;:::i;:::-;12251:2;12246:3;12242:12;12235:19;;11894:366;;;:::o;12266:419::-;12432:4;12470:2;12459:9;12455:18;12447:26;;12519:9;12513:4;12509:20;12505:1;12494:9;12490:17;12483:47;12547:131;12673:4;12547:131;:::i;:::-;12539:139;;12266:419;;;:::o;12691:143::-;12748:5;12779:6;12773:13;12764:22;;12795:33;12822:5;12795:33;:::i;:::-;12691:143;;;;:::o;12840:351::-;12910:6;12959:2;12947:9;12938:7;12934:23;12930:32;12927:119;;;12965:79;;:::i;:::-;12927:119;13085:1;13110:64;13166:7;13157:6;13146:9;13142:22;13110:64;:::i;:::-;13100:74;;13056:128;12840:351;;;;:::o;13197:332::-;13318:4;13356:2;13345:9;13341:18;13333:26;;13369:71;13437:1;13426:9;13422:17;13413:6;13369:71;:::i;:::-;13450:72;13518:2;13507:9;13503:18;13494:6;13450:72;:::i;:::-;13197:332;;;;;:::o;13535:85::-;13580:7;13609:5;13598:16;;13535:85;;;:::o;13626:60::-;13654:3;13675:5;13668:12;;13626:60;;;:::o;13692:158::-;13750:9;13783:61;13801:42;13810:32;13836:5;13810:32;:::i;:::-;13801:42;:::i;:::-;13783:61;:::i;:::-;13770:74;;13692:158;;;:::o;13856:147::-;13951:45;13990:5;13951:45;:::i;:::-;13946:3;13939:58;13856:147;;:::o;14009:807::-;14258:4;14296:3;14285:9;14281:19;14273:27;;14310:71;14378:1;14367:9;14363:17;14354:6;14310:71;:::i;:::-;14391:72;14459:2;14448:9;14444:18;14435:6;14391:72;:::i;:::-;14473:80;14549:2;14538:9;14534:18;14525:6;14473:80;:::i;:::-;14563;14639:2;14628:9;14624:18;14615:6;14563:80;:::i;:::-;14653:73;14721:3;14710:9;14706:19;14697:6;14653:73;:::i;:::-;14736;14804:3;14793:9;14789:19;14780:6;14736:73;:::i;:::-;14009:807;;;;;;;;;:::o;14822:143::-;14879:5;14910:6;14904:13;14895:22;;14926:33;14953:5;14926:33;:::i;:::-;14822:143;;;;:::o;14971:663::-;15059:6;15067;15075;15124:2;15112:9;15103:7;15099:23;15095:32;15092:119;;;15130:79;;:::i;:::-;15092:119;15250:1;15275:64;15331:7;15322:6;15311:9;15307:22;15275:64;:::i;:::-;15265:74;;15221:128;15388:2;15414:64;15470:7;15461:6;15450:9;15446:22;15414:64;:::i;:::-;15404:74;;15359:129;15527:2;15553:64;15609:7;15600:6;15589:9;15585:22;15553:64;:::i;:::-;15543:74;;15498:129;14971:663;;;;;:::o;15640:332::-;15761:4;15799:2;15788:9;15784:18;15776:26;;15812:71;15880:1;15869:9;15865:17;15856:6;15812:71;:::i;:::-;15893:72;15961:2;15950:9;15946:18;15937:6;15893:72;:::i;:::-;15640:332;;;;;:::o;15978:116::-;16048:21;16063:5;16048:21;:::i;:::-;16041:5;16038:32;16028:60;;16084:1;16081;16074:12;16028:60;15978:116;:::o;16100:137::-;16154:5;16185:6;16179:13;16170:22;;16201:30;16225:5;16201:30;:::i;:::-;16100:137;;;;:::o;16243:345::-;16310:6;16359:2;16347:9;16338:7;16334:23;16330:32;16327:119;;;16365:79;;:::i;:::-;16327:119;16485:1;16510:61;16563:7;16554:6;16543:9;16539:22;16510:61;:::i;:::-;16500:71;;16456:125;16243:345;;;;:::o;16594:170::-;16734:22;16730:1;16722:6;16718:14;16711:46;16594:170;:::o;16770:366::-;16912:3;16933:67;16997:2;16992:3;16933:67;:::i;:::-;16926:74;;17009:93;17098:3;17009:93;:::i;:::-;17127:2;17122:3;17118:12;17111:19;;16770:366;;;:::o;17142:419::-;17308:4;17346:2;17335:9;17331:18;17323:26;;17395:9;17389:4;17385:20;17381:1;17370:9;17366:17;17359:47;17423:131;17549:4;17423:131;:::i;:::-;17415:139;;17142:419;;;:::o;17567:308::-;17676:4;17714:2;17703:9;17699:18;17691:26;;17727:65;17789:1;17778:9;17774:17;17765:6;17727:65;:::i;:::-;17802:66;17864:2;17853:9;17849:18;17840:6;17802:66;:::i;:::-;17567:308;;;;;:::o;17881:181::-;18021:33;18017:1;18009:6;18005:14;17998:57;17881:181;:::o;18068:366::-;18210:3;18231:67;18295:2;18290:3;18231:67;:::i;:::-;18224:74;;18307:93;18396:3;18307:93;:::i;:::-;18425:2;18420:3;18416:12;18409:19;;18068:366;;;:::o;18440:419::-;18606:4;18644:2;18633:9;18629:18;18621:26;;18693:9;18687:4;18683:20;18679:1;18668:9;18664:17;18657:47;18721:131;18847:4;18721:131;:::i;:::-;18713:139;;18440:419;;;:::o;18865:182::-;19005:34;19001:1;18993:6;18989:14;18982:58;18865:182;:::o;19053:366::-;19195:3;19216:67;19280:2;19275:3;19216:67;:::i;:::-;19209:74;;19292:93;19381:3;19292:93;:::i;:::-;19410:2;19405:3;19401:12;19394:19;;19053:366;;;:::o;19425:419::-;19591:4;19629:2;19618:9;19614:18;19606:26;;19678:9;19672:4;19668:20;19664:1;19653:9;19649:17;19642:47;19706:131;19832:4;19706:131;:::i;:::-;19698:139;;19425:419;;;:::o;19850:228::-;19990:34;19986:1;19978:6;19974:14;19967:58;20059:11;20054:2;20046:6;20042:15;20035:36;19850:228;:::o;20084:366::-;20226:3;20247:67;20311:2;20306:3;20247:67;:::i;:::-;20240:74;;20323:93;20412:3;20323:93;:::i;:::-;20441:2;20436:3;20432:12;20425:19;;20084:366;;;:::o;20456:419::-;20622:4;20660:2;20649:9;20645:18;20637:26;;20709:9;20703:4;20699:20;20695:1;20684:9;20680:17;20673:47;20737:131;20863:4;20737:131;:::i;:::-;20729:139;;20456:419;;;:::o;20881:170::-;21021:22;21017:1;21009:6;21005:14;20998:46;20881:170;:::o;21057:366::-;21199:3;21220:67;21284:2;21279:3;21220:67;:::i;:::-;21213:74;;21296:93;21385:3;21296:93;:::i;:::-;21414:2;21409:3;21405:12;21398:19;;21057:366;;;:::o;21429:419::-;21595:4;21633:2;21622:9;21618:18;21610:26;;21682:9;21676:4;21672:20;21668:1;21657:9;21653:17;21646:47;21710:131;21836:4;21710:131;:::i;:::-;21702:139;;21429:419;;;:::o;21854:175::-;21994:27;21990:1;21982:6;21978:14;21971:51;21854:175;:::o;22035:366::-;22177:3;22198:67;22262:2;22257:3;22198:67;:::i;:::-;22191:74;;22274:93;22363:3;22274:93;:::i;:::-;22392:2;22387:3;22383:12;22376:19;;22035:366;;;:::o;22407:419::-;22573:4;22611:2;22600:9;22596:18;22588:26;;22660:9;22654:4;22650:20;22646:1;22635:9;22631:17;22624:47;22688:131;22814:4;22688:131;:::i;:::-;22680:139;;22407:419;;;:::o;22832:191::-;22872:3;22891:20;22909:1;22891:20;:::i;:::-;22886:25;;22925:20;22943:1;22925:20;:::i;:::-;22920:25;;22968:1;22965;22961:9;22954:16;;22989:3;22986:1;22983:10;22980:36;;;22996:18;;:::i;:::-;22980:36;22832:191;;;;:::o;23029:176::-;23169:28;23165:1;23157:6;23153:14;23146:52;23029:176;:::o;23211:366::-;23353:3;23374:67;23438:2;23433:3;23374:67;:::i;:::-;23367:74;;23450:93;23539:3;23450:93;:::i;:::-;23568:2;23563:3;23559:12;23552:19;;23211:366;;;:::o;23583:419::-;23749:4;23787:2;23776:9;23772:18;23764:26;;23836:9;23830:4;23826:20;23822:1;23811:9;23807:17;23800:47;23864:131;23990:4;23864:131;:::i;:::-;23856:139;;23583:419;;;:::o;24008:233::-;24047:3;24070:24;24088:5;24070:24;:::i;:::-;24061:33;;24116:66;24109:5;24106:77;24103:103;;24186:18;;:::i;:::-;24103:103;24233:1;24226:5;24222:13;24215:20;;24008:233;;;:::o;24247:180::-;24295:77;24292:1;24285:88;24392:4;24389:1;24382:15;24416:4;24413:1;24406:15;24433:185;24473:1;24490:20;24508:1;24490:20;:::i;:::-;24485:25;;24524:20;24542:1;24524:20;:::i;:::-;24519:25;;24563:1;24553:35;;24568:18;;:::i;:::-;24553:35;24610:1;24607;24603:9;24598:14;;24433:185;;;;:::o;24624:194::-;24664:4;24684:20;24702:1;24684:20;:::i;:::-;24679:25;;24718:20;24736:1;24718:20;:::i;:::-;24713:25;;24762:1;24759;24755:9;24747:17;;24786:1;24780:4;24777:11;24774:37;;;24791:18;;:::i;:::-;24774:37;24624:194;;;;:::o;24824:220::-;24964:34;24960:1;24952:6;24948:14;24941:58;25033:3;25028:2;25020:6;25016:15;25009:28;24824:220;:::o;25050:366::-;25192:3;25213:67;25277:2;25272:3;25213:67;:::i;:::-;25206:74;;25289:93;25378:3;25289:93;:::i;:::-;25407:2;25402:3;25398:12;25391:19;;25050:366;;;:::o;25422:419::-;25588:4;25626:2;25615:9;25611:18;25603:26;;25675:9;25669:4;25665:20;25661:1;25650:9;25646:17;25639:47;25703:131;25829:4;25703:131;:::i;:::-;25695:139;;25422:419;;;:::o;25847:180::-;25895:77;25892:1;25885:88;25992:4;25989:1;25982:15;26016:4;26013:1;26006:15;26033:180;26081:77;26078:1;26071:88;26178:4;26175:1;26168:15;26202:4;26199:1;26192:15;26219:114;26286:6;26320:5;26314:12;26304:22;;26219:114;;;:::o;26339:184::-;26438:11;26472:6;26467:3;26460:19;26512:4;26507:3;26503:14;26488:29;;26339:184;;;;:::o;26529:132::-;26596:4;26619:3;26611:11;;26649:4;26644:3;26640:14;26632:22;;26529:132;;;:::o;26667:108::-;26744:24;26762:5;26744:24;:::i;:::-;26739:3;26732:37;26667:108;;:::o;26781:179::-;26850:10;26871:46;26913:3;26905:6;26871:46;:::i;:::-;26949:4;26944:3;26940:14;26926:28;;26781:179;;;;:::o;26966:113::-;27036:4;27068;27063:3;27059:14;27051:22;;26966:113;;;:::o;27115:732::-;27234:3;27263:54;27311:5;27263:54;:::i;:::-;27333:86;27412:6;27407:3;27333:86;:::i;:::-;27326:93;;27443:56;27493:5;27443:56;:::i;:::-;27522:7;27553:1;27538:284;27563:6;27560:1;27557:13;27538:284;;;27639:6;27633:13;27666:63;27725:3;27710:13;27666:63;:::i;:::-;27659:70;;27752:60;27805:6;27752:60;:::i;:::-;27742:70;;27598:224;27585:1;27582;27578:9;27573:14;;27538:284;;;27542:14;27838:3;27831:10;;27239:608;;;27115:732;;;;:::o;27853:831::-;28116:4;28154:3;28143:9;28139:19;28131:27;;28168:71;28236:1;28225:9;28221:17;28212:6;28168:71;:::i;:::-;28249:80;28325:2;28314:9;28310:18;28301:6;28249:80;:::i;:::-;28376:9;28370:4;28366:20;28361:2;28350:9;28346:18;28339:48;28404:108;28507:4;28498:6;28404:108;:::i;:::-;28396:116;;28522:72;28590:2;28579:9;28575:18;28566:6;28522:72;:::i;:::-;28604:73;28672:3;28661:9;28657:19;28648:6;28604:73;:::i;:::-;27853:831;;;;;;;;:::o;28690:177::-;28830:29;28826:1;28818:6;28814:14;28807:53;28690:177;:::o;28873:366::-;29015:3;29036:67;29100:2;29095:3;29036:67;:::i;:::-;29029:74;;29112:93;29201:3;29112:93;:::i;:::-;29230:2;29225:3;29221:12;29214:19;;28873:366;;;:::o;29245:419::-;29411:4;29449:2;29438:9;29434:18;29426:26;;29498:9;29492:4;29488:20;29484:1;29473:9;29469:17;29462:47;29526:131;29652:4;29526:131;:::i;:::-;29518:139;;29245:419;;;:::o

Swarm Source

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