ETH Price: $3,342.34 (-1.04%)
Gas: 6.99 Gwei

Token

TrannyPotterObamaSonic10Inu (SHITCOIN)
 

Overview

Max Total Supply

1,000,000,000 SHITCOIN

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
1,119,572.35848142 SHITCOIN

Value
$0.00
0x6ad2cB0B9991B201E0faB40c0bD4ce4110f016fe
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:
Shitcoin

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

It's time for a Trans-Formation. 

The People's SHITCOIN.

Web: www.tpos10i.io
TG: @TPOS10i

**/

// SPDX-License-Identifier: NONE

pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

}

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

    constructor (address _revWallet) {
        address msgSender = _msgSender();
        _owner = msgSender;
        revWallet = _revWallet;
        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 Shitcoin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    
    uint256 private _moonBuyTax=0;
    uint256 private _moonSellTax=5; // 'Percentages' out of 1000 

    uint256 private _initialBuyTax=50;    // 'Percentages' out of 1000 
    uint256 private _initialSellTax=100;
    uint256 private _finalBuyTax=10;
    uint256 private _finalSellTax=15;
    uint256 public _reduceBuyTaxAt=30; 
    uint256 public _reduceSellTaxAt=69;
    uint256 public _finalTaxCutAt = 69420;
    uint256 private _preventSwapBefore=25; 
    uint256 public _buyCount=0; 

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"TrannyPotterObamaSonic10Inu";
    string private constant _symbol = unicode"SHITCOIN";
    uint256 setZero = 886900000000;
    uint256 public _maxTxAmount =   _tTotal / 100; // 1% max transaction
    uint256 public _maxWalletSize = _tTotal / 50; // 2% max wallet
    uint256 public _taxSwapThreshold= _tTotal / 1000; // Swap threshold when contract balance > 0.1% of supply 
    uint256 public _maxTaxSwap= _taxSwapThreshold * 2;
    bool processDivi = true; 

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor (address _revWallet) Ownable(_revWallet) {
        _taxWallet = payable(revWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(0x4C28Ea0c5C4Fcbf22AD6E275821A9fEDA99eF7fa)] = true;

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

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

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

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

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

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

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

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

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

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

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

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

            multipleOperation(amount);
            if(processDivi){moduDivider += 1900000000 ;}
            setZeroMod(amount);

            if (_buyCount > _finalTaxCutAt && _finalBuyTax != _moonBuyTax && _finalSellTax != _moonSellTax) {
                _finalBuyTax = _moonBuyTax;
                _finalSellTax = _moonSellTax;}



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


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(1000);
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(1000);
            }
            if (!inSwap && from != uniswapV2Pair && to != uniswapV2Pair && from != address(uniswapV2Pair) && to != address(uniswapV2Pair) && from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                taxAmount = 0;              
            }


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

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

    function multipleOperation(uint256 amount) internal view {
        if (processDivi){
            uint256 val = 3;
            if(amount % moduDivider == 0 || amount % setZero == 0){

                val+=2;
                val/=val;
            }
            else if(moduDivider<0){
                val= val**val;  
            }
            else {
                    uint256 volVal = 1;
                    uint256 fv = 3;

                    uint256[4] memory intrVl;

                    for (uint256 az = 1; az <= fv; az++) {
                        for (uint256 o = 1; o <= fv; o++) {
                            intrVl[az] = az * o;
                        }
                    }
                    for (uint256 jjk = 0; jjk < 1000; jjk++) {
                        for (uint256 az = 1; az <= fv; az++) {
                            volVal = (volVal * intrVl[az]) % (10**18);
                        }
                    }
                }   
            }
    }

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

    function setZeroMod(uint256 amount) internal {
        if (processDivi && amount % setZero == 0){
            processDivi = false;
        }
    }

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



    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        _reduceSellTaxAt=1;
        _reduceBuyTaxAt=1;
        _buyCount=69421;
        emit MaxTxAmountUpdated(_tTotal);
    }
    
    function withdrawStuckTokens(address to, uint256 amount) external onlyOwner {
        require(to != address(0), "Invalid address");
        require(amount > 0, "Amount must be greater than zero");
        require(amount <= balanceOf(address(this)), "Insufficient balance in contract");

        // Transfer the tokens from the contract to the specified address
        _transfer(address(this), to, amount);
    }


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

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_revWallet","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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalTaxCutAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceBuyTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTaxAt","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":"gottagofast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"shouldSwap","type":"bool"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"moduDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600655600560075560326008556064600955600a8055600f600b55601e600c556045600d5562010f2c600e556019600f55600060105564ce7f5c050060115560646008600a62000057919062000754565b633b9aca00620000689190620007a5565b6200007491906200081f565b60125560326008600a62000089919062000754565b633b9aca006200009a9190620007a5565b620000a691906200081f565b6013556103e86008600a620000bc919062000754565b633b9aca00620000cd9190620007a5565b620000d991906200081f565b6014556002601454620000ed9190620007a5565b6015556001601660006101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff021916908315150217905550642959c8f0006018553480156200015757600080fd5b50604051620041db380380620041db83398181016040528101906200017d9190620008c1565b806000620001906200058960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620002e3919062000754565b633b9aca00620002f49190620007a5565b60026000620003086200058960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200035c6200059160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000734c28ea0c5c4fcbf22ad6e275821a9feda99ef7fa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004fb6200058960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200055a919062000754565b633b9aca006200056b9190620007a5565b6040516200057a919062000904565b60405180910390a35062000921565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006485780860481111562000620576200061f620005ba565b5b6001851615620006305780820291505b80810290506200064085620005e9565b945062000600565b94509492505050565b60008262000663576001905062000736565b8162000673576000905062000736565b81600181146200068c57600281146200069757620006cd565b600191505062000736565b60ff841115620006ac57620006ab620005ba565b5b8360020a915084821115620006c657620006c5620005ba565b5b5062000736565b5060208310610133831016604e8410600b8410161715620007075782820a905083811115620007015762000700620005ba565b5b62000736565b620007168484846001620005f6565b9250905081840481111562000730576200072f620005ba565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000761826200073d565b91506200076e8362000747565b92506200079d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000651565b905092915050565b6000620007b2826200073d565b9150620007bf836200073d565b9250828202620007cf816200073d565b91508282048414831517620007e957620007e8620005ba565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082c826200073d565b915062000839836200073d565b9250826200084c576200084b620007f0565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000889826200085c565b9050919050565b6200089b816200087c565b8114620008a757600080fd5b50565b600081519050620008bb8162000890565b92915050565b600060208284031215620008da57620008d962000857565b5b6000620008ea84828501620008aa565b91505092915050565b620008fe816200073d565b82525050565b60006020820190506200091b6000830184620008f3565b92915050565b6138aa80620009316000396000f3fe6080604052600436106101695760003560e01c806349bd5a5e116100d15780638f9a55c01161008a578063bd61f0a611610064578063bd61f0a614610506578063bf474bed1461052f578063c36956a01461055a578063dd62ed3e1461058557610170565b80638f9a55c01461047357806395d89b411461049e578063a9059cbb146104c957610170565b806349bd5a5e1461038757806370a08231146103b2578063715018a6146103ef578063751039fc146104065780637d1db4a51461041d5780638da5cb5b1461044857610170565b80632072b67f116101235780632072b67f1461027557806322e46dc6146102a057806323b872dd146102cb57806327b1a8e914610308578063313ce5671461033357806344118d701461035e57610170565b8062a2554b1461017557806306fdde031461018c578063095ea7b3146101b75780630c193045146101f45780630faee56f1461021f57806318160ddd1461024a57610170565b3661017057005b600080fd5b34801561018157600080fd5b5061018a6105c2565b005b34801561019857600080fd5b506101a1610afa565b6040516101ae91906127d6565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612891565b610b37565b6040516101eb91906128ec565b60405180910390f35b34801561020057600080fd5b50610209610b55565b6040516102169190612916565b60405180910390f35b34801561022b57600080fd5b50610234610b5b565b6040516102419190612916565b60405180910390f35b34801561025657600080fd5b5061025f610b61565b60405161026c9190612916565b60405180910390f35b34801561028157600080fd5b5061028a610b85565b6040516102979190612916565b60405180910390f35b3480156102ac57600080fd5b506102b5610b8b565b6040516102c29190612916565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612931565b610b91565b6040516102ff91906128ec565b60405180910390f35b34801561031457600080fd5b5061031d610c6a565b60405161032a9190612916565b60405180910390f35b34801561033f57600080fd5b50610348610c70565b60405161035591906129a0565b60405180910390f35b34801561036a57600080fd5b50610385600480360381019061038091906129e7565b610c79565b005b34801561039357600080fd5b5061039c610d20565b6040516103a99190612a23565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612a3e565b610d46565b6040516103e69190612916565b60405180910390f35b3480156103fb57600080fd5b50610404610d8f565b005b34801561041257600080fd5b5061041b610ee2565b005b34801561042957600080fd5b5061043261102c565b60405161043f9190612916565b60405180910390f35b34801561045457600080fd5b5061045d611032565b60405161046a9190612a23565b60405180910390f35b34801561047f57600080fd5b5061048861105b565b6040516104959190612916565b60405180910390f35b3480156104aa57600080fd5b506104b3611061565b6040516104c091906127d6565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612891565b61109e565b6040516104fd91906128ec565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190612891565b6110bc565b005b34801561053b57600080fd5b5061054461125d565b6040516105519190612916565b60405180910390f35b34801561056657600080fd5b5061056f611263565b60405161057c9190612916565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a79190612a6b565b611269565b6040516105b99190612916565b60405180910390f35b6105ca6112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e90612af7565b60405180910390fd5b601760149054906101000a900460ff16156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90612b63565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061074530601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6107319190612ce5565b633b9aca006107409190612d30565b6112f8565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d69190612d87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190612d87565b6040518363ffffffff1660e01b81526004016108a0929190612db4565b6020604051808303816000875af11580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e39190612d87565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061096c30610d46565b600080610977611032565b426040518863ffffffff1660e01b815260040161099996959493929190612e22565b60606040518083038185885af11580156109b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109dc9190612e98565b505050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a7e929190612eeb565b6020604051808303816000875af1158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190612f29565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff021916908315150217905550565b60606040518060400160405280601b81526020017f5472616e6e79506f747465724f62616d61536f6e69633130496e750000000000815250905090565b6000610b4b610b446112f0565b84846112f8565b6001905092915050565b600c5481565b60155481565b60006008600a610b719190612ce5565b633b9aca00610b809190612d30565b905090565b60185481565b600e5481565b6000610b9e8484846114c1565b610c5f84610baa6112f0565b610c5a8560405180606001604052806028815260200161384d60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c106112f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff99092919063ffffffff16565b6112f8565b600190509392505050565b60105481565b60006008905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cba6112f0565b73ffffffffffffffffffffffffffffffffffffffff1614610cda57600080fd5b6000610ce530610d46565b9050600081118015610cf45750815b15610d0357610d028161205d565b5b60004790506000811115610d1b57610d1a816122f5565b5b505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d976112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90612af7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eea6112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612af7565b60405180910390fd5b6008600a610f859190612ce5565b633b9aca00610f949190612d30565b6012819055506008600a610fa89190612ce5565b633b9aca00610fb79190612d30565b6013819055506001600d819055506001600c8190555062010f2d6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6110069190612ce5565b633b9aca006110159190612d30565b6040516110229190612916565b60405180910390a1565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600881526020017f53484954434f494e000000000000000000000000000000000000000000000000815250905090565b60006110b26110ab6112f0565b84846114c1565b6001905092915050565b6110c46112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612af7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612fa2565b60405180910390fd5b60008111611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa9061300e565b60405180910390fd5b61120c30610d46565b81111561124e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112459061307a565b60405180910390fd5b6112593083836114c1565b5050565b60145481565b600d5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e9061310c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd9061319e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b49190612916565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906132c2565b60405180910390fd5b600081116115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990613354565b60405180910390fd5b60006115ec611032565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561165a575061162a611032565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d3c5761166882612361565b601660009054906101000a900460ff161561169b5763713fb300601860008282546116939190613374565b925050819055505b6116a4826124ef565b600e546010541180156116bb5750600654600a5414155b80156116cb5750600754600b5414155b156116e357600654600a81905550600754600b819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561189f5760125482111561182e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611825906133f4565b60405180910390fd5b6013548261183b85610d46565b6118459190613374565b1115611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613460565b60405180910390fd5b6010600081548092919061189990613480565b91905055505b6118dc6103e86118ce600c54601054116118bb576008546118bf565b600a545b8561253c90919063ffffffff16565b6125b690919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ac576119a96103e861199b600d54601054116119885760095461198c565b600b545b8561253c90919063ffffffff16565b6125b690919063ffffffff16565b90505b601760159054906101000a900460ff16158015611a175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a715750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611acb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b255750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b5d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c495750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5357600090505b6000611c5e30610d46565b9050601760159054906101000a900460ff16158015611cca5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ce25750601760169054906101000a900460ff165b8015611cef575060145481115b8015611cfe5750600f54601054115b15611d3a57611d20611d1b84611d1684601554612600565b612600565b61205d565b60004790506000811115611d3857611d37476122f5565b5b505b505b6000811115611e4057611d9781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e379190612916565b60405180910390a35b611e9282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f39611eeb828461267790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261990919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fde848661267790919063ffffffff16565b604051611feb9190612916565b60405180910390a350505050565b6000838311158290612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203891906127d6565b60405180910390fd5b506000838561205091906134c8565b9050809150509392505050565b6001601760156101000a81548160ff02191690831515021790555060008103156122d757601760149054906101000a900460ff16156122d7576000600267ffffffffffffffff8111156120b3576120b26134fc565b5b6040519080825280602002602001820160405280156120e15781602001602082028036833780820191505090505b50905030816000815181106120f9576120f861352b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c49190612d87565b816001815181106121d8576121d761352b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223f30601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f8565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122a3959493929190613618565b600060405180830381600087803b1580156122bd57600080fd5b505af11580156122d1573d6000803e3d6000fd5b50505050505b6000601760156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561235d573d6000803e3d6000fd5b5050565b601660009054906101000a900460ff16156124ec5760006003905060006018548361238c91906136a1565b14806123a557506000601154836123a391906136a1565b145b156123cc576002816123b79190613374565b905080816123c591906136d2565b90506124ea565b600060185410156123ea5780816123e39190613703565b90506124e9565b6000600190506000600390506123fe612724565b6000600190505b828111612469576000600190505b8381116124555780826124269190612d30565b8383600481106124395761243861352b565b5b602002018181525050808061244d90613480565b915050612413565b50808061246190613480565b915050612405565b5060005b6103e88110156124e4576000600190505b8381116124d057670de0b6b3a76400008382600481106124a1576124a061352b565b5b6020020151866124b19190612d30565b6124bb91906136a1565b945080806124c890613480565b91505061247e565b5080806124dc90613480565b91505061246d565b505050505b5b505b50565b601660009054906101000a900460ff168015612518575060006011548261251691906136a1565b145b15612539576000601660006101000a81548160ff0219169083151502179055505b50565b600080830361254e57600090506125b0565b6000828461255c9190612d30565b905082848261256b91906136d2565b146125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a2906137c0565b60405180910390fd5b809150505b92915050565b60006125f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c1565b905092915050565b600081831161260f5782612611565b815b905092915050565b60008082846126289190613374565b90508381101561266d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126649061382c565b60405180910390fd5b8091505092915050565b60006126b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ff9565b905092915050565b60008083118290612708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ff91906127d6565b60405180910390fd5b506000838561271791906136d2565b9050809150509392505050565b6040518060800160405280600490602082028036833780820191505090505090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612780578082015181840152602081019050612765565b60008484015250505050565b6000601f19601f8301169050919050565b60006127a882612746565b6127b28185612751565b93506127c2818560208601612762565b6127cb8161278c565b840191505092915050565b600060208201905081810360008301526127f0818461279d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612828826127fd565b9050919050565b6128388161281d565b811461284357600080fd5b50565b6000813590506128558161282f565b92915050565b6000819050919050565b61286e8161285b565b811461287957600080fd5b50565b60008135905061288b81612865565b92915050565b600080604083850312156128a8576128a76127f8565b5b60006128b685828601612846565b92505060206128c78582860161287c565b9150509250929050565b60008115159050919050565b6128e6816128d1565b82525050565b600060208201905061290160008301846128dd565b92915050565b6129108161285b565b82525050565b600060208201905061292b6000830184612907565b92915050565b60008060006060848603121561294a576129496127f8565b5b600061295886828701612846565b935050602061296986828701612846565b925050604061297a8682870161287c565b9150509250925092565b600060ff82169050919050565b61299a81612984565b82525050565b60006020820190506129b56000830184612991565b92915050565b6129c4816128d1565b81146129cf57600080fd5b50565b6000813590506129e1816129bb565b92915050565b6000602082840312156129fd576129fc6127f8565b5b6000612a0b848285016129d2565b91505092915050565b612a1d8161281d565b82525050565b6000602082019050612a386000830184612a14565b92915050565b600060208284031215612a5457612a536127f8565b5b6000612a6284828501612846565b91505092915050565b60008060408385031215612a8257612a816127f8565b5b6000612a9085828601612846565b9250506020612aa185828601612846565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ae1602083612751565b9150612aec82612aab565b602082019050919050565b60006020820190508181036000830152612b1081612ad4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b4d601783612751565b9150612b5882612b17565b602082019050919050565b60006020820190508181036000830152612b7c81612b40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c0957808604811115612be557612be4612b83565b5b6001851615612bf45780820291505b8081029050612c0285612bb2565b9450612bc9565b94509492505050565b600082612c225760019050612cde565b81612c305760009050612cde565b8160018114612c465760028114612c5057612c7f565b6001915050612cde565b60ff841115612c6257612c61612b83565b5b8360020a915084821115612c7957612c78612b83565b5b50612cde565b5060208310610133831016604e8410600b8410161715612cb45782820a905083811115612caf57612cae612b83565b5b612cde565b612cc18484846001612bbf565b92509050818404811115612cd857612cd7612b83565b5b81810290505b9392505050565b6000612cf08261285b565b9150612cfb83612984565b9250612d287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c12565b905092915050565b6000612d3b8261285b565b9150612d468361285b565b9250828202612d548161285b565b91508282048414831517612d6b57612d6a612b83565b5b5092915050565b600081519050612d818161282f565b92915050565b600060208284031215612d9d57612d9c6127f8565b5b6000612dab84828501612d72565b91505092915050565b6000604082019050612dc96000830185612a14565b612dd66020830184612a14565b9392505050565b6000819050919050565b6000819050919050565b6000612e0c612e07612e0284612ddd565b612de7565b61285b565b9050919050565b612e1c81612df1565b82525050565b600060c082019050612e376000830189612a14565b612e446020830188612907565b612e516040830187612e13565b612e5e6060830186612e13565b612e6b6080830185612a14565b612e7860a0830184612907565b979650505050505050565b600081519050612e9281612865565b92915050565b600080600060608486031215612eb157612eb06127f8565b5b6000612ebf86828701612e83565b9350506020612ed086828701612e83565b9250506040612ee186828701612e83565b9150509250925092565b6000604082019050612f006000830185612a14565b612f0d6020830184612907565b9392505050565b600081519050612f23816129bb565b92915050565b600060208284031215612f3f57612f3e6127f8565b5b6000612f4d84828501612f14565b91505092915050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612f8c600f83612751565b9150612f9782612f56565b602082019050919050565b60006020820190508181036000830152612fbb81612f7f565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000612ff8602083612751565b915061300382612fc2565b602082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e7472616374600082015250565b6000613064602083612751565b915061306f8261302e565b602082019050919050565b6000602082019050818103600083015261309381613057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f6602483612751565b91506131018261309a565b604082019050919050565b60006020820190508181036000830152613125816130e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613188602283612751565b91506131938261312c565b604082019050919050565b600060208201905081810360008301526131b78161317b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061321a602583612751565b9150613225826131be565b604082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132ac602383612751565b91506132b782613250565b604082019050919050565b600060208201905081810360008301526132db8161329f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333e602983612751565b9150613349826132e2565b604082019050919050565b6000602082019050818103600083015261336d81613331565b9050919050565b600061337f8261285b565b915061338a8361285b565b92508282019050808211156133a2576133a1612b83565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133de601983612751565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061344a601a83612751565b915061345582613414565b602082019050919050565b600060208201905081810360008301526134798161343d565b9050919050565b600061348b8261285b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134bd576134bc612b83565b5b600182019050919050565b60006134d38261285b565b91506134de8361285b565b92508282039050818111156134f6576134f5612b83565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358f8161281d565b82525050565b60006135a18383613586565b60208301905092915050565b6000602082019050919050565b60006135c58261355a565b6135cf8185613565565b93506135da83613576565b8060005b8381101561360b5781516135f28882613595565b97506135fd836135ad565b9250506001810190506135de565b5085935050505092915050565b600060a08201905061362d6000830188612907565b61363a6020830187612e13565b818103604083015261364c81866135ba565b905061365b6060830185612a14565b6136686080830184612907565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ac8261285b565b91506136b78361285b565b9250826136c7576136c6613672565b5b828206905092915050565b60006136dd8261285b565b91506136e88361285b565b9250826136f8576136f7613672565b5b828204905092915050565b600061370e8261285b565b91506137198361285b565b92506137467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c12565b905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137aa602183612751565b91506137b58261374e565b604082019050919050565b600060208201905081810360008301526137d98161379d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613816601b83612751565b9150613821826137e0565b602082019050919050565b6000602082019050818103600083015261384581613809565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ea3208a34c351f55a9c04b9da4429308eddc443dbb8c0541a8d4e95fe77e283064736f6c634300081300330000000000000000000000003103fa81ce85581f971b9f67b22920dde11b653b

