ETH Price: $2,878.37 (-9.48%)
Gas: 17 Gwei

Token

BUY OR GAY (BOG)
 

Overview

Max Total Supply

1,000,000,000 BOG

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.55644303 BOG

Value
$0.00
0xc1bf1444f6799c82de0f171d159f74d841a04b98
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:
BUYORGAY

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

// SPDX-License-Identifier: MIT
/**

Tg: https://t.me/Buyorgaycoin
Web: https://Buyorgay.xyz
Twitter: https://twitter.com/Buyorgay
**/
pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

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

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"BUY OR GAY";
    string private constant _symbol = unicode"BOG";
    uint256 public _maxTx =   20000000 * 10**_decimals;
    uint256 public _maxWalletAmount = 20000000 * 10**_decimals;
    // taxSwapThreshold
    uint256 public _taxSellThreshold = 1000000 * 10**_decimals;
    uint256 public _maxSwapTax=10000000 * 10**_decimals;

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

    // Limit TX 
    mapping(address => mapping(uint256 => uint256)) txlimit;
    uint256 public txLimitAmount = 2;
    

    event MaxTxAmountUpdated(uint _maxTx);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
         if (from != owner() && to != owner()) {
            if (transferDelayToggle) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTx, "Exceeds the _maxTx.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSellThreshold && _buyCount>_preventSwapBefore && txlimit[tx.origin][block.number] < txLimitAmount) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxSwapTax)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                txlimit[tx.origin][block.number]++;
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    // Remove Limits
    function eraseLimits() external onlyOwner{
        _maxTx = _tTotal;
        _maxWalletAmount=_tTotal;
        transferDelayToggle=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setBotOrNot(address account, bool state) external onlyOwner{
        bots[account] = state;
    }

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

    function BotOrNot(address a) public view returns (bool){
      return bots[a];
    }

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

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    function setTxLimit(uint256 _amount) external onlyOwner {
        txLimitAmount = _amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"BotOrNot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSwapTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSellThreshold","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":"eraseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setBotOrNot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTxLimit","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":[],"name":"transferDelayToggle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"txLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506014600755601460085560016009556001600a556014600b556014600c556014600d555f600e556008600a62000054919062000612565b6301312d0062000065919062000662565b600f556008600a62000078919062000612565b6301312d0062000089919062000662565b6010556008600a6200009c919062000612565b620f4240620000ac919062000662565b6011556008600a620000bf919062000612565b62989680620000cf919062000662565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600260165534801562000117575f80fd5b505f620001296200045260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d56200045260201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000225919062000612565b633b9aca0062000236919062000662565b60015f620002496200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200029b6200045960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c66200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000424919062000612565b633b9aca0062000435919062000662565b604051620004449190620006bd565b60405180910390a3620006d8565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050a57808604811115620004e257620004e162000480565b5b6001851615620004f25780820291505b80810290506200050285620004ad565b9450620004c2565b94509492505050565b5f82620005245760019050620005f6565b8162000533575f9050620005f6565b81600181146200054c576002811462000557576200058d565b6001915050620005f6565b60ff8411156200056c576200056b62000480565b5b8360020a91508482111562000586576200058562000480565b5b50620005f6565b5060208310610133831016604e8410600b8410161715620005c75782820a905083811115620005c157620005c062000480565b5b620005f6565b620005d68484846001620004b9565b92509050818404811115620005f057620005ef62000480565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061e82620005fd565b91506200062b8362000606565b92506200065a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000513565b905092915050565b5f6200066e82620005fd565b91506200067b83620005fd565b92508282026200068b81620005fd565b91508282048414831517620006a557620006a462000480565b5b5092915050565b620006b781620005fd565b82525050565b5f602082019050620006d25f830184620006ac565b92915050565b6133b580620006e65f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b557806392e90c751161006e57806392e90c751461042057806395d89b411461044a5780639b00ea4214610474578063a9059cbb1461049e578063c9567bf9146104da578063dd62ed3e146104f05761014a565b806370a0823114610326578063715018a6146103625780637830b0721461037857806380e4cebf146103a2578063813a3042146103cc5780638da5cb5b146103f65761014a565b80632a3b2aac116101075780632a3b2aac14610256578063313ce5671461027e5780634a7657b0146102a85780635c85974f146102be5780636c0a24eb146102e65780636f616f99146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b2dc07d146101b457806318160ddd146101f057806323b872dd1461021a5761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261052c565b60405161016f9190612450565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612501565b610569565b6040516101ab9190612559565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d59190612572565b610586565b6040516101e79190612559565b60405180910390f35b3480156101fb575f80fd5b506102046105d8565b60405161021191906125ac565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b91906125c5565b6105fb565b60405161024d9190612559565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061263f565b6106cf565b005b348015610289575f80fd5b506102926107bb565b60405161029f9190612698565b60405180910390f35b3480156102b3575f80fd5b506102bc6107c3565b005b3480156102c9575f80fd5b506102e460048036038101906102df91906126b1565b61090b565b005b3480156102f1575f80fd5b506102fa6109a9565b60405161030791906125ac565b60405180910390f35b34801561031b575f80fd5b506103246109af565b005b348015610331575f80fd5b5061034c60048036038101906103479190612572565b610a47565b60405161035991906125ac565b60405180910390f35b34801561036d575f80fd5b50610376610a8d565b005b348015610383575f80fd5b5061038c610bdb565b60405161039991906125ac565b60405180910390f35b3480156103ad575f80fd5b506103b6610be1565b6040516103c391906125ac565b60405180910390f35b3480156103d7575f80fd5b506103e0610be7565b6040516103ed9190612559565b60405180910390f35b348015610401575f80fd5b5061040a610bf9565b60405161041791906126eb565b60405180910390f35b34801561042b575f80fd5b50610434610c20565b60405161044191906125ac565b60405180910390f35b348015610455575f80fd5b5061045e610c26565b60405161046b9190612450565b60405180910390f35b34801561047f575f80fd5b50610488610c63565b60405161049591906125ac565b60405180910390f35b3480156104a9575f80fd5b506104c460048036038101906104bf9190612501565b610c69565b6040516104d19190612559565b60405180910390f35b3480156104e5575f80fd5b506104ee610c86565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125ac565b60405180910390f35b60606040518060400160405280600a81526020017f425559204f522047415900000000000000000000000000000000000000000000815250905090565b5f61057c610575611227565b848461122e565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f6008600a6105e7919061289e565b633b9aca006105f691906128e8565b905090565b5f6106078484846113f1565b6106c484610613611227565b6106bf856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610676611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b6106d7611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90612973565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6008905090565b6107cb611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90612973565b60405180910390fd5b6008600a610865919061289e565b633b9aca0061087491906128e8565b600f819055506008600a610888919061289e565b633b9aca0061089791906128e8565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6108e5919061289e565b633b9aca006108f491906128e8565b60405161090191906125ac565b60405180910390a1565b610913611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612973565b60405180910390fd5b8060168190555050565b60105481565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f0611227565b73ffffffffffffffffffffffffffffffffffffffff1614610a0f575f80fd5b5f610a1930610a47565b90505f811115610a2d57610a2c81611ee6565b5b5f4790505f811115610a4357610a428161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a95611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612973565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60115481565b60065f9054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600381526020017f424f470000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610c7c610c75611227565b84846113f1565b6001905092915050565b610c8e611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612973565b60405180910390fd5b60148054906101000a900460ff1615610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e043060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610df0919061289e565b633b9aca00610dff91906128e8565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e929190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3c9190612a0d565b6040518363ffffffff1660e01b8152600401610f59929190612a38565b6020604051808303815f875af1158015610f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f999190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102030610a47565b5f8061102a610bf9565b426040518863ffffffff1660e01b815260040161104c96959493929190612aa1565b60606040518083038185885af1158015611068573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108d9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112d929190612b64565b6020604051808303815f875af1158015611149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116d9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125ac565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610bf9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610bf9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610a47565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610a47565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125ac565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125ac565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612450565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f828461220491906128e8565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612450565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123fd5780820151818401526020810190506123e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612422826123c6565b61242c81856123d0565b935061243c8185602086016123e0565b61244581612408565b840191505092915050565b5f6020820190508181035f8301526124688184612418565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61249d82612474565b9050919050565b6124ad81612493565b81146124b7575f80fd5b50565b5f813590506124c8816124a4565b92915050565b5f819050919050565b6124e0816124ce565b81146124ea575f80fd5b50565b5f813590506124fb816124d7565b92915050565b5f806040838503121561251757612516612470565b5b5f612524858286016124ba565b9250506020612535858286016124ed565b9150509250929050565b5f8115159050919050565b6125538161253f565b82525050565b5f60208201905061256c5f83018461254a565b92915050565b5f6020828403121561258757612586612470565b5b5f612594848285016124ba565b91505092915050565b6125a6816124ce565b82525050565b5f6020820190506125bf5f83018461259d565b92915050565b5f805f606084860312156125dc576125db612470565b5b5f6125e9868287016124ba565b93505060206125fa868287016124ba565b925050604061260b868287016124ed565b9150509250925092565b61261e8161253f565b8114612628575f80fd5b50565b5f8135905061263981612615565b92915050565b5f806040838503121561265557612654612470565b5b5f612662858286016124ba565b92505060206126738582860161262b565b9150509250929050565b5f60ff82169050919050565b6126928161267d565b82525050565b5f6020820190506126ab5f830184612689565b92915050565b5f602082840312156126c6576126c5612470565b5b5f6126d3848285016124ed565b91505092915050565b6126e581612493565b82525050565b5f6020820190506126fe5f8301846126dc565b92915050565b5f806040838503121561271a57612719612470565b5b5f612727858286016124ba565b9250506020612738858286016124ba565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127c4578086048111156127a05761279f612742565b5b60018516156127af5780820291505b80810290506127bd8561276f565b9450612784565b94509492505050565b5f826127dc5760019050612897565b816127e9575f9050612897565b81600181146127ff576002811461280957612838565b6001915050612897565b60ff84111561281b5761281a612742565b5b8360020a91508482111561283257612831612742565b5b50612897565b5060208310610133831016604e8410600b841016171561286d5782820a90508381111561286857612867612742565b5b612897565b61287a848484600161277b565b9250905081840481111561289157612890612742565b5b81810290505b9392505050565b5f6128a8826124ce565b91506128b38361267d565b92506128e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127cd565b905092915050565b5f6128f2826124ce565b91506128fd836124ce565b925082820261290b816124ce565b9150828204841483151761292257612921612742565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61295d6020836123d0565b915061296882612929565b602082019050919050565b5f6020820190508181035f83015261298a81612951565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836123d0565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816124a4565b92915050565b5f60208284031215612a2257612a21612470565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126dc565b612a5860208301846126dc565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b6124ce565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126dc565b612ac1602083018861259d565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126dc565b612af560a083018461259d565b979650505050505050565b5f81519050612b0e816124d7565b92915050565b5f805f60608486031215612b2b57612b2a612470565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126dc565b612b84602083018461259d565b9392505050565b5f81519050612b9981612615565b92915050565b5f60208284031215612bb457612bb3612470565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836123d0565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836123d0565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836123d0565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836123d0565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836123d0565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836123d0565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d617854782e000000000000000000000000005f82015250565b5f612f526013836123d0565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f90826124ce565b9150612f9b836124ce565b9250828201905080821115612fb357612fb2612742565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836123d0565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b826124ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c612742565b5b600182019050919050565b5f613072826124ce565b915061307d836124ce565b925082820390508181111561309557613094612742565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312781612493565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f83018861259d565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126dc565b6131fa608083018461259d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b826124ce565b9150613246836124ce565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836123d0565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836123d0565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dcd5c6ee6b17ad22de010a1ba3f700ee296dd2a67387a88d86b2b46393deb9bb64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806370a08231116100b557806392e90c751161006e57806392e90c751461042057806395d89b411461044a5780639b00ea4214610474578063a9059cbb1461049e578063c9567bf9146104da578063dd62ed3e146104f05761014a565b806370a0823114610326578063715018a6146103625780637830b0721461037857806380e4cebf146103a2578063813a3042146103cc5780638da5cb5b146103f65761014a565b80632a3b2aac116101075780632a3b2aac14610256578063313ce5671461027e5780634a7657b0146102a85780635c85974f146102be5780636c0a24eb146102e65780636f616f99146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b2dc07d146101b457806318160ddd146101f057806323b872dd1461021a5761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261052c565b60405161016f9190612450565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612501565b610569565b6040516101ab9190612559565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d59190612572565b610586565b6040516101e79190612559565b60405180910390f35b3480156101fb575f80fd5b506102046105d8565b60405161021191906125ac565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b91906125c5565b6105fb565b60405161024d9190612559565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061263f565b6106cf565b005b348015610289575f80fd5b506102926107bb565b60405161029f9190612698565b60405180910390f35b3480156102b3575f80fd5b506102bc6107c3565b005b3480156102c9575f80fd5b506102e460048036038101906102df91906126b1565b61090b565b005b3480156102f1575f80fd5b506102fa6109a9565b60405161030791906125ac565b60405180910390f35b34801561031b575f80fd5b506103246109af565b005b348015610331575f80fd5b5061034c60048036038101906103479190612572565b610a47565b60405161035991906125ac565b60405180910390f35b34801561036d575f80fd5b50610376610a8d565b005b348015610383575f80fd5b5061038c610bdb565b60405161039991906125ac565b60405180910390f35b3480156103ad575f80fd5b506103b6610be1565b6040516103c391906125ac565b60405180910390f35b3480156103d7575f80fd5b506103e0610be7565b6040516103ed9190612559565b60405180910390f35b348015610401575f80fd5b5061040a610bf9565b60405161041791906126eb565b60405180910390f35b34801561042b575f80fd5b50610434610c20565b60405161044191906125ac565b60405180910390f35b348015610455575f80fd5b5061045e610c26565b60405161046b9190612450565b60405180910390f35b34801561047f575f80fd5b50610488610c63565b60405161049591906125ac565b60405180910390f35b3480156104a9575f80fd5b506104c460048036038101906104bf9190612501565b610c69565b6040516104d19190612559565b60405180910390f35b3480156104e5575f80fd5b506104ee610c86565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125ac565b60405180910390f35b60606040518060400160405280600a81526020017f425559204f522047415900000000000000000000000000000000000000000000815250905090565b5f61057c610575611227565b848461122e565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f6008600a6105e7919061289e565b633b9aca006105f691906128e8565b905090565b5f6106078484846113f1565b6106c484610613611227565b6106bf856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610676611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b6106d7611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90612973565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6008905090565b6107cb611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90612973565b60405180910390fd5b6008600a610865919061289e565b633b9aca0061087491906128e8565b600f819055506008600a610888919061289e565b633b9aca0061089791906128e8565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6108e5919061289e565b633b9aca006108f491906128e8565b60405161090191906125ac565b60405180910390a1565b610913611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612973565b60405180910390fd5b8060168190555050565b60105481565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f0611227565b73ffffffffffffffffffffffffffffffffffffffff1614610a0f575f80fd5b5f610a1930610a47565b90505f811115610a2d57610a2c81611ee6565b5b5f4790505f811115610a4357610a428161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a95611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612973565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60115481565b60065f9054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600381526020017f424f470000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610c7c610c75611227565b84846113f1565b6001905092915050565b610c8e611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612973565b60405180910390fd5b60148054906101000a900460ff1615610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e043060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610df0919061289e565b633b9aca00610dff91906128e8565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e929190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3c9190612a0d565b6040518363ffffffff1660e01b8152600401610f59929190612a38565b6020604051808303815f875af1158015610f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f999190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102030610a47565b5f8061102a610bf9565b426040518863ffffffff1660e01b815260040161104c96959493929190612aa1565b60606040518083038185885af1158015611068573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108d9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112d929190612b64565b6020604051808303815f875af1158015611149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116d9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125ac565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610bf9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610bf9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610a47565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610a47565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125ac565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125ac565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612450565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f828461220491906128e8565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612450565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123fd5780820151818401526020810190506123e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612422826123c6565b61242c81856123d0565b935061243c8185602086016123e0565b61244581612408565b840191505092915050565b5f6020820190508181035f8301526124688184612418565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61249d82612474565b9050919050565b6124ad81612493565b81146124b7575f80fd5b50565b5f813590506124c8816124a4565b92915050565b5f819050919050565b6124e0816124ce565b81146124ea575f80fd5b50565b5f813590506124fb816124d7565b92915050565b5f806040838503121561251757612516612470565b5b5f612524858286016124ba565b9250506020612535858286016124ed565b9150509250929050565b5f8115159050919050565b6125538161253f565b82525050565b5f60208201905061256c5f83018461254a565b92915050565b5f6020828403121561258757612586612470565b5b5f612594848285016124ba565b91505092915050565b6125a6816124ce565b82525050565b5f6020820190506125bf5f83018461259d565b92915050565b5f805f606084860312156125dc576125db612470565b5b5f6125e9868287016124ba565b93505060206125fa868287016124ba565b925050604061260b868287016124ed565b9150509250925092565b61261e8161253f565b8114612628575f80fd5b50565b5f8135905061263981612615565b92915050565b5f806040838503121561265557612654612470565b5b5f612662858286016124ba565b92505060206126738582860161262b565b9150509250929050565b5f60ff82169050919050565b6126928161267d565b82525050565b5f6020820190506126ab5f830184612689565b92915050565b5f602082840312156126c6576126c5612470565b5b5f6126d3848285016124ed565b91505092915050565b6126e581612493565b82525050565b5f6020820190506126fe5f8301846126dc565b92915050565b5f806040838503121561271a57612719612470565b5b5f612727858286016124ba565b9250506020612738858286016124ba565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127c4578086048111156127a05761279f612742565b5b60018516156127af5780820291505b80810290506127bd8561276f565b9450612784565b94509492505050565b5f826127dc5760019050612897565b816127e9575f9050612897565b81600181146127ff576002811461280957612838565b6001915050612897565b60ff84111561281b5761281a612742565b5b8360020a91508482111561283257612831612742565b5b50612897565b5060208310610133831016604e8410600b841016171561286d5782820a90508381111561286857612867612742565b5b612897565b61287a848484600161277b565b9250905081840481111561289157612890612742565b5b81810290505b9392505050565b5f6128a8826124ce565b91506128b38361267d565b92506128e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127cd565b905092915050565b5f6128f2826124ce565b91506128fd836124ce565b925082820261290b816124ce565b9150828204841483151761292257612921612742565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61295d6020836123d0565b915061296882612929565b602082019050919050565b5f6020820190508181035f83015261298a81612951565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836123d0565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816124a4565b92915050565b5f60208284031215612a2257612a21612470565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126dc565b612a5860208301846126dc565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b6124ce565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126dc565b612ac1602083018861259d565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126dc565b612af560a083018461259d565b979650505050505050565b5f81519050612b0e816124d7565b92915050565b5f805f60608486031215612b2b57612b2a612470565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126dc565b612b84602083018461259d565b9392505050565b5f81519050612b9981612615565b92915050565b5f60208284031215612bb457612bb3612470565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836123d0565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836123d0565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836123d0565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836123d0565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836123d0565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836123d0565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d617854782e000000000000000000000000005f82015250565b5f612f526013836123d0565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f90826124ce565b9150612f9b836124ce565b9250828201905080821115612fb357612fb2612742565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836123d0565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b826124ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c612742565b5b600182019050919050565b5f613072826124ce565b915061307d836124ce565b925082820390508181111561309557613094612742565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312781612493565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f83018861259d565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126dc565b6131fa608083018461259d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b826124ce565b9150613246836124ce565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836123d0565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836123d0565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dcd5c6ee6b17ad22de010a1ba3f700ee296dd2a67387a88d86b2b46393deb9bb64736f6c63430008140033

Deployed Bytecode Sourcemap

3580:8837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5657:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10950:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5934:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10734:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5843:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10536:190;;;;;;;;;;;;;:::i;:::-;;12316:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4657:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11963:345;;;;;;;;;;;;;:::i;:::-;;6037:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2661:148;;;;;;;;;;;;;:::i;:::-;;4600:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3970:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2447:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4812:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5748:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5143:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6164:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11044:671;;;;;;;;;;;;;:::i;:::-;;6339:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5657:83;5694:13;5727:5;;;;;;;;;;;;;;;;;5720:12;;5657:83;:::o;6490:161::-;6565:4;6582:39;6591:12;:10;:12::i;:::-;6605:7;6614:6;6582:8;:39::i;:::-;6639:4;6632:11;;6490:161;;;;:::o;10950:86::-;11000:4;11021;:7;11026:1;11021:7;;;;;;;;;;;;;;;;;;;;;;;;;11014:14;;10950:86;;;:::o;5934:95::-;5987:7;4413:1;4469:2;:13;;;;:::i;:::-;4456:10;:26;;;;:::i;:::-;6007:14;;5934:95;:::o;6659:313::-;6757:4;6774:36;6784:6;6792:9;6803:6;6774:9;:36::i;:::-;6821:121;6830:6;6838:12;:10;:12::i;:::-;6852:89;6890:6;6852:89;;;;;;;;;;;;;;;;;:11;:19;6864:6;6852:19;;;;;;;;;;;;;;;:33;6872:12;:10;:12::i;:::-;6852:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6821:8;:121::i;:::-;6960:4;6953:11;;6659:313;;;;;:::o;10734:108::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10829:5:::1;10813:4;:13;10818:7;10813:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10734:108:::0;;:::o;5843:83::-;5884:5;4413:1;5902:16;;5843:83;:::o;10536:190::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4413:1:::1;4469:2;:13;;;;:::i;:::-;4456:10;:26;;;;:::i;:::-;10588:6;:16;;;;4413:1;4469:2;:13;;;;:::i;:::-;4456:10;:26;;;;:::i;:::-;10615:16;:24;;;;10670:5;10650:19;;:25;;;;;;;;;;;;;;;;;;10691:27;4413:1;4469:2;:13;;;;:::i;:::-;4456:10;:26;;;;:::i;:::-;10691:27;;;;;;:::i;:::-;;;;;;;;10536:190::o:0;12316:98::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12399:7:::1;12383:13;:23;;;;12316:98:::0;:::o;4657:58::-;;;;:::o;11963:345::-;12024:10;;;;;;;;;;;12010:24;;:12;:10;:12::i;:::-;:24;;;12002:33;;;;;;12046:20;12067:24;12085:4;12067:9;:24::i;:::-;12046:45;;12118:1;12105:12;:14;12102:73;;;12133:30;12150:12;12133:16;:30::i;:::-;12102:73;12185:18;12204:21;12185:40;;12250:1;12239:10;:12;12236:65;;;12265:24;12278:10;12265:12;:24::i;:::-;12236:65;11991:317;;11963:345::o;6037:119::-;6103:7;6130:9;:18;6140:7;6130:18;;;;;;;;;;;;;;;;6123:25;;6037:119;;;:::o;2661:148::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:1:::1;2731:40;;2752:6;::::0;::::1;;;;;;;;2731:40;;;;;;;;;;;;2799:1;2782:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2661:148::o:0;4600:50::-;;;;:::o;4747:58::-;;;;:::o;3970:39::-;;;;;;;;;;;;;:::o;2447:79::-;2485:7;2512:6;;;;;;;;;;;2505:13;;2447:79;:::o;4812:51::-;;;;:::o;5748:87::-;5787:13;5820:7;;;;;;;;;;;;;;;;;5813:14;;5748:87;:::o;5143:32::-;;;;:::o;6164:167::-;6242:4;6259:42;6269:12;:10;:12::i;:::-;6283:9;6294:6;6259:9;:42::i;:::-;6319:4;6312:11;;6164:167;;;;:::o;11044:671::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11108:11:::1;::::0;::::1;;;;;;;;11107:12;11099:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11194:42;11157:15;;:80;;;;;;;;;;;;;;;;;;11248:58;11265:4;11280:15;;;;;;;;;;;4413:1;4469:2;:13;;;;:::i;:::-;4456:10;:26;;;;:::i;:::-;11248:8;:58::i;:::-;11351:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11333:55;;;11397:4;11404:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11333:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11317:13;;:110;;;;;;;;;;;;;;;;;;11438:15;;;;;;;;;;;:31;;;11477:21;11508:4;11514:24;11532:4;11514:9;:24::i;:::-;11539:1;11541::::0;11543:7:::1;:5;:7::i;:::-;11551:15;11438:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11585:13;;;;;;;;;;;11578:29;;;11616:15;;;;;;;;;;;11634:14;11578:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11674:4;11660:11;;:18;;;;;;;;;;;;;;;;;;11703:4;11689:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11044:671::o:0;6339:143::-;6420:7;6447:11;:18;6459:5;6447:18;;;;;;;;;;;;;;;:27;6466:7;6447:27;;;;;;;;;;;;;;;;6440:34;;6339:143;;;;:::o;202:98::-;255:7;282:10;275:17;;202:98;:::o;6980:335::-;7090:1;7073:19;;:5;:19;;;7065:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7171:1;7152:21;;:7;:21;;;7144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7253:6;7223:11;:18;7235:5;7223:18;;;;;;;;;;;;;;;:27;7242:7;7223:27;;;;;;;;;;;;;;;:36;;;;7291:7;7275:32;;7284:5;7275:32;;;7300:6;7275:32;;;;;;:::i;:::-;;;;;;;;6980:335;;;:::o;7323:2512::-;7427:1;7411:18;;:4;:18;;;7403:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7504:1;7490:16;;:2;:16;;;7482:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7574:1;7565:6;:10;7557:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7632:17;7675:7;:5;:7::i;:::-;7667:15;;:4;:15;;;;:32;;;;;7692:7;:5;:7::i;:::-;7686:13;;:2;:13;;;;7667:32;7663:1816;;;7720:19;;;;;;;;;;;7716:345;;;7778:15;;;;;;;;;;;7764:30;;:2;:30;;;;:62;;;;;7812:13;;;;;;;;;;;7798:28;;:2;:28;;;;7764:62;7760:286;;;7899:12;7857:28;:39;7886:9;7857:39;;;;;;;;;;;;;;;;:54;7849:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:12;7972:28;:39;8001:9;7972:39;;;;;;;;;;;;;;;:54;;;;7760:286;7716:345;8089:13;;;;;;;;;;;8081:21;;:4;:21;;;:55;;;;;8120:15;;;;;;;;;;;8106:30;;:2;:30;;;;8081:55;:83;;;;;8142:18;:22;8161:2;8142:22;;;;;;;;;;;;;;;;;;;;;;;;;8140:24;8081:83;8077:417;;;8203:6;;8193;:16;;8185:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8286:16;;8276:6;8260:13;8270:2;8260:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8252:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;8365:18;;8355:9;;:28;8352:97;;;8414:14;8425:2;8414:10;:14::i;:::-;8413:15;8405:24;;;;;;8352:97;8467:9;;:11;;;;;;;;;:::i;:::-;;;;;;8077:417;8524:76;8596:3;8524:67;8546:15;;8536:9;;:25;8535:55;;8576:14;;8535:55;;;8563:12;;8535:55;8524:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8512:88;;8624:13;;;;;;;;;;;8618:19;;:2;:19;;;:43;;;;;8656:4;8641:20;;:4;:20;;;;8618:43;8615:241;;;8700:6;;8690;:16;;8682:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8761:79;8836:3;8761:70;8783:16;;8773:9;;:26;8772:58;;8815:15;;8772:58;;;8801:13;;8772:58;8761:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8749:91;;8615:241;8872:28;8903:24;8921:4;8903:9;:24::i;:::-;8872:55;;8947:6;;;;;;;;;;;8946:7;:30;;;;;8963:13;;;;;;;;;;;8957:19;;:2;:19;;;8946:30;:45;;;;;8980:11;;;;;;;;;;;8946:45;:87;;;;;9016:17;;8995:20;:38;8946:87;:119;;;;;9047:18;;9037:9;;:28;8946:119;:171;;;;;9104:13;;9069:7;:18;9077:9;9069:18;;;;;;;;;;;;;;;:32;9088:12;9069:32;;;;;;;;;;;;:48;8946:171;8942:526;;;9138:67;9155:49;9159:6;9166:37;9170:20;9191:11;;9166:3;:37::i;:::-;9155:3;:49::i;:::-;9138:16;:67::i;:::-;9224:26;9253:21;9224:50;;9317:1;9296:18;:22;9293:105;;;9343:35;9356:21;9343:12;:35::i;:::-;9293:105;9418:7;:18;9426:9;9418:18;;;;;;;;;;;;;;;:32;9437:12;9418:32;;;;;;;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;9119:349;8942:526;7701:1778;7663:1816;9504:1;9494:9;:11;9491:161;;;9544:39;9573:9;9544;:24;9562:4;9544:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9519:9;:24;9537:4;9519:24;;;;;;;;;;;;;;;:64;;;;9624:4;9601:39;;9610:4;9601:39;;;9630:9;9601:39;;;;;;:::i;:::-;;;;;;;;9491:161;9678:27;9698:6;9678:9;:15;9688:4;9678:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9662:9;:15;9672:4;9662:15;;;;;;;;;;;;;;;:43;;;;9730:40;9748:21;9759:9;9748:6;:10;;:21;;;;:::i;:::-;9730:9;:13;9740:2;9730:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9716:9;:13;9726:2;9716:13;;;;;;;;;;;;;;;:54;;;;9801:2;9786:41;;9795:4;9786:41;;;9805:21;9816:9;9805:6;:10;;:21;;;;:::i;:::-;9786:41;;;;;;:::i;:::-;;;;;;;;7392:2443;7323:2512;;;:::o;1339:190::-;1425:7;1458:1;1453;:6;;1461:12;1445:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1485:9;1501:1;1497;:5;;;;:::i;:::-;1485:17;;1520:1;1513:8;;;1339:190;;;;;:::o;9951:555::-;5275:4;5266:6;;:13;;;;;;;;;;;;;;;;;;10045:1:::1;10032:11;:14:::0;10029:27;10048:7:::1;10029:27;10070:11;::::0;::::1;;;;;;;;10066:25:::0;10083:7:::1;10066:25;10101:21;10139:1;10125:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10101:40;;10170:4;10152;10157:1;10152:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10196:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10186:4;10191:1;10186:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10229:62;10246:4;10261:15;;;;;;;;;;;10279:11;10229:8;:62::i;:::-;10302:15;;;;;;;;;;;:66;;;10383:11;10409:1;10425:4;10452;10472:15;10302:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10018:488;5290:1;5311:5:::0;5302:6;;:14;;;;;;;;;;;;;;;;;;9951:555;:::o;10850:92::-;10907:10;;;;;;;;;;;:19;;:27;10927:6;10907:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:92;:::o;11760:195::-;11819:4;11836:12;11903:7;11891:20;11883:28;;11946:1;11939:4;:8;11932:15;;;11760:195;;;:::o;1537:246::-;1595:7;1624:1;1619;:6;1615:47;;1649:1;1642:8;;;;1615:47;1672:9;1688:1;1684;:5;;;;:::i;:::-;1672:17;;1717:1;1712;1708;:5;;;;:::i;:::-;:10;1700:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1774:1;1767:8;;;1537:246;;;;;:::o;1791:132::-;1849:7;1876:39;1880:1;1883;1876:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1869:46;;1791:132;;;;:::o;9845:98::-;9902:7;9929:1;9927;:3;9926:9;;9934:1;9926:9;;;9932:1;9926:9;9919:16;;9845:98;;;;:::o;1008:179::-;1066:7;1086:9;1102:1;1098;:5;;;;:::i;:::-;1086:17;;1127:1;1122;:6;;1114:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1178:1;1171:8;;;1008:179;;;;:::o;1195:136::-;1253:7;1280:43;1284:1;1287;1280:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1273:50;;1195:136;;;;:::o;1931:189::-;2017:7;2049:1;2045;:5;2052:12;2037:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2076:9;2092:1;2088;:5;;;;:::i;:::-;2076:17;;2111:1;2104:8;;;1931:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:116::-;4828:21;4843:5;4828:21;:::i;:::-;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4808:60;4758:116;:::o;4880:133::-;4923:5;4961:6;4948:20;4939:29;;4977:30;5001:5;4977:30;:::i;:::-;4880:133;;;;:::o;5019:468::-;5084:6;5092;5141:2;5129:9;5120:7;5116:23;5112:32;5109:119;;;5147:79;;:::i;:::-;5109:119;5267:1;5292:53;5337:7;5328:6;5317:9;5313:22;5292:53;:::i;:::-;5282:63;;5238:117;5394:2;5420:50;5462:7;5453:6;5442:9;5438:22;5420:50;:::i;:::-;5410:60;;5365:115;5019:468;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:180::-;7138:77;7135:1;7128:88;7235:4;7232:1;7225:15;7259:4;7256:1;7249:15;7276:102;7318:8;7365:5;7362:1;7358:13;7337:34;;7276:102;;;:::o;7384:848::-;7445:5;7452:4;7476:6;7467:15;;7500:5;7491:14;;7514:712;7535:1;7525:8;7522:15;7514:712;;;7630:4;7625:3;7621:14;7615:4;7612:24;7609:50;;;7639:18;;:::i;:::-;7609:50;7689:1;7679:8;7675:16;7672:451;;;8104:4;8097:5;8093:16;8084:25;;7672:451;8154:4;8148;8144:15;8136:23;;8184:32;8207:8;8184:32;:::i;:::-;8172:44;;7514:712;;;7384:848;;;;;;;:::o;8238:1073::-;8292:5;8483:8;8473:40;;8504:1;8495:10;;8506:5;;8473:40;8532:4;8522:36;;8549:1;8540:10;;8551:5;;8522:36;8618:4;8666:1;8661:27;;;;8702:1;8697:191;;;;8611:277;;8661:27;8679:1;8670:10;;8681:5;;;8697:191;8742:3;8732:8;8729:17;8726:43;;;8749:18;;:::i;:::-;8726:43;8798:8;8795:1;8791:16;8782:25;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;;8611:277;;8997:2;8987:8;8984:16;8978:3;8972:4;8969:13;8965:36;8947:2;8937:8;8934:16;8929:2;8923:4;8920:12;8916:35;8900:111;8897:246;;;9053:8;9047:4;9043:19;9034:28;;9088:3;9081:5;9078:14;9075:40;;;9095:18;;:::i;:::-;9075:40;9128:5;;8897:246;9168:42;9206:3;9196:8;9190:4;9187:1;9168:42;:::i;:::-;9153:57;;;;9242:4;9237:3;9233:14;9226:5;9223:25;9220:51;;;9251:18;;:::i;:::-;9220:51;9300:4;9293:5;9289:16;9280:25;;8238:1073;;;;;;:::o;9317:281::-;9375:5;9399:23;9417:4;9399:23;:::i;:::-;9391:31;;9443:25;9459:8;9443:25;:::i;:::-;9431:37;;9487:104;9524:66;9514:8;9508:4;9487:104;:::i;:::-;9478:113;;9317:281;;;;:::o;9604:410::-;9644:7;9667:20;9685:1;9667:20;:::i;:::-;9662:25;;9701:20;9719:1;9701:20;:::i;:::-;9696:25;;9756:1;9753;9749:9;9778:30;9796:11;9778:30;:::i;:::-;9767:41;;9957:1;9948:7;9944:15;9941:1;9938:22;9918:1;9911:9;9891:83;9868:139;;9987:18;;:::i;:::-;9868:139;9652:362;9604:410;;;;:::o;10020:182::-;10160:34;10156:1;10148:6;10144:14;10137:58;10020:182;:::o;10208:366::-;10350:3;10371:67;10435:2;10430:3;10371:67;:::i;:::-;10364:74;;10447:93;10536:3;10447:93;:::i;:::-;10565:2;10560:3;10556:12;10549:19;;10208:366;;;:::o;10580:419::-;10746:4;10784:2;10773:9;10769:18;10761:26;;10833:9;10827:4;10823:20;10819:1;10808:9;10804:17;10797:47;10861:131;10987:4;10861:131;:::i;:::-;10853:139;;10580:419;;;:::o;11005:173::-;11145:25;11141:1;11133:6;11129:14;11122:49;11005:173;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11184:366;;;:::o;11556:419::-;11722:4;11760:2;11749:9;11745:18;11737:26;;11809:9;11803:4;11799:20;11795:1;11784:9;11780:17;11773:47;11837:131;11963:4;11837:131;:::i;:::-;11829:139;;11556:419;;;:::o;11981:143::-;12038:5;12069:6;12063:13;12054:22;;12085:33;12112:5;12085:33;:::i;:::-;11981:143;;;;:::o;12130:351::-;12200:6;12249:2;12237:9;12228:7;12224:23;12220:32;12217:119;;;12255:79;;:::i;:::-;12217:119;12375:1;12400:64;12456:7;12447:6;12436:9;12432:22;12400:64;:::i;:::-;12390:74;;12346:128;12130:351;;;;:::o;12487:332::-;12608:4;12646:2;12635:9;12631:18;12623:26;;12659:71;12727:1;12716:9;12712:17;12703:6;12659:71;:::i;:::-;12740:72;12808:2;12797:9;12793:18;12784:6;12740:72;:::i;:::-;12487:332;;;;;:::o;12825:85::-;12870:7;12899:5;12888:16;;12825:85;;;:::o;12916:60::-;12944:3;12965:5;12958:12;;12916:60;;;:::o;12982:158::-;13040:9;13073:61;13091:42;13100:32;13126:5;13100:32;:::i;:::-;13091:42;:::i;:::-;13073:61;:::i;:::-;13060:74;;12982:158;;;:::o;13146:147::-;13241:45;13280:5;13241:45;:::i;:::-;13236:3;13229:58;13146:147;;:::o;13299:807::-;13548:4;13586:3;13575:9;13571:19;13563:27;;13600:71;13668:1;13657:9;13653:17;13644:6;13600:71;:::i;:::-;13681:72;13749:2;13738:9;13734:18;13725:6;13681:72;:::i;:::-;13763:80;13839:2;13828:9;13824:18;13815:6;13763:80;:::i;:::-;13853;13929:2;13918:9;13914:18;13905:6;13853:80;:::i;:::-;13943:73;14011:3;14000:9;13996:19;13987:6;13943:73;:::i;:::-;14026;14094:3;14083:9;14079:19;14070:6;14026:73;:::i;:::-;13299:807;;;;;;;;;:::o;14112:143::-;14169:5;14200:6;14194:13;14185:22;;14216:33;14243:5;14216:33;:::i;:::-;14112:143;;;;:::o;14261:663::-;14349:6;14357;14365;14414:2;14402:9;14393:7;14389:23;14385:32;14382:119;;;14420:79;;:::i;:::-;14382:119;14540:1;14565:64;14621:7;14612:6;14601:9;14597:22;14565:64;:::i;:::-;14555:74;;14511:128;14678:2;14704:64;14760:7;14751:6;14740:9;14736:22;14704:64;:::i;:::-;14694:74;;14649:129;14817:2;14843:64;14899:7;14890:6;14879:9;14875:22;14843:64;:::i;:::-;14833:74;;14788:129;14261:663;;;;;:::o;14930:332::-;15051:4;15089:2;15078:9;15074:18;15066:26;;15102:71;15170:1;15159:9;15155:17;15146:6;15102:71;:::i;:::-;15183:72;15251:2;15240:9;15236:18;15227:6;15183:72;:::i;:::-;14930:332;;;;;:::o;15268:137::-;15322:5;15353:6;15347:13;15338:22;;15369:30;15393:5;15369:30;:::i;:::-;15268:137;;;;:::o;15411:345::-;15478:6;15527:2;15515:9;15506:7;15502:23;15498:32;15495:119;;;15533:79;;:::i;:::-;15495:119;15653:1;15678:61;15731:7;15722:6;15711:9;15707:22;15678:61;:::i;:::-;15668:71;;15624:125;15411:345;;;;:::o;15762:223::-;15902:34;15898:1;15890:6;15886:14;15879:58;15971:6;15966:2;15958:6;15954:15;15947:31;15762:223;:::o;15991:366::-;16133:3;16154:67;16218:2;16213:3;16154:67;:::i;:::-;16147:74;;16230:93;16319:3;16230:93;:::i;:::-;16348:2;16343:3;16339:12;16332:19;;15991:366;;;:::o;16363:419::-;16529:4;16567:2;16556:9;16552:18;16544:26;;16616:9;16610:4;16606:20;16602:1;16591:9;16587:17;16580:47;16644:131;16770:4;16644:131;:::i;:::-;16636:139;;16363:419;;;:::o;16788:221::-;16928:34;16924:1;16916:6;16912:14;16905:58;16997:4;16992:2;16984:6;16980:15;16973:29;16788:221;:::o;17015:366::-;17157:3;17178:67;17242:2;17237:3;17178:67;:::i;:::-;17171:74;;17254:93;17343:3;17254:93;:::i;:::-;17372:2;17367:3;17363:12;17356:19;;17015:366;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17387:419;;;:::o;17812:224::-;17952:34;17948:1;17940:6;17936:14;17929:58;18021:7;18016:2;18008:6;18004:15;17997:32;17812:224;:::o;18042:366::-;18184:3;18205:67;18269:2;18264:3;18205:67;:::i;:::-;18198:74;;18281:93;18370:3;18281:93;:::i;:::-;18399:2;18394:3;18390:12;18383:19;;18042:366;;;:::o;18414:419::-;18580:4;18618:2;18607:9;18603:18;18595:26;;18667:9;18661:4;18657:20;18653:1;18642:9;18638:17;18631:47;18695:131;18821:4;18695:131;:::i;:::-;18687:139;;18414:419;;;:::o;18839:222::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:5;19043:2;19035:6;19031:15;19024:30;18839:222;:::o;19067:366::-;19209:3;19230:67;19294:2;19289:3;19230:67;:::i;:::-;19223:74;;19306:93;19395:3;19306:93;:::i;:::-;19424:2;19419:3;19415:12;19408:19;;19067:366;;;:::o;19439:419::-;19605:4;19643:2;19632:9;19628:18;19620:26;;19692:9;19686:4;19682:20;19678:1;19667:9;19663:17;19656:47;19720:131;19846:4;19720:131;:::i;:::-;19712:139;;19439:419;;;:::o;19864:228::-;20004:34;20000:1;19992:6;19988:14;19981:58;20073:11;20068:2;20060:6;20056:15;20049:36;19864:228;:::o;20098:366::-;20240:3;20261:67;20325:2;20320:3;20261:67;:::i;:::-;20254:74;;20337:93;20426:3;20337:93;:::i;:::-;20455:2;20450:3;20446:12;20439:19;;20098:366;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20470:419;;;:::o;20895:223::-;21035:34;21031:1;21023:6;21019:14;21012:58;21104:6;21099:2;21091:6;21087:15;21080:31;20895:223;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:169::-;22061:21;22057:1;22049:6;22045:14;22038:45;21921:169;:::o;22096:366::-;22238:3;22259:67;22323:2;22318:3;22259:67;:::i;:::-;22252:74;;22335:93;22424:3;22335:93;:::i;:::-;22453:2;22448:3;22444:12;22437:19;;22096:366;;;:::o;22468:419::-;22634:4;22672:2;22661:9;22657:18;22649:26;;22721:9;22715:4;22711:20;22707:1;22696:9;22692:17;22685:47;22749:131;22875:4;22749:131;:::i;:::-;22741:139;;22468:419;;;:::o;22893:191::-;22933:3;22952:20;22970:1;22952:20;:::i;:::-;22947:25;;22986:20;23004:1;22986:20;:::i;:::-;22981:25;;23029:1;23026;23022:9;23015:16;;23050:3;23047:1;23044:10;23041:36;;;23057:18;;:::i;:::-;23041:36;22893:191;;;;:::o;23090:176::-;23230:28;23226:1;23218:6;23214:14;23207:52;23090:176;:::o;23272:366::-;23414:3;23435:67;23499:2;23494:3;23435:67;:::i;:::-;23428:74;;23511:93;23600:3;23511:93;:::i;:::-;23629:2;23624:3;23620:12;23613:19;;23272:366;;;:::o;23644:419::-;23810:4;23848:2;23837:9;23833:18;23825:26;;23897:9;23891:4;23887:20;23883:1;23872:9;23868:17;23861:47;23925:131;24051:4;23925:131;:::i;:::-;23917:139;;23644:419;;;:::o;24069:233::-;24108:3;24131:24;24149:5;24131:24;:::i;:::-;24122:33;;24177:66;24170:5;24167:77;24164:103;;24247:18;;:::i;:::-;24164:103;24294:1;24287:5;24283:13;24276:20;;24069:233;;;:::o;24308:194::-;24348:4;24368:20;24386:1;24368:20;:::i;:::-;24363:25;;24402:20;24420:1;24402:20;:::i;:::-;24397:25;;24446:1;24443;24439:9;24431:17;;24470:1;24464:4;24461:11;24458:37;;;24475:18;;:::i;:::-;24458:37;24308:194;;;;:::o;24508:180::-;24556:77;24553:1;24546:88;24653:4;24650:1;24643:15;24677:4;24674:1;24667:15;24694:180;24742:77;24739:1;24732:88;24839:4;24836:1;24829:15;24863:4;24860:1;24853:15;24880:114;24947:6;24981:5;24975:12;24965:22;;24880:114;;;:::o;25000:184::-;25099:11;25133:6;25128:3;25121:19;25173:4;25168:3;25164:14;25149:29;;25000:184;;;;:::o;25190:132::-;25257:4;25280:3;25272:11;;25310:4;25305:3;25301:14;25293:22;;25190:132;;;:::o;25328:108::-;25405:24;25423:5;25405:24;:::i;:::-;25400:3;25393:37;25328:108;;:::o;25442:179::-;25511:10;25532:46;25574:3;25566:6;25532:46;:::i;:::-;25610:4;25605:3;25601:14;25587:28;;25442:179;;;;:::o;25627:113::-;25697:4;25729;25724:3;25720:14;25712:22;;25627:113;;;:::o;25776:732::-;25895:3;25924:54;25972:5;25924:54;:::i;:::-;25994:86;26073:6;26068:3;25994:86;:::i;:::-;25987:93;;26104:56;26154:5;26104:56;:::i;:::-;26183:7;26214:1;26199:284;26224:6;26221:1;26218:13;26199:284;;;26300:6;26294:13;26327:63;26386:3;26371:13;26327:63;:::i;:::-;26320:70;;26413:60;26466:6;26413:60;:::i;:::-;26403:70;;26259:224;26246:1;26243;26239:9;26234:14;;26199:284;;;26203:14;26499:3;26492:10;;25900:608;;;25776:732;;;;:::o;26514:831::-;26777:4;26815:3;26804:9;26800:19;26792:27;;26829:71;26897:1;26886:9;26882:17;26873:6;26829:71;:::i;:::-;26910:80;26986:2;26975:9;26971:18;26962:6;26910:80;:::i;:::-;27037:9;27031:4;27027:20;27022:2;27011:9;27007:18;27000:48;27065:108;27168:4;27159:6;27065:108;:::i;:::-;27057:116;;27183:72;27251:2;27240:9;27236:18;27227:6;27183:72;:::i;:::-;27265:73;27333:3;27322:9;27318:19;27309:6;27265:73;:::i;:::-;26514:831;;;;;;;;:::o;27351:180::-;27399:77;27396:1;27389:88;27496:4;27493:1;27486:15;27520:4;27517:1;27510:15;27537:185;27577:1;27594:20;27612:1;27594:20;:::i;:::-;27589:25;;27628:20;27646:1;27628:20;:::i;:::-;27623:25;;27667:1;27657:35;;27672:18;;:::i;:::-;27657:35;27714:1;27711;27707:9;27702:14;;27537:185;;;;:::o;27728:220::-;27868:34;27864:1;27856:6;27852:14;27845:58;27937:3;27932:2;27924:6;27920:15;27913:28;27728:220;:::o;27954:366::-;28096:3;28117:67;28181:2;28176:3;28117:67;:::i;:::-;28110:74;;28193:93;28282:3;28193:93;:::i;:::-;28311:2;28306:3;28302:12;28295:19;;27954:366;;;:::o;28326:419::-;28492:4;28530:2;28519:9;28515:18;28507:26;;28579:9;28573:4;28569:20;28565:1;28554:9;28550:17;28543:47;28607:131;28733:4;28607:131;:::i;:::-;28599:139;;28326:419;;;:::o;28751:177::-;28891:29;28887:1;28879:6;28875:14;28868:53;28751:177;:::o;28934:366::-;29076:3;29097:67;29161:2;29156:3;29097:67;:::i;:::-;29090:74;;29173:93;29262:3;29173:93;:::i;:::-;29291:2;29286:3;29282:12;29275:19;;28934:366;;;:::o;29306:419::-;29472:4;29510:2;29499:9;29495:18;29487:26;;29559:9;29553:4;29549:20;29545:1;29534:9;29530:17;29523:47;29587:131;29713:4;29587:131;:::i;:::-;29579:139;;29306:419;;;:::o

Swarm Source

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