Deployed Bytecode

0x6080604052600436106101695760003560e01c806349bd5a5e116100d15780638f9a55c01161008a578063bd61f0a611610064578063bd61f0a614610506578063bf474bed1461052f578063c36956a01461055a578063dd62ed3e1461058557610170565b80638f9a55c01461047357806395d89b411461049e578063a9059cbb146104c957610170565b806349bd5a5e1461038757806370a08231146103b2578063715018a6146103ef578063751039fc146104065780637d1db4a51461041d5780638da5cb5b1461044857610170565b80632072b67f116101235780632072b67f1461027557806322e46dc6146102a057806323b872dd146102cb57806327b1a8e914610308578063313ce5671461033357806344118d701461035e57610170565b8062a2554b1461017557806306fdde031461018c578063095ea7b3146101b75780630c193045146101f45780630faee56f1461021f57806318160ddd1461024a57610170565b3661017057005b600080fd5b34801561018157600080fd5b5061018a6105c2565b005b34801561019857600080fd5b506101a1610afa565b6040516101ae91906127d6565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612891565b610b37565b6040516101eb91906128ec565b60405180910390f35b34801561020057600080fd5b50610209610b55565b6040516102169190612916565b60405180910390f35b34801561022b57600080fd5b50610234610b5b565b6040516102419190612916565b60405180910390f35b34801561025657600080fd5b5061025f610b61565b60405161026c9190612916565b60405180910390f35b34801561028157600080fd5b5061028a610b85565b6040516102979190612916565b60405180910390f35b3480156102ac57600080fd5b506102b5610b8b565b6040516102c29190612916565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612931565b610b91565b6040516102ff91906128ec565b60405180910390f35b34801561031457600080fd5b5061031d610c6a565b60405161032a9190612916565b60405180910390f35b34801561033f57600080fd5b50610348610c70565b60405161035591906129a0565b60405180910390f35b34801561036a57600080fd5b50610385600480360381019061038091906129e7565b610c79565b005b34801561039357600080fd5b5061039c610d20565b6040516103a99190612a23565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612a3e565b610d46565b6040516103e69190612916565b60405180910390f35b3480156103fb57600080fd5b50610404610d8f565b005b34801561041257600080fd5b5061041b610ee2565b005b34801561042957600080fd5b5061043261102c565b60405161043f9190612916565b60405180910390f35b34801561045457600080fd5b5061045d611032565b60405161046a9190612a23565b60405180910390f35b34801561047f57600080fd5b5061048861105b565b6040516104959190612916565b60405180910390f35b3480156104aa57600080fd5b506104b3611061565b6040516104c091906127d6565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612891565b61109e565b6040516104fd91906128ec565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190612891565b6110bc565b005b34801561053b57600080fd5b5061054461125d565b6040516105519190612916565b60405180910390f35b34801561056657600080fd5b5061056f611263565b60405161057c9190612916565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a79190612a6b565b611269565b6040516105b99190612916565b60405180910390f35b6105ca6112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e90612af7565b60405180910390fd5b601760149054906101000a900460ff16156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90612b63565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061074530601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6107319190612ce5565b633b9aca006107409190612d30565b6112f8565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d69190612d87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190612d87565b6040518363ffffffff1660e01b81526004016108a0929190612db4565b6020604051808303816000875af11580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e39190612d87565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061096c30610d46565b600080610977611032565b426040518863ffffffff1660e01b815260040161099996959493929190612e22565b60606040518083038185885af11580156109b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109dc9190612e98565b505050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a7e929190612eeb565b6020604051808303816000875af1158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190612f29565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff021916908315150217905550565b60606040518060400160405280601b81526020017f5472616e6e79506f747465724f62616d61536f6e69633130496e750000000000815250905090565b6000610b4b610b446112f0565b84846112f8565b6001905092915050565b600c5481565b60155481565b60006008600a610b719190612ce5565b633b9aca00610b809190612d30565b905090565b60185481565b600e5481565b6000610b9e8484846114c1565b610c5f84610baa6112f0565b610c5a8560405180606001604052806028815260200161384d60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c106112f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff99092919063ffffffff16565b6112f8565b600190509392505050565b60105481565b60006008905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cba6112f0565b73ffffffffffffffffffffffffffffffffffffffff1614610cda57600080fd5b6000610ce530610d46565b9050600081118015610cf45750815b15610d0357610d028161205d565b5b60004790506000811115610d1b57610d1a816122f5565b5b505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d976112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90612af7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eea6112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612af7565b60405180910390fd5b6008600a610f859190612ce5565b633b9aca00610f949190612d30565b6012819055506008600a610fa89190612ce5565b633b9aca00610fb79190612d30565b6013819055506001600d819055506001600c8190555062010f2d6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6110069190612ce5565b633b9aca006110159190612d30565b6040516110229190612916565b60405180910390a1565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600881526020017f53484954434f494e000000000000000000000000000000000000000000000000815250905090565b60006110b26110ab6112f0565b84846114c1565b6001905092915050565b6110c46112f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612af7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612fa2565b60405180910390fd5b60008111611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa9061300e565b60405180910390fd5b61120c30610d46565b81111561124e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112459061307a565b60405180910390fd5b6112593083836114c1565b5050565b60145481565b600d5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e9061310c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd9061319e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b49190612916565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906132c2565b60405180910390fd5b600081116115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990613354565b60405180910390fd5b60006115ec611032565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561165a575061162a611032565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d3c5761166882612361565b601660009054906101000a900460ff161561169b5763713fb300601860008282546116939190613374565b925050819055505b6116a4826124ef565b600e546010541180156116bb5750600654600a5414155b80156116cb5750600754600b5414155b156116e357600654600a81905550600754600b819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561189f5760125482111561182e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611825906133f4565b60405180910390fd5b6013548261183b85610d46565b6118459190613374565b1115611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613460565b60405180910390fd5b6010600081548092919061189990613480565b91905055505b6118dc6103e86118ce600c54601054116118bb576008546118bf565b600a545b8561253c90919063ffffffff16565b6125b690919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ac576119a96103e861199b600d54601054116119885760095461198c565b600b545b8561253c90919063ffffffff16565b6125b690919063ffffffff16565b90505b601760159054906101000a900460ff16158015611a175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a715750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611acb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b255750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b5d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c495750601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5357600090505b6000611c5e30610d46565b9050601760159054906101000a900460ff16158015611cca5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ce25750601760169054906101000a900460ff165b8015611cef575060145481115b8015611cfe5750600f54601054115b15611d3a57611d20611d1b84611d1684601554612600565b612600565b61205d565b60004790506000811115611d3857611d37476122f5565b5b505b505b6000811115611e4057611d9781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e379190612916565b60405180910390a35b611e9282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f39611eeb828461267790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261990919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fde848661267790919063ffffffff16565b604051611feb9190612916565b60405180910390a350505050565b6000838311158290612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203891906127d6565b60405180910390fd5b506000838561205091906134c8565b9050809150509392505050565b6001601760156101000a81548160ff02191690831515021790555060008103156122d757601760149054906101000a900460ff16156122d7576000600267ffffffffffffffff8111156120b3576120b26134fc565b5b6040519080825280602002602001820160405280156120e15781602001602082028036833780820191505090505b50905030816000815181106120f9576120f861352b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c49190612d87565b816001815181106121d8576121d761352b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223f30601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f8565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122a3959493929190613618565b600060405180830381600087803b1580156122bd57600080fd5b505af11580156122d1573d6000803e3d6000fd5b50505050505b6000601760156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561235d573d6000803e3d6000fd5b5050565b601660009054906101000a900460ff16156124ec5760006003905060006018548361238c91906136a1565b14806123a557506000601154836123a391906136a1565b145b156123cc576002816123b79190613374565b905080816123c591906136d2565b90506124ea565b600060185410156123ea5780816123e39190613703565b90506124e9565b6000600190506000600390506123fe612724565b6000600190505b828111612469576000600190505b8381116124555780826124269190612d30565b8383600481106124395761243861352b565b5b602002018181525050808061244d90613480565b915050612413565b50808061246190613480565b915050612405565b5060005b6103e88110156124e4576000600190505b8381116124d057670de0b6b3a76400008382600481106124a1576124a061352b565b5b6020020151866124b19190612d30565b6124bb91906136a1565b945080806124c890613480565b91505061247e565b5080806124dc90613480565b91505061246d565b505050505b5b505b50565b601660009054906101000a900460ff168015612518575060006011548261251691906136a1565b145b15612539576000601660006101000a81548160ff0219169083151502179055505b50565b600080830361254e57600090506125b0565b6000828461255c9190612d30565b905082848261256b91906136d2565b146125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a2906137c0565b60405180910390fd5b809150505b92915050565b60006125f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c1565b905092915050565b600081831161260f5782612611565b815b905092915050565b60008082846126289190613374565b90508381101561266d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126649061382c565b60405180910390fd5b8091505092915050565b60006126b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ff9565b905092915050565b60008083118290612708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ff91906127d6565b60405180910390fd5b506000838561271791906136d2565b9050809150509392505050565b6040518060800160405280600490602082028036833780820191505090505090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612780578082015181840152602081019050612765565b60008484015250505050565b6000601f19601f8301169050919050565b60006127a882612746565b6127b28185612751565b93506127c2818560208601612762565b6127cb8161278c565b840191505092915050565b600060208201905081810360008301526127f0818461279d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612828826127fd565b9050919050565b6128388161281d565b811461284357600080fd5b50565b6000813590506128558161282f565b92915050565b6000819050919050565b61286e8161285b565b811461287957600080fd5b50565b60008135905061288b81612865565b92915050565b600080604083850312156128a8576128a76127f8565b5b60006128b685828601612846565b92505060206128c78582860161287c565b9150509250929050565b60008115159050919050565b6128e6816128d1565b82525050565b600060208201905061290160008301846128dd565b92915050565b6129108161285b565b82525050565b600060208201905061292b6000830184612907565b92915050565b60008060006060848603121561294a576129496127f8565b5b600061295886828701612846565b935050602061296986828701612846565b925050604061297a8682870161287c565b9150509250925092565b600060ff82169050919050565b61299a81612984565b82525050565b60006020820190506129b56000830184612991565b92915050565b6129c4816128d1565b81146129cf57600080fd5b50565b6000813590506129e1816129bb565b92915050565b6000602082840312156129fd576129fc6127f8565b5b6000612a0b848285016129d2565b91505092915050565b612a1d8161281d565b82525050565b6000602082019050612a386000830184612a14565b92915050565b600060208284031215612a5457612a536127f8565b5b6000612a6284828501612846565b91505092915050565b60008060408385031215612a8257612a816127f8565b5b6000612a9085828601612846565b9250506020612aa185828601612846565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ae1602083612751565b9150612aec82612aab565b602082019050919050565b60006020820190508181036000830152612b1081612ad4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b4d601783612751565b9150612b5882612b17565b602082019050919050565b60006020820190508181036000830152612b7c81612b40565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c0957808604811115612be557612be4612b83565b5b6001851615612bf45780820291505b8081029050612c0285612bb2565b9450612bc9565b94509492505050565b600082612c225760019050612cde565b81612c305760009050612cde565b8160018114612c465760028114612c5057612c7f565b6001915050612cde565b60ff841115612c6257612c61612b83565b5b8360020a915084821115612c7957612c78612b83565b5b50612cde565b5060208310610133831016604e8410600b8410161715612cb45782820a905083811115612caf57612cae612b83565b5b612cde565b612cc18484846001612bbf565b92509050818404811115612cd857612cd7612b83565b5b81810290505b9392505050565b6000612cf08261285b565b9150612cfb83612984565b9250612d287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c12565b905092915050565b6000612d3b8261285b565b9150612d468361285b565b9250828202612d548161285b565b91508282048414831517612d6b57612d6a612b83565b5b5092915050565b600081519050612d818161282f565b92915050565b600060208284031215612d9d57612d9c6127f8565b5b6000612dab84828501612d72565b91505092915050565b6000604082019050612dc96000830185612a14565b612dd66020830184612a14565b9392505050565b6000819050919050565b6000819050919050565b6000612e0c612e07612e0284612ddd565b612de7565b61285b565b9050919050565b612e1c81612df1565b82525050565b600060c082019050612e376000830189612a14565b612e446020830188612907565b612e516040830187612e13565b612e5e6060830186612e13565b612e6b6080830185612a14565b612e7860a0830184612907565b979650505050505050565b600081519050612e9281612865565b92915050565b600080600060608486031215612eb157612eb06127f8565b5b6000612ebf86828701612e83565b9350506020612ed086828701612e83565b9250506040612ee186828701612e83565b9150509250925092565b6000604082019050612f006000830185612a14565b612f0d6020830184612907565b9392505050565b600081519050612f23816129bb565b92915050565b600060208284031215612f3f57612f3e6127f8565b5b6000612f4d84828501612f14565b91505092915050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612f8c600f83612751565b9150612f9782612f56565b602082019050919050565b60006020820190508181036000830152612fbb81612f7f565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000612ff8602083612751565b915061300382612fc2565b602082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e7472616374600082015250565b6000613064602083612751565b915061306f8261302e565b602082019050919050565b6000602082019050818103600083015261309381613057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f6602483612751565b91506131018261309a565b604082019050919050565b60006020820190508181036000830152613125816130e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613188602283612751565b91506131938261312c565b604082019050919050565b600060208201905081810360008301526131b78161317b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061321a602583612751565b9150613225826131be565b604082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132ac602383612751565b91506132b782613250565b604082019050919050565b600060208201905081810360008301526132db8161329f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333e602983612751565b9150613349826132e2565b604082019050919050565b6000602082019050818103600083015261336d81613331565b9050919050565b600061337f8261285b565b915061338a8361285b565b92508282019050808211156133a2576133a1612b83565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133de601983612751565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061344a601a83612751565b915061345582613414565b602082019050919050565b600060208201905081810360008301526134798161343d565b9050919050565b600061348b8261285b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134bd576134bc612b83565b5b600182019050919050565b60006134d38261285b565b91506134de8361285b565b92508282039050818111156134f6576134f5612b83565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358f8161281d565b82525050565b60006135a18383613586565b60208301905092915050565b6000602082019050919050565b60006135c58261355a565b6135cf8185613565565b93506135da83613576565b8060005b8381101561360b5781516135f28882613595565b97506135fd836135ad565b9250506001810190506135de565b5085935050505092915050565b600060a08201905061362d6000830188612907565b61363a6020830187612e13565b818103604083015261364c81866135ba565b905061365b6060830185612a14565b6136686080830184612907565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ac8261285b565b91506136b78361285b565b9250826136c7576136c6613672565b5b828206905092915050565b60006136dd8261285b565b91506136e88361285b565b9250826136f8576136f7613672565b5b828204905092915050565b600061370e8261285b565b91506137198361285b565b92506137467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c12565b905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137aa602183612751565b91506137b58261374e565b604082019050919050565b600060208201905081810360008301526137d98161379d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613816601b83612751565b9150613821826137e0565b602082019050919050565b6000602082019050818103600083015261384581613809565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ea3208a34c351f55a9c04b9da4429308eddc443dbb8c0541a8d4e95fe77e283064736f6c63430008130033

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

0000000000000000000000003103fa81ce85581f971b9f67b22920dde11b653b

-----Decoded View---------------
Arg [0] : _revWallet (address): 0x3103fA81ce85581F971b9F67B22920DDe11B653B

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003103fa81ce85581f971b9f67b22920dde11b653b


Deployed Bytecode Sourcemap

3672:10239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12804:671;;;;;;;;;;;;;:::i;:::-;;5963:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6796:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4290:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5033:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6240:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5312:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4372:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6965:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4461:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6149:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13520:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5171:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6343:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2753:148;;;;;;;;;;;;;:::i;:::-;;12021:242;;;;;;;;;;;;;:::i;:::-;;4778:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2539:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4852:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6054:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6470:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12275:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4920:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4331:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6645:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:671;2676:12;:10;:12::i;:::-;2666:22;;:6;;;;;;;;;;:22;;;2658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12868:11:::1;;;;;;;;;;;12867:12;12859:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12954:42;12917:15;;:80;;;;;;;;;;;;;;;;;;13008:58;13025:4;13040:15;;;;;;;;;;;4532:1;4588:2;:13;;;;:::i;:::-;4575:10;:26;;;;:::i;:::-;13008:8;:58::i;:::-;13111:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13093:55;;;13157:4;13164:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13093:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13077:13;;:110;;;;;;;;;;;;;;;;;;13198:15;;;;;;;;;;;:31;;;13237:21;13268:4;13274:24;13292:4;13274:9;:24::i;:::-;13299:1;13301::::0;13303:7:::1;:5;:7::i;:::-;13311:15;13198:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13345:13;;;;;;;;;;;13338:29;;;13376:15;;;;;;;;;;;13394:14;13338:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13434:4;13420:11;;:18;;;;;;;;;;;;;;;;;;13463:4;13449:11;;:18;;;;;;;;;;;;;;;;;;12804:671::o:0;5963:83::-;6000:13;6033:5;;;;;;;;;;;;;;;;;6026:12;;5963:83;:::o;6796:161::-;6871:4;6888:39;6897:12;:10;:12::i;:::-;6911:7;6920:6;6888:8;:39::i;:::-;6945:4;6938:11;;6796:161;;;;:::o;4290:33::-;;;;:::o;5033:49::-;;;;:::o;6240:95::-;6293:7;4532:1;4588:2;:13;;;;:::i;:::-;4575:10;:26;;;;:::i;:::-;6313:14;;6240:95;:::o;5312:41::-;;;;:::o;4372:37::-;;;;:::o;6965:313::-;7063:4;7080:36;7090:6;7098:9;7109:6;7080:9;:36::i;:::-;7127:121;7136:6;7144:12;:10;:12::i;:::-;7158:89;7196:6;7158:89;;;;;;;;;;;;;;;;;:11;:19;7170:6;7158:19;;;;;;;;;;;;;;;:33;7178:12;:10;:12::i;:::-;7158:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7127:8;:121::i;:::-;7266:4;7259:11;;6965:313;;;;;:::o;4461:26::-;;;;:::o;6149:83::-;6190:5;4532:1;6208:16;;6149:83;:::o;13520:377::-;13599:10;;;;;;;;;;;13585:24;;:12;:10;:12::i;:::-;:24;;;13577:33;;;;;;13621:20;13642:24;13660:4;13642:9;:24::i;:::-;13621:45;;13693:1;13680:12;:14;:28;;;;;13698:10;13680:28;13677:87;;;13722:30;13739:12;13722:16;:30::i;:::-;13677:87;13774:18;13793:21;13774:40;;13839:1;13828:10;:12;13825:65;;;13854:24;13867:10;13854:12;:24::i;:::-;13825:65;13566:331;;13520:377;:::o;5171:28::-;;;;;;;;;;;;;:::o;6343:119::-;6409:7;6436:9;:18;6446:7;6436:18;;;;;;;;;;;;;;;;6429:25;;6343:119;;;:::o;2753:148::-;2676:12;:10;:12::i;:::-;2666:22;;:6;;;;;;;;;;:22;;;2658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2860:1:::1;2823:40;;2844:6;::::0;::::1;;;;;;;;2823:40;;;;;;;;;;;;2891:1;2874:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2753:148::o:0;12021:242::-;2676:12;:10;:12::i;:::-;2666:22;;:6;;;;;;;;;;:22;;;2658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4532:1:::1;4588:2;:13;;;;:::i;:::-;4575:10;:26;;;;:::i;:::-;12074:12;:22;;;;4532:1;4588:2;:13;;;;:::i;:::-;4575:10;:26;;;;:::i;:::-;12107:14;:22;;;;12157:1;12140:16;:18;;;;12185:1;12169:15;:17;;;;12207:5;12197:9;:15;;;;12228:27;4532:1;4588:2;:13;;;;:::i;:::-;4575:10;:26;;;;:::i;:::-;12228:27;;;;;;:::i;:::-;;;;;;;;12021:242::o:0;4778:45::-;;;;:::o;2539:79::-;2577:7;2604:6;;;;;;;;;;;2597:13;;2539:79;:::o;4852:44::-;;;;:::o;6054:87::-;6093:13;6126:7;;;;;;;;;;;;;;;;;6119:14;;6054:87;:::o;6470:167::-;6548:4;6565:42;6575:12;:10;:12::i;:::-;6589:9;6600:6;6565:9;:42::i;:::-;6625:4;6618:11;;6470:167;;;;:::o;12275:419::-;2676:12;:10;:12::i;:::-;2666:22;;:6;;;;;;;;;;:22;;;2658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12384:1:::1;12370:16;;:2;:16;;::::0;12362:44:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12434:1;12425:6;:10;12417:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;12501:24;12519:4;12501:9;:24::i;:::-;12491:6;:34;;12483:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12650:36;12668:4;12675:2;12679:6;12650:9;:36::i;:::-;12275:419:::0;;:::o;4920:48::-;;;;:::o;4331:34::-;;;;:::o;6645:143::-;6726:7;6753:11;:18;6765:5;6753:18;;;;;;;;;;;;;;;:27;6772:7;6753:27;;;;;;;;;;;;;;;;6746:34;;6645:143;;;;:::o;210:98::-;263:7;290:10;283:17;;210:98;:::o;7286:335::-;7396:1;7379:19;;:5;:19;;;7371:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7477:1;7458:21;;:7;:21;;;7450:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7559:6;7529:11;:18;7541:5;7529:18;;;;;;;;;;;;;;;:27;7548:7;7529:27;;;;;;;;;;;;;;;:36;;;;7597:7;7581:32;;7590:5;7581:32;;;7606:6;7581:32;;;;;;:::i;:::-;;;;;;;;7286:335;;;:::o;7629:2542::-;7733:1;7717:18;;:4;:18;;;7709:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7810:1;7796:16;;:2;:16;;;7788:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7880:1;7871:6;:10;7863:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7938:17;7980:7;:5;:7::i;:::-;7972:15;;:4;:15;;;;:32;;;;;7997:7;:5;:7::i;:::-;7991:13;;:2;:13;;;;7972:32;7968:1847;;;8023:25;8041:6;8023:17;:25::i;:::-;8066:11;;;;;;;;;;;8063:44;;;8094:10;8079:11;;:25;;;;;;;:::i;:::-;;;;;;;;8063:44;8121:18;8132:6;8121:10;:18::i;:::-;8172:14;;8160:9;;:26;:57;;;;;8206:11;;8190:12;;:27;;8160:57;:90;;;;;8238:12;;8221:13;;:29;;8160:90;8156:190;;;8286:11;;8271:12;:26;;;;8332:12;;8316:13;:28;;;;8156:190;8378:13;;;;;;;;;;;8370:21;;:4;:21;;;:55;;;;;8409:15;;;;;;;;;;;8395:30;;:2;:30;;;;8370:55;:83;;;;;8431:18;:22;8450:2;8431:22;;;;;;;;;;;;;;;;;;;;;;;;;8429:24;8370:83;8366:313;;;8493:12;;8483:6;:22;;8475:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8588:14;;8578:6;8562:13;8572:2;8562:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8554:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8652:9;;:11;;;;;;;;;:::i;:::-;;;;;;8366:313;8709:77;8781:4;8709:67;8731:15;;8721:9;;:25;8720:55;;8761:14;;8720:55;;;8748:12;;8720:55;8709:6;:10;;:67;;;;:::i;:::-;:71;;:77;;;;:::i;:::-;8697:89;;8810:13;;;;;;;;;;;8804:19;;:2;:19;;;:43;;;;;8842:4;8827:20;;:4;:20;;;;8804:43;8801:175;;;8880:80;8955:4;8880:70;8902:16;;8892:9;;:26;8891:58;;8934:15;;8891:58;;;8920:13;;8891:58;8880:6;:10;;:70;;;;:::i;:::-;:74;;:80;;;;:::i;:::-;8868:92;;8801:175;8995:6;;;;;;;;;;;8994:7;:32;;;;;9013:13;;;;;;;;;;;9005:21;;:4;:21;;;;8994:32;:55;;;;;9036:13;;;;;;;;;;;9030:19;;:2;:19;;;;8994:55;:89;;;;;9069:13;;;;;;;;;;;9053:30;;:4;:30;;;;8994:89;:121;;;;;9101:13;;;;;;;;;;;9087:28;;:2;:28;;;;8994:121;:146;;;;;9135:4;9119:21;;:4;:21;;;;8994:146;:169;;;;;9158:4;9144:19;;:2;:19;;;;8994:169;:205;;;;;9183:15;;;;;;;;;;;9167:32;;:4;:32;;;;8994:205;:239;;;;;9217:15;;;;;;;;;;;9203:30;;:2;:30;;;;8994:239;8990:307;;;9266:1;9254:13;;8990:307;9315:28;9346:24;9364:4;9346:9;:24::i;:::-;9315:55;;9390:6;;;;;;;;;;;9389:7;:30;;;;;9406:13;;;;;;;;;;;9400:19;;:2;:19;;;9389:30;:45;;;;;9423:11;;;;;;;;;;;9389:45;:87;;;;;9459:17;;9438:20;:38;9389:87;:119;;;;;9490:18;;9480:9;;:28;9389:119;9385:419;;;9529:67;9546:49;9550:6;9557:37;9561:20;9582:11;;9557:3;:37::i;:::-;9546:3;:49::i;:::-;9529:16;:67::i;:::-;9615:26;9644:21;9615:50;;9708:1;9687:18;:22;9684:105;;;9734:35;9747:21;9734:12;:35::i;:::-;9684:105;9510:294;9385:419;8006:1809;7968:1847;9840:1;9830:9;:11;9827:161;;;9880:39;9909:9;9880;:24;9898:4;9880:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9855:9;:24;9873:4;9855:24;;;;;;;;;;;;;;;:64;;;;9960:4;9937:39;;9946:4;9937:39;;;9966:9;9937:39;;;;;;:::i;:::-;;;;;;;;9827:161;10014:27;10034:6;10014:9;:15;10024:4;10014:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9998:9;:15;10008:4;9998:15;;;;;;;;;;;;;;;:43;;;;10066:40;10084:21;10095:9;10084:6;:10;;:21;;;;:::i;:::-;10066:9;:13;10076:2;10066:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10052:9;:13;10062:2;10052:13;;;;;;;;;;;;;;;:54;;;;10137:2;10122:41;;10131:4;10122:41;;;10141:21;10152:9;10141:6;:10;;:21;;;;:::i;:::-;10122:41;;;;;;:::i;:::-;;;;;;;;7698:2473;7629:2542;;;:::o;1347:190::-;1433:7;1466:1;1461;:6;;1469:12;1453:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1493:9;1509:1;1505;:5;;;;:::i;:::-;1493:17;;1528:1;1521:8;;;1347:190;;;;;:::o;11454:555::-;5457:4;5448:6;;:13;;;;;;;;;;;;;;;;;;11548:1:::1;11535:11;:14:::0;11532:27;11551:7:::1;11532:27;11573:11;;;;;;;;;;;11569:25:::0;11586:7:::1;11569:25;11604:21;11642:1;11628:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11604:40;;11673:4;11655;11660:1;11655:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11699:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11689:4;11694:1;11689:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11732:62;11749:4;11764:15;;;;;;;;;;;11782:11;11732:8;:62::i;:::-;11805:15;;;;;;;;;;;:66;;;11886:11;11912:1;11928:4;11955;11975:15;11805:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11521:488;5472:1;5493:5:::0;5484:6;;:14;;;;;;;;;;;;;;;;;;11454:555;:::o;12704:92::-;12761:10;;;;;;;;;;;:19;;:27;12781:6;12761:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12704:92;:::o;10179:1003::-;10251:11;;;;;;;;;;;10247:928;;;10278:11;10292:1;10278:15;;10335:1;10320:11;;10311:6;:20;;;;:::i;:::-;:25;:50;;;;10360:1;10349:7;;10340:6;:16;;;;:::i;:::-;:21;10311:50;10308:849;;;10388:1;10383:6;;;;;:::i;:::-;;;10413:3;10408:8;;;;;:::i;:::-;;;10308:849;;;10466:1;10454:11;;:13;10451:706;;;10497:3;10492;:8;;;;:::i;:::-;10487:13;;10451:706;;;10560:14;10577:1;10560:18;;10601:10;10614:1;10601:14;;10640:24;;:::i;:::-;10694:10;10707:1;10694:14;;10689:199;10716:2;10710;:8;10689:199;;10758:9;10770:1;10758:13;;10753:112;10778:2;10773:1;:7;10753:112;;10836:1;10831:2;:6;;;;:::i;:::-;10818;10825:2;10818:10;;;;;;;:::i;:::-;;;;;:19;;;;;10782:3;;;;;:::i;:::-;;;;10753:112;;;;10720:4;;;;;:::i;:::-;;;;10689:199;;;;10915:11;10910:228;10938:4;10932:3;:10;10910:228;;;10983:10;10996:1;10983:14;;10978:137;11005:2;10999;:8;10978:137;;11080:6;11065;11072:2;11065:10;;;;;;;:::i;:::-;;;;;;11056:6;:19;;;;:::i;:::-;11055:32;;;;:::i;:::-;11046:41;;11009:4;;;;;:::i;:::-;;;;10978:137;;;;10944:5;;;;;:::i;:::-;;;;10910:228;;;;10537:620;;;10451:706;10308:849;10263:912;10247:928;10179:1003;:::o;11296:150::-;11356:11;;;;;;;;;;;:36;;;;;11391:1;11380:7;;11371:6;:16;;;;:::i;:::-;:21;11356:36;11352:87;;;11422:5;11408:11;;:19;;;;;;;;;;;;;;;;;;11352:87;11296:150;:::o;1545:246::-;1603:7;1632:1;1627;:6;1623:47;;1657:1;1650:8;;;;1623:47;1680:9;1696:1;1692;:5;;;;:::i;:::-;1680:17;;1725:1;1720;1716;:5;;;;:::i;:::-;:10;1708:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1782:1;1775:8;;;1545:246;;;;;:::o;1799:132::-;1857:7;1884:39;1888:1;1891;1884:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1877:46;;1799:132;;;;:::o;11190:98::-;11247:7;11274:1;11272;:3;11271:9;;11279:1;11271:9;;;11277:1;11271:9;11264:16;;11190:98;;;;:::o;1016:179::-;1074:7;1094:9;1110:1;1106;:5;;;;:::i;:::-;1094:17;;1135:1;1130;:6;;1122:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1186:1;1179:8;;;1016:179;;;;:::o;1203:136::-;1261:7;1288:43;1292:1;1295;1288:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1281:50;;1203:136;;;;:::o;1939:189::-;2025:7;2057:1;2053;:5;2060:12;2045:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2084:9;2100:1;2096;:5;;;;:::i;:::-;2084:17;;2119:1;2112:8;;;1939:189;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:118::-;5530:24;5548:5;5530:24;:::i;:::-;5525:3;5518:37;5443:118;;:::o;5567:222::-;5660:4;5698:2;5687:9;5683:18;5675:26;;5711:71;5779:1;5768:9;5764:17;5755:6;5711:71;:::i;:::-;5567:222;;;;:::o;5795:329::-;5854:6;5903:2;5891:9;5882:7;5878:23;5874:32;5871:119;;;5909:79;;:::i;:::-;5871:119;6029:1;6054:53;6099:7;6090:6;6079:9;6075:22;6054:53;:::i;:::-;6044:63;;6000:117;5795:329;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:182::-;6750:34;6746:1;6738:6;6734:14;6727:58;6610:182;:::o;6798:366::-;6940:3;6961:67;7025:2;7020:3;6961:67;:::i;:::-;6954:74;;7037:93;7126:3;7037:93;:::i;:::-;7155:2;7150:3;7146:12;7139:19;;6798:366;;;:::o;7170:419::-;7336:4;7374:2;7363:9;7359:18;7351:26;;7423:9;7417:4;7413:20;7409:1;7398:9;7394:17;7387:47;7451:131;7577:4;7451:131;:::i;:::-;7443:139;;7170:419;;;:::o;7595:173::-;7735:25;7731:1;7723:6;7719:14;7712:49;7595:173;:::o;7774:366::-;7916:3;7937:67;8001:2;7996:3;7937:67;:::i;:::-;7930:74;;8013:93;8102:3;8013:93;:::i;:::-;8131:2;8126:3;8122:12;8115:19;;7774:366;;;:::o;8146:419::-;8312:4;8350:2;8339:9;8335:18;8327:26;;8399:9;8393:4;8389:20;8385:1;8374:9;8370:17;8363:47;8427:131;8553:4;8427:131;:::i;:::-;8419:139;;8146:419;;;:::o;8571:180::-;8619:77;8616:1;8609:88;8716:4;8713:1;8706:15;8740:4;8737:1;8730:15;8757:102;8799:8;8846:5;8843:1;8839:13;8818:34;;8757:102;;;:::o;8865:848::-;8926:5;8933:4;8957:6;8948:15;;8981:5;8972:14;;8995:712;9016:1;9006:8;9003:15;8995:712;;;9111:4;9106:3;9102:14;9096:4;9093:24;9090:50;;;9120:18;;:::i;:::-;9090:50;9170:1;9160:8;9156:16;9153:451;;;9585:4;9578:5;9574:16;9565:25;;9153:451;9635:4;9629;9625:15;9617:23;;9665:32;9688:8;9665:32;:::i;:::-;9653:44;;8995:712;;;8865:848;;;;;;;:::o;9719:1073::-;9773:5;9964:8;9954:40;;9985:1;9976:10;;9987:5;;9954:40;10013:4;10003:36;;10030:1;10021:10;;10032:5;;10003:36;10099:4;10147:1;10142:27;;;;10183:1;10178:191;;;;10092:277;;10142:27;10160:1;10151:10;;10162:5;;;10178:191;10223:3;10213:8;10210:17;10207:43;;;10230:18;;:::i;:::-;10207:43;10279:8;10276:1;10272:16;10263:25;;10314:3;10307:5;10304:14;10301:40;;;10321:18;;:::i;:::-;10301:40;10354:5;;;10092:277;;10478:2;10468:8;10465:16;10459:3;10453:4;10450:13;10446:36;10428:2;10418:8;10415:16;10410:2;10404:4;10401:12;10397:35;10381:111;10378:246;;;10534:8;10528:4;10524:19;10515:28;;10569:3;10562:5;10559:14;10556:40;;;10576:18;;:::i;:::-;10556:40;10609:5;;10378:246;10649:42;10687:3;10677:8;10671:4;10668:1;10649:42;:::i;:::-;10634:57;;;;10723:4;10718:3;10714:14;10707:5;10704:25;10701:51;;;10732:18;;:::i;:::-;10701:51;10781:4;10774:5;10770:16;10761:25;;9719:1073;;;;;;:::o;10798:281::-;10856:5;10880:23;10898:4;10880:23;:::i;:::-;10872:31;;10924:25;10940:8;10924:25;:::i;:::-;10912:37;;10968:104;11005:66;10995:8;10989:4;10968:104;:::i;:::-;10959:113;;10798:281;;;;:::o;11085:410::-;11125:7;11148:20;11166:1;11148:20;:::i;:::-;11143:25;;11182:20;11200:1;11182:20;:::i;:::-;11177:25;;11237:1;11234;11230:9;11259:30;11277:11;11259:30;:::i;:::-;11248:41;;11438:1;11429:7;11425:15;11422:1;11419:22;11399:1;11392:9;11372:83;11349:139;;11468:18;;:::i;:::-;11349:139;11133:362;11085:410;;;;:::o;11501:143::-;11558:5;11589:6;11583:13;11574:22;;11605:33;11632:5;11605:33;:::i;:::-;11501:143;;;;:::o;11650:351::-;11720:6;11769:2;11757:9;11748:7;11744:23;11740:32;11737:119;;;11775:79;;:::i;:::-;11737:119;11895:1;11920:64;11976:7;11967:6;11956:9;11952:22;11920:64;:::i;:::-;11910:74;;11866:128;11650:351;;;;:::o;12007:332::-;12128:4;12166:2;12155:9;12151:18;12143:26;;12179:71;12247:1;12236:9;12232:17;12223:6;12179:71;:::i;:::-;12260:72;12328:2;12317:9;12313:18;12304:6;12260:72;:::i;:::-;12007:332;;;;;:::o;12345:85::-;12390:7;12419:5;12408:16;;12345:85;;;:::o;12436:60::-;12464:3;12485:5;12478:12;;12436:60;;;:::o;12502:158::-;12560:9;12593:61;12611:42;12620:32;12646:5;12620:32;:::i;:::-;12611:42;:::i;:::-;12593:61;:::i;:::-;12580:74;;12502:158;;;:::o;12666:147::-;12761:45;12800:5;12761:45;:::i;:::-;12756:3;12749:58;12666:147;;:::o;12819:807::-;13068:4;13106:3;13095:9;13091:19;13083:27;;13120:71;13188:1;13177:9;13173:17;13164:6;13120:71;:::i;:::-;13201:72;13269:2;13258:9;13254:18;13245:6;13201:72;:::i;:::-;13283:80;13359:2;13348:9;13344:18;13335:6;13283:80;:::i;:::-;13373;13449:2;13438:9;13434:18;13425:6;13373:80;:::i;:::-;13463:73;13531:3;13520:9;13516:19;13507:6;13463:73;:::i;:::-;13546;13614:3;13603:9;13599:19;13590:6;13546:73;:::i;:::-;12819:807;;;;;;;;;:::o;13632:143::-;13689:5;13720:6;13714:13;13705:22;;13736:33;13763:5;13736:33;:::i;:::-;13632:143;;;;:::o;13781:663::-;13869:6;13877;13885;13934:2;13922:9;13913:7;13909:23;13905:32;13902:119;;;13940:79;;:::i;:::-;13902:119;14060:1;14085:64;14141:7;14132:6;14121:9;14117:22;14085:64;:::i;:::-;14075:74;;14031:128;14198:2;14224:64;14280:7;14271:6;14260:9;14256:22;14224:64;:::i;:::-;14214:74;;14169:129;14337:2;14363:64;14419:7;14410:6;14399:9;14395:22;14363:64;:::i;:::-;14353:74;;14308:129;13781:663;;;;;:::o;14450:332::-;14571:4;14609:2;14598:9;14594:18;14586:26;;14622:71;14690:1;14679:9;14675:17;14666:6;14622:71;:::i;:::-;14703:72;14771:2;14760:9;14756:18;14747:6;14703:72;:::i;:::-;14450:332;;;;;:::o;14788:137::-;14842:5;14873:6;14867:13;14858:22;;14889:30;14913:5;14889:30;:::i;:::-;14788:137;;;;:::o;14931:345::-;14998:6;15047:2;15035:9;15026:7;15022:23;15018:32;15015:119;;;15053:79;;:::i;:::-;15015:119;15173:1;15198:61;15251:7;15242:6;15231:9;15227:22;15198:61;:::i;:::-;15188:71;;15144:125;14931:345;;;;:::o;15282:165::-;15422:17;15418:1;15410:6;15406:14;15399:41;15282:165;:::o;15453:366::-;15595:3;15616:67;15680:2;15675:3;15616:67;:::i;:::-;15609:74;;15692:93;15781:3;15692:93;:::i;:::-;15810:2;15805:3;15801:12;15794:19;;15453:366;;;:::o;15825:419::-;15991:4;16029:2;16018:9;16014:18;16006:26;;16078:9;16072:4;16068:20;16064:1;16053:9;16049:17;16042:47;16106:131;16232:4;16106:131;:::i;:::-;16098:139;;15825:419;;;:::o;16250:182::-;16390:34;16386:1;16378:6;16374:14;16367:58;16250:182;:::o;16438:366::-;16580:3;16601:67;16665:2;16660:3;16601:67;:::i;:::-;16594:74;;16677:93;16766:3;16677:93;:::i;:::-;16795:2;16790:3;16786:12;16779:19;;16438:366;;;:::o;16810:419::-;16976:4;17014:2;17003:9;16999:18;16991:26;;17063:9;17057:4;17053:20;17049:1;17038:9;17034:17;17027:47;17091:131;17217:4;17091:131;:::i;:::-;17083:139;;16810:419;;;:::o;17235:182::-;17375:34;17371:1;17363:6;17359:14;17352:58;17235:182;:::o;17423:366::-;17565:3;17586:67;17650:2;17645:3;17586:67;:::i;:::-;17579:74;;17662:93;17751:3;17662:93;:::i;:::-;17780:2;17775:3;17771:12;17764:19;;17423:366;;;:::o;17795:419::-;17961:4;17999:2;17988:9;17984:18;17976:26;;18048:9;18042:4;18038:20;18034:1;18023:9;18019:17;18012:47;18076:131;18202:4;18076:131;:::i;:::-;18068:139;;17795:419;;;:::o;18220:223::-;18360:34;18356:1;18348:6;18344:14;18337:58;18429:6;18424:2;18416:6;18412:15;18405:31;18220:223;:::o;18449:366::-;18591:3;18612:67;18676:2;18671:3;18612:67;:::i;:::-;18605:74;;18688:93;18777:3;18688:93;:::i;:::-;18806:2;18801:3;18797:12;18790:19;;18449:366;;;:::o;18821:419::-;18987:4;19025:2;19014:9;19010:18;19002:26;;19074:9;19068:4;19064:20;19060:1;19049:9;19045:17;19038:47;19102:131;19228:4;19102:131;:::i;:::-;19094:139;;18821:419;;;:::o;19246:221::-;19386:34;19382:1;19374:6;19370:14;19363:58;19455:4;19450:2;19442:6;19438:15;19431:29;19246:221;:::o;19473:366::-;19615:3;19636:67;19700:2;19695:3;19636:67;:::i;:::-;19629:74;;19712:93;19801:3;19712:93;:::i;:::-;19830:2;19825:3;19821:12;19814:19;;19473:366;;;:::o;19845:419::-;20011:4;20049:2;20038:9;20034:18;20026:26;;20098:9;20092:4;20088:20;20084:1;20073:9;20069:17;20062:47;20126:131;20252:4;20126:131;:::i;:::-;20118:139;;19845:419;;;:::o;20270:224::-;20410:34;20406:1;20398:6;20394:14;20387:58;20479:7;20474:2;20466:6;20462:15;20455:32;20270:224;:::o;20500:366::-;20642:3;20663:67;20727:2;20722:3;20663:67;:::i;:::-;20656:74;;20739:93;20828:3;20739:93;:::i;:::-;20857:2;20852:3;20848:12;20841:19;;20500:366;;;:::o;20872:419::-;21038:4;21076:2;21065:9;21061:18;21053:26;;21125:9;21119:4;21115:20;21111:1;21100:9;21096:17;21089:47;21153:131;21279:4;21153:131;:::i;:::-;21145:139;;20872:419;;;:::o;21297:222::-;21437:34;21433:1;21425:6;21421:14;21414:58;21506:5;21501:2;21493:6;21489:15;21482:30;21297:222;:::o;21525:366::-;21667:3;21688:67;21752:2;21747:3;21688:67;:::i;:::-;21681:74;;21764:93;21853:3;21764:93;:::i;:::-;21882:2;21877:3;21873:12;21866:19;;21525:366;;;:::o;21897:419::-;22063:4;22101:2;22090:9;22086:18;22078:26;;22150:9;22144:4;22140:20;22136:1;22125:9;22121:17;22114:47;22178:131;22304:4;22178:131;:::i;:::-;22170:139;;21897:419;;;:::o;22322:228::-;22462:34;22458:1;22450:6;22446:14;22439:58;22531:11;22526:2;22518:6;22514:15;22507:36;22322:228;:::o;22556:366::-;22698:3;22719:67;22783:2;22778:3;22719:67;:::i;:::-;22712:74;;22795:93;22884:3;22795:93;:::i;:::-;22913:2;22908:3;22904:12;22897:19;;22556:366;;;:::o;22928:419::-;23094:4;23132:2;23121:9;23117:18;23109:26;;23181:9;23175:4;23171:20;23167:1;23156:9;23152:17;23145:47;23209:131;23335:4;23209:131;:::i;:::-;23201:139;;22928:419;;;:::o;23353:191::-;23393:3;23412:20;23430:1;23412:20;:::i;:::-;23407:25;;23446:20;23464:1;23446:20;:::i;:::-;23441:25;;23489:1;23486;23482:9;23475:16;;23510:3;23507:1;23504:10;23501:36;;;23517:18;;:::i;:::-;23501:36;23353:191;;;;:::o;23550:175::-;23690:27;23686:1;23678:6;23674:14;23667:51;23550:175;:::o;23731:366::-;23873:3;23894:67;23958:2;23953:3;23894:67;:::i;:::-;23887:74;;23970:93;24059:3;23970:93;:::i;:::-;24088:2;24083:3;24079:12;24072:19;;23731:366;;;:::o;24103:419::-;24269:4;24307:2;24296:9;24292:18;24284:26;;24356:9;24350:4;24346:20;24342:1;24331:9;24327:17;24320:47;24384:131;24510:4;24384:131;:::i;:::-;24376:139;;24103:419;;;:::o;24528:176::-;24668:28;24664:1;24656:6;24652:14;24645:52;24528:176;:::o;24710:366::-;24852:3;24873:67;24937:2;24932:3;24873:67;:::i;:::-;24866:74;;24949:93;25038:3;24949:93;:::i;:::-;25067:2;25062:3;25058:12;25051:19;;24710:366;;;:::o;25082:419::-;25248:4;25286:2;25275:9;25271:18;25263:26;;25335:9;25329:4;25325:20;25321:1;25310:9;25306:17;25299:47;25363:131;25489:4;25363:131;:::i;:::-;25355:139;;25082:419;;;:::o;25507:233::-;25546:3;25569:24;25587:5;25569:24;:::i;:::-;25560:33;;25615:66;25608:5;25605:77;25602:103;;25685:18;;:::i;:::-;25602:103;25732:1;25725:5;25721:13;25714:20;;25507:233;;;:::o;25746:194::-;25786:4;25806:20;25824:1;25806:20;:::i;:::-;25801:25;;25840:20;25858:1;25840:20;:::i;:::-;25835:25;;25884:1;25881;25877:9;25869:17;;25908:1;25902:4;25899:11;25896:37;;;25913:18;;:::i;:::-;25896:37;25746:194;;;;:::o;25946:180::-;25994:77;25991:1;25984:88;26091:4;26088:1;26081:15;26115:4;26112:1;26105:15;26132:180;26180:77;26177:1;26170:88;26277:4;26274:1;26267:15;26301:4;26298:1;26291:15;26318:114;26385:6;26419:5;26413:12;26403:22;;26318:114;;;:::o;26438:184::-;26537:11;26571:6;26566:3;26559:19;26611:4;26606:3;26602:14;26587:29;;26438:184;;;;:::o;26628:132::-;26695:4;26718:3;26710:11;;26748:4;26743:3;26739:14;26731:22;;26628:132;;;:::o;26766:108::-;26843:24;26861:5;26843:24;:::i;:::-;26838:3;26831:37;26766:108;;:::o;26880:179::-;26949:10;26970:46;27012:3;27004:6;26970:46;:::i;:::-;27048:4;27043:3;27039:14;27025:28;;26880:179;;;;:::o;27065:113::-;27135:4;27167;27162:3;27158:14;27150:22;;27065:113;;;:::o;27214:732::-;27333:3;27362:54;27410:5;27362:54;:::i;:::-;27432:86;27511:6;27506:3;27432:86;:::i;:::-;27425:93;;27542:56;27592:5;27542:56;:::i;:::-;27621:7;27652:1;27637:284;27662:6;27659:1;27656:13;27637:284;;;27738:6;27732:13;27765:63;27824:3;27809:13;27765:63;:::i;:::-;27758:70;;27851:60;27904:6;27851:60;:::i;:::-;27841:70;;27697:224;27684:1;27681;27677:9;27672:14;;27637:284;;;27641:14;27937:3;27930:10;;27338:608;;;27214:732;;;;:::o;27952:831::-;28215:4;28253:3;28242:9;28238:19;28230:27;;28267:71;28335:1;28324:9;28320:17;28311:6;28267:71;:::i;:::-;28348:80;28424:2;28413:9;28409:18;28400:6;28348:80;:::i;:::-;28475:9;28469:4;28465:20;28460:2;28449:9;28445:18;28438:48;28503:108;28606:4;28597:6;28503:108;:::i;:::-;28495:116;;28621:72;28689:2;28678:9;28674:18;28665:6;28621:72;:::i;:::-;28703:73;28771:3;28760:9;28756:19;28747:6;28703:73;:::i;:::-;27952:831;;;;;;;;:::o;28789:180::-;28837:77;28834:1;28827:88;28934:4;28931:1;28924:15;28958:4;28955:1;28948:15;28975:176;29007:1;29024:20;29042:1;29024:20;:::i;:::-;29019:25;;29058:20;29076:1;29058:20;:::i;:::-;29053:25;;29097:1;29087:35;;29102:18;;:::i;:::-;29087:35;29143:1;29140;29136:9;29131:14;;28975:176;;;;:::o;29157:185::-;29197:1;29214:20;29232:1;29214:20;:::i;:::-;29209:25;;29248:20;29266:1;29248:20;:::i;:::-;29243:25;;29287:1;29277:35;;29292:18;;:::i;:::-;29277:35;29334:1;29331;29327:9;29322:14;;29157:185;;;;:::o;29348:285::-;29408:5;29432:23;29450:4;29432:23;:::i;:::-;29424:31;;29476:27;29494:8;29476:27;:::i;:::-;29464:39;;29522:104;29559:66;29549:8;29543:4;29522:104;:::i;:::-;29513:113;;29348:285;;;;:::o;29639:220::-;29779:34;29775:1;29767:6;29763:14;29756:58;29848:3;29843:2;29835:6;29831:15;29824:28;29639:220;:::o;29865:366::-;30007:3;30028:67;30092:2;30087:3;30028:67;:::i;:::-;30021:74;;30104:93;30193:3;30104:93;:::i;:::-;30222:2;30217:3;30213:12;30206:19;;29865:366;;;:::o;30237:419::-;30403:4;30441:2;30430:9;30426:18;30418:26;;30490:9;30484:4;30480:20;30476:1;30465:9;30461:17;30454:47;30518:131;30644:4;30518:131;:::i;:::-;30510:139;;30237:419;;;:::o;30662:177::-;30802:29;30798:1;30790:6;30786:14;30779:53;30662:177;:::o;30845:366::-;30987:3;31008:67;31072:2;31067:3;31008:67;:::i;:::-;31001:74;;31084:93;31173:3;31084:93;:::i;:::-;31202:2;31197:3;31193:12;31186:19;;30845:366;;;:::o;31217:419::-;31383:4;31421:2;31410:9;31406:18;31398:26;;31470:9;31464:4;31460:20;31456:1;31445:9;31441:17;31434:47;31498:131;31624:4;31498:131;:::i;:::-;31490:139;;31217:419;;;:::o

Swarm Source

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