ETH Price: $2,679.08 (-0.79%)

Token

AoChan (AOCHAN)
 

Overview

Max Total Supply

1,000,000,000 AOCHAN

Holders

188

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,747,054.799953066 AOCHAN

Value
$0.00
0xb742f26ca4760a765ac2f095b01fedae765dda40
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:
Aochan

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-07
*/

/*

    Website  :  https://aochanerc.com/
    Telegram :  https://t.me/aochanerc
    Twitter  :  https://x.com/aochanerc


*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.26;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

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

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

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

}

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

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

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

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

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

}

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

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

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

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"AoChan";
    string private constant _symbol = unicode"AOCHAN";
    uint256 public _maxTxAmount = 15000000 * 10**_decimals;
    uint256 public _maxWalletSize = 15000000 *10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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


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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(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;
    }

    
    function setFees(uint256 _buy,uint256 _sell) external{
      _finalBuyTax=_buy;
      _finalSellTax=_sell;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601460065560146007555f6008555f6009556014600a556014600b556014600c555f600d556009600a61003791906105af565b62e4e1c061004591906105f9565b600e556009600a61005691906105af565b62e4e1c061006491906105f9565b600f556009600a61007591906105af565b620f424061008391906105f9565b6010556009600a61009491906105af565b629896806100a291906105f9565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100ec575f80fd5b505f6100fc61041060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a661041060201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f391906105af565b633b9aca0061020291906105f9565b60015f61021361041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026361041760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038b61041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103e791906105af565b633b9aca006103f691906105f9565b6040516104039190610649565b60405180910390a3610662565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c05780860481111561049c5761049b61043e565b5b60018516156104ab5780820291505b80810290506104b98561046b565b9450610480565b94509492505050565b5f826104d85760019050610593565b816104e5575f9050610593565b81600181146104fb576002811461050557610534565b6001915050610593565b60ff8411156105175761051661043e565b5b8360020a91508482111561052e5761052d61043e565b5b50610593565b5060208310610133831016604e8410600b84101617156105695782820a9050838111156105645761056361043e565b5b610593565b6105768484846001610477565b9250905081840481111561058d5761058c61043e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105b98261059a565b91506105c4836105a3565b92506105f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104c9565b905092915050565b5f6106038261059a565b915061060e8361059a565b925082820261061c8161059a565b915082820484148315176106335761063261043e565b5b5092915050565b6106438161059a565b82525050565b5f60208201905061065c5f83018461063a565b92915050565b6133de8061066f5f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612377565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612435565b610553565b6040516101ab919061248d565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124a6565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f3565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f3565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061250c565b6105ab565b604051610263919061248d565b60405180910390f35b348015610277575f80fd5b5061028061067f565b60405161028d9190612577565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d0565b610687565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612717565b6107a5565b6040516102f1919061248d565b60405180910390f35b348015610305575f80fd5b5061030e6107f7565b005b34801561031b575f80fd5b5061033660048036038101906103319190612717565b61088e565b60405161034391906124f3565b60405180910390f35b348015610357575f80fd5b506103606108d4565b005b34801561036d575f80fd5b50610376610a22565b005b348015610383575f80fd5b5061038c610b51565b60405161039991906124f3565b60405180910390f35b3480156103ad575f80fd5b506103b6610b57565b6040516103c39190612751565b60405180910390f35b3480156103d7575f80fd5b506103e0610b7e565b6040516103ed91906124f3565b60405180910390f35b348015610401575f80fd5b5061040a610b84565b6040516104179190612377565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612435565b610bc1565b604051610453919061248d565b60405180910390f35b348015610467575f80fd5b50610470610bde565b60405161047d91906124f3565b60405180910390f35b348015610491575f80fd5b5061049a610be4565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d0565b611106565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276a565b611225565b6040516104f791906124f3565b60405180910390f35b34801561050b575f80fd5b506105146112a7565b005b60606040518060400160405280600681526020017f416f4368616e0000000000000000000000000000000000000000000000000000815250905090565b5f61056661055f61131f565b8484611326565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612904565b633b9aca006105a6919061294e565b905090565b5f6105b78484846114e9565b610674846105c361131f565b61066f856040518060600160405280602881526020016133816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062661131f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df39092919063ffffffff16565b611326565b600190509392505050565b5f6009905090565b61068f61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610712906129d9565b60405180910390fd5b5f5b81518110156107a1575f60045f84848151811061073d5761073c6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071d565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083761131f565b73ffffffffffffffffffffffffffffffffffffffff1614610856575f80fd5b5f6108603061088e565b90505f8111156108745761087381611e55565b5b5f4790505f81111561088a57610889816120c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dc61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906129d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2a61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906129d9565b60405180910390fd5b6009600a610ac49190612904565b633b9aca00610ad3919061294e565b600e819055506009600a610ae79190612904565b633b9aca00610af6919061294e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2b9190612904565b633b9aca00610b3a919061294e565b604051610b4791906124f3565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f414f4348414e0000000000000000000000000000000000000000000000000000815250905090565b5f610bd4610bcd61131f565b84846114e9565b6001905092915050565b60105481565b610bec61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906129d9565b60405180910390fd5b601360149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612a6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d643060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d509190612904565b633b9aca00610d5f919061294e565b611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df29190612aa0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190612aa0565b6040518363ffffffff1660e01b8152600401610eb9929190612acb565b6020604051808303815f875af1158015610ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aa0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f803061088e565b5f80610f8a610b57565b426040518863ffffffff1660e01b8152600401610fac96959493929190612b34565b60606040518083038185885af1158015610fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fed9190612ba7565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108d929190612bf7565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190612c48565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b61110e61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906129d9565b60405180910390fd5b5f5b815181101561122157600160045f8484815181106111bd576111bc6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061119c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e761131f565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b5f4790505f81111561131c5761131b816120c0565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ce3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612d71565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114dc91906124f3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90612e8d565b60405180910390fd5b5f8111611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90612f1b565b60405180910390fd5b5f611610610b57565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561167e575061164e610b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b435760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611721575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611729575f80fd5b6117656064611757600a54600d541161174457600654611748565b6008545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611810575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611863575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191d57600e548211156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612f83565b60405180910390fd5b600f54826118ba8561088e565b6118c49190612fa1565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061301e565b60405180910390fd5b600d5f8154809291906119179061303c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576119e660646119d8600b54600d54116119c5576007546119c9565b6009545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5f6119f33061088e565b9050601360159054906101000a900460ff16158015611a5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601360169054906101000a900460ff165b8015611a83575060105481115b8015611a925750600c54600d54115b15611b4157601554431115611aa9575f6014819055505b600a60145410611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906130cd565b60405180910390fd5b611b0b611b0684611b01846011546121e8565b6121e8565b611e55565b5f4790505f811115611b2157611b20476120c0565b5b60145f815480929190611b339061303c565b919050555043601581905550505b505b5f811115611c4257611b9b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3991906124f3565b60405180910390a35b611c928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d35611ce9828461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dd8848661225d90919063ffffffff16565b604051611de591906124f3565b60405180910390a350505050565b5f838311158290611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319190612377565b60405180910390fd5b505f8385611e4891906130eb565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e8c57611e8b612594565b5b604051908082528060200260200182016040528015611eba5781602001602082028036833780820191505090505b50905030815f81518110611ed157611ed06129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f999190612aa0565b81600181518110611fad57611fac6129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120133060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120759594939291906131d5565b5f604051808303815f87803b15801561208c575f80fd5b505af115801561209e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612124573d5f803e3d5ffd5b5050565b5f808303612138575f9050612199565b5f8284612145919061294e565b9050828482612154919061325a565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b906132fa565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122a6565b905092915050565b5f8183116121f657826121f8565b815b905092915050565b5f80828461220e9190612fa1565b905083811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613362565b60405180910390fd5b8091505092915050565b5f61229e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df3565b905092915050565b5f80831182906122ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e39190612377565b60405180910390fd5b505f83856122fa919061325a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234982612307565b6123538185612311565b9350612363818560208601612321565b61236c8161232f565b840191505092915050565b5f6020820190508181035f83015261238f818461233f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d1826123a8565b9050919050565b6123e1816123c7565b81146123eb575f80fd5b50565b5f813590506123fc816123d8565b92915050565b5f819050919050565b61241481612402565b811461241e575f80fd5b50565b5f8135905061242f8161240b565b92915050565b5f806040838503121561244b5761244a6123a0565b5b5f612458858286016123ee565b925050602061246985828601612421565b9150509250929050565b5f8115159050919050565b61248781612473565b82525050565b5f6020820190506124a05f83018461247e565b92915050565b5f80604083850312156124bc576124bb6123a0565b5b5f6124c985828601612421565b92505060206124da85828601612421565b9150509250929050565b6124ed81612402565b82525050565b5f6020820190506125065f8301846124e4565b92915050565b5f805f60608486031215612523576125226123a0565b5b5f612530868287016123ee565b9350506020612541868287016123ee565b925050604061255286828701612421565b9150509250925092565b5f60ff82169050919050565b6125718161255c565b82525050565b5f60208201905061258a5f830184612568565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125ca8261232f565b810181811067ffffffffffffffff821117156125e9576125e8612594565b5b80604052505050565b5f6125fb612397565b905061260782826125c1565b919050565b5f67ffffffffffffffff82111561262657612625612594565b5b602082029050602081019050919050565b5f80fd5b5f61264d6126488461260c565b6125f2565b905080838252602082019050602084028301858111156126705761266f612637565b5b835b81811015612699578061268588826123ee565b845260208401935050602081019050612672565b5050509392505050565b5f82601f8301126126b7576126b6612590565b5b81356126c784826020860161263b565b91505092915050565b5f602082840312156126e5576126e46123a0565b5b5f82013567ffffffffffffffff811115612702576127016123a4565b5b61270e848285016126a3565b91505092915050565b5f6020828403121561272c5761272b6123a0565b5b5f612739848285016123ee565b91505092915050565b61274b816123c7565b82525050565b5f6020820190506127645f830184612742565b92915050565b5f80604083850312156127805761277f6123a0565b5b5f61278d858286016123ee565b925050602061279e858286016123ee565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282a57808604811115612806576128056127a8565b5b60018516156128155780820291505b8081029050612823856127d5565b94506127ea565b94509492505050565b5f8261284257600190506128fd565b8161284f575f90506128fd565b8160018114612865576002811461286f5761289e565b60019150506128fd565b60ff841115612881576128806127a8565b5b8360020a915084821115612898576128976127a8565b5b506128fd565b5060208310610133831016604e8410600b84101617156128d35782820a9050838111156128ce576128cd6127a8565b5b6128fd565b6128e084848460016127e1565b925090508184048111156128f7576128f66127a8565b5b81810290505b9392505050565b5f61290e82612402565b91506129198361255c565b92506129467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612833565b905092915050565b5f61295882612402565b915061296383612402565b925082820261297181612402565b91508282048414831517612988576129876127a8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c3602083612311565b91506129ce8261298f565b602082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a58601783612311565b9150612a6382612a24565b602082019050919050565b5f6020820190508181035f830152612a8581612a4c565b9050919050565b5f81519050612a9a816123d8565b92915050565b5f60208284031215612ab557612ab46123a0565b5b5f612ac284828501612a8c565b91505092915050565b5f604082019050612ade5f830185612742565b612aeb6020830184612742565b9392505050565b5f819050919050565b5f819050919050565b5f612b1e612b19612b1484612af2565b612afb565b612402565b9050919050565b612b2e81612b04565b82525050565b5f60c082019050612b475f830189612742565b612b5460208301886124e4565b612b616040830187612b25565b612b6e6060830186612b25565b612b7b6080830185612742565b612b8860a08301846124e4565b979650505050505050565b5f81519050612ba18161240b565b92915050565b5f805f60608486031215612bbe57612bbd6123a0565b5b5f612bcb86828701612b93565b9350506020612bdc86828701612b93565b9250506040612bed86828701612b93565b9150509250925092565b5f604082019050612c0a5f830185612742565b612c1760208301846124e4565b9392505050565b612c2781612473565b8114612c31575f80fd5b50565b5f81519050612c4281612c1e565b92915050565b5f60208284031215612c5d57612c5c6123a0565b5b5f612c6a84828501612c34565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ccd602483612311565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d5b602283612311565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612de9602583612311565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383612311565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f05602983612311565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6d601983612311565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b5f612fab82612402565b9150612fb683612402565b9250828201905080821115612fce57612fcd6127a8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613008601a83612311565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f61304682612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613078576130776127a8565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130b7601883612311565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b9050919050565b5f6130f582612402565b915061310083612402565b9250828203905081811115613118576131176127a8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613150816123c7565b82525050565b5f6131618383613147565b60208301905092915050565b5f602082019050919050565b5f6131838261311e565b61318d8185613128565b935061319883613138565b805f5b838110156131c85781516131af8882613156565b97506131ba8361316d565b92505060018101905061319b565b5085935050505092915050565b5f60a0820190506131e85f8301886124e4565b6131f56020830187612b25565b81810360408301526132078186613179565b90506132166060830185612742565b61322360808301846124e4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326482612402565b915061326f83612402565b92508261327f5761327e61322d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e4602183612311565b91506132ef8261328a565b604082019050919050565b5f6020820190508181035f830152613311816132d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334c601b83612311565b915061335782613318565b602082019050919050565b5f6020820190508181035f83015261337981613340565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220628ad5fbf19dc2c1c72b6af05b3b7f5814bebfd23f9a287db1c403bc1c81ab7464736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612377565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612435565b610553565b6040516101ab919061248d565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124a6565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f3565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f3565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061250c565b6105ab565b604051610263919061248d565b60405180910390f35b348015610277575f80fd5b5061028061067f565b60405161028d9190612577565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d0565b610687565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612717565b6107a5565b6040516102f1919061248d565b60405180910390f35b348015610305575f80fd5b5061030e6107f7565b005b34801561031b575f80fd5b5061033660048036038101906103319190612717565b61088e565b60405161034391906124f3565b60405180910390f35b348015610357575f80fd5b506103606108d4565b005b34801561036d575f80fd5b50610376610a22565b005b348015610383575f80fd5b5061038c610b51565b60405161039991906124f3565b60405180910390f35b3480156103ad575f80fd5b506103b6610b57565b6040516103c39190612751565b60405180910390f35b3480156103d7575f80fd5b506103e0610b7e565b6040516103ed91906124f3565b60405180910390f35b348015610401575f80fd5b5061040a610b84565b6040516104179190612377565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612435565b610bc1565b604051610453919061248d565b60405180910390f35b348015610467575f80fd5b50610470610bde565b60405161047d91906124f3565b60405180910390f35b348015610491575f80fd5b5061049a610be4565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d0565b611106565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276a565b611225565b6040516104f791906124f3565b60405180910390f35b34801561050b575f80fd5b506105146112a7565b005b60606040518060400160405280600681526020017f416f4368616e0000000000000000000000000000000000000000000000000000815250905090565b5f61056661055f61131f565b8484611326565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612904565b633b9aca006105a6919061294e565b905090565b5f6105b78484846114e9565b610674846105c361131f565b61066f856040518060600160405280602881526020016133816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062661131f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df39092919063ffffffff16565b611326565b600190509392505050565b5f6009905090565b61068f61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610712906129d9565b60405180910390fd5b5f5b81518110156107a1575f60045f84848151811061073d5761073c6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071d565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083761131f565b73ffffffffffffffffffffffffffffffffffffffff1614610856575f80fd5b5f6108603061088e565b90505f8111156108745761087381611e55565b5b5f4790505f81111561088a57610889816120c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dc61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906129d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2a61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906129d9565b60405180910390fd5b6009600a610ac49190612904565b633b9aca00610ad3919061294e565b600e819055506009600a610ae79190612904565b633b9aca00610af6919061294e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2b9190612904565b633b9aca00610b3a919061294e565b604051610b4791906124f3565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f414f4348414e0000000000000000000000000000000000000000000000000000815250905090565b5f610bd4610bcd61131f565b84846114e9565b6001905092915050565b60105481565b610bec61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906129d9565b60405180910390fd5b601360149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612a6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d643060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d509190612904565b633b9aca00610d5f919061294e565b611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df29190612aa0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190612aa0565b6040518363ffffffff1660e01b8152600401610eb9929190612acb565b6020604051808303815f875af1158015610ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aa0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f803061088e565b5f80610f8a610b57565b426040518863ffffffff1660e01b8152600401610fac96959493929190612b34565b60606040518083038185885af1158015610fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fed9190612ba7565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108d929190612bf7565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190612c48565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b61110e61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906129d9565b60405180910390fd5b5f5b815181101561122157600160045f8484815181106111bd576111bc6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061119c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e761131f565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b5f4790505f81111561131c5761131b816120c0565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ce3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612d71565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114dc91906124f3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90612e8d565b60405180910390fd5b5f8111611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90612f1b565b60405180910390fd5b5f611610610b57565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561167e575061164e610b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b435760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611721575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611729575f80fd5b6117656064611757600a54600d541161174457600654611748565b6008545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611810575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611863575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191d57600e548211156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612f83565b60405180910390fd5b600f54826118ba8561088e565b6118c49190612fa1565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061301e565b60405180910390fd5b600d5f8154809291906119179061303c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576119e660646119d8600b54600d54116119c5576007546119c9565b6009545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5f6119f33061088e565b9050601360159054906101000a900460ff16158015611a5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601360169054906101000a900460ff165b8015611a83575060105481115b8015611a925750600c54600d54115b15611b4157601554431115611aa9575f6014819055505b600a60145410611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906130cd565b60405180910390fd5b611b0b611b0684611b01846011546121e8565b6121e8565b611e55565b5f4790505f811115611b2157611b20476120c0565b5b60145f815480929190611b339061303c565b919050555043601581905550505b505b5f811115611c4257611b9b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3991906124f3565b60405180910390a35b611c928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d35611ce9828461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dd8848661225d90919063ffffffff16565b604051611de591906124f3565b60405180910390a350505050565b5f838311158290611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319190612377565b60405180910390fd5b505f8385611e4891906130eb565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e8c57611e8b612594565b5b604051908082528060200260200182016040528015611eba5781602001602082028036833780820191505090505b50905030815f81518110611ed157611ed06129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f999190612aa0565b81600181518110611fad57611fac6129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120133060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120759594939291906131d5565b5f604051808303815f87803b15801561208c575f80fd5b505af115801561209e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612124573d5f803e3d5ffd5b5050565b5f808303612138575f9050612199565b5f8284612145919061294e565b9050828482612154919061325a565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b906132fa565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122a6565b905092915050565b5f8183116121f657826121f8565b815b905092915050565b5f80828461220e9190612fa1565b905083811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613362565b60405180910390fd5b8091505092915050565b5f61229e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df3565b905092915050565b5f80831182906122ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e39190612377565b60405180910390fd5b505f83856122fa919061325a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234982612307565b6123538185612311565b9350612363818560208601612321565b61236c8161232f565b840191505092915050565b5f6020820190508181035f83015261238f818461233f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d1826123a8565b9050919050565b6123e1816123c7565b81146123eb575f80fd5b50565b5f813590506123fc816123d8565b92915050565b5f819050919050565b61241481612402565b811461241e575f80fd5b50565b5f8135905061242f8161240b565b92915050565b5f806040838503121561244b5761244a6123a0565b5b5f612458858286016123ee565b925050602061246985828601612421565b9150509250929050565b5f8115159050919050565b61248781612473565b82525050565b5f6020820190506124a05f83018461247e565b92915050565b5f80604083850312156124bc576124bb6123a0565b5b5f6124c985828601612421565b92505060206124da85828601612421565b9150509250929050565b6124ed81612402565b82525050565b5f6020820190506125065f8301846124e4565b92915050565b5f805f60608486031215612523576125226123a0565b5b5f612530868287016123ee565b9350506020612541868287016123ee565b925050604061255286828701612421565b9150509250925092565b5f60ff82169050919050565b6125718161255c565b82525050565b5f60208201905061258a5f830184612568565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125ca8261232f565b810181811067ffffffffffffffff821117156125e9576125e8612594565b5b80604052505050565b5f6125fb612397565b905061260782826125c1565b919050565b5f67ffffffffffffffff82111561262657612625612594565b5b602082029050602081019050919050565b5f80fd5b5f61264d6126488461260c565b6125f2565b905080838252602082019050602084028301858111156126705761266f612637565b5b835b81811015612699578061268588826123ee565b845260208401935050602081019050612672565b5050509392505050565b5f82601f8301126126b7576126b6612590565b5b81356126c784826020860161263b565b91505092915050565b5f602082840312156126e5576126e46123a0565b5b5f82013567ffffffffffffffff811115612702576127016123a4565b5b61270e848285016126a3565b91505092915050565b5f6020828403121561272c5761272b6123a0565b5b5f612739848285016123ee565b91505092915050565b61274b816123c7565b82525050565b5f6020820190506127645f830184612742565b92915050565b5f80604083850312156127805761277f6123a0565b5b5f61278d858286016123ee565b925050602061279e858286016123ee565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282a57808604811115612806576128056127a8565b5b60018516156128155780820291505b8081029050612823856127d5565b94506127ea565b94509492505050565b5f8261284257600190506128fd565b8161284f575f90506128fd565b8160018114612865576002811461286f5761289e565b60019150506128fd565b60ff841115612881576128806127a8565b5b8360020a915084821115612898576128976127a8565b5b506128fd565b5060208310610133831016604e8410600b84101617156128d35782820a9050838111156128ce576128cd6127a8565b5b6128fd565b6128e084848460016127e1565b925090508184048111156128f7576128f66127a8565b5b81810290505b9392505050565b5f61290e82612402565b91506129198361255c565b92506129467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612833565b905092915050565b5f61295882612402565b915061296383612402565b925082820261297181612402565b91508282048414831517612988576129876127a8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c3602083612311565b91506129ce8261298f565b602082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a58601783612311565b9150612a6382612a24565b602082019050919050565b5f6020820190508181035f830152612a8581612a4c565b9050919050565b5f81519050612a9a816123d8565b92915050565b5f60208284031215612ab557612ab46123a0565b5b5f612ac284828501612a8c565b91505092915050565b5f604082019050612ade5f830185612742565b612aeb6020830184612742565b9392505050565b5f819050919050565b5f819050919050565b5f612b1e612b19612b1484612af2565b612afb565b612402565b9050919050565b612b2e81612b04565b82525050565b5f60c082019050612b475f830189612742565b612b5460208301886124e4565b612b616040830187612b25565b612b6e6060830186612b25565b612b7b6080830185612742565b612b8860a08301846124e4565b979650505050505050565b5f81519050612ba18161240b565b92915050565b5f805f60608486031215612bbe57612bbd6123a0565b5b5f612bcb86828701612b93565b9350506020612bdc86828701612b93565b9250506040612bed86828701612b93565b9150509250925092565b5f604082019050612c0a5f830185612742565b612c1760208301846124e4565b9392505050565b612c2781612473565b8114612c31575f80fd5b50565b5f81519050612c4281612c1e565b92915050565b5f60208284031215612c5d57612c5c6123a0565b5b5f612c6a84828501612c34565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ccd602483612311565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d5b602283612311565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612de9602583612311565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383612311565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f05602983612311565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6d601983612311565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b5f612fab82612402565b9150612fb683612402565b9250828201905080821115612fce57612fcd6127a8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613008601a83612311565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f61304682612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613078576130776127a8565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130b7601883612311565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b9050919050565b5f6130f582612402565b915061310083612402565b9250828203905081811115613118576131176127a8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613150816123c7565b82525050565b5f6131618383613147565b60208301905092915050565b5f602082019050919050565b5f6131838261311e565b61318d8185613128565b935061319883613138565b805f5b838110156131c85781516131af8882613156565b97506131ba8361316d565b92505060018101905061319b565b5085935050505092915050565b5f60a0820190506131e85f8301886124e4565b6131f56020830187612b25565b81810360408301526132078186613179565b90506132166060830185612742565b61322360808301846124e4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326482612402565b915061326f83612402565b92508261327f5761327e61322d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e4602183612311565b91506132ef8261328a565b604082019050919050565b5f6020820190508181035f830152613311816132d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334c601b83612311565b915061335782613318565b602082019050919050565b5f6020820190508181035f83015261337981613340565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220628ad5fbf19dc2c1c72b6af05b3b7f5814bebfd23f9a287db1c403bc1c81ab7464736f6c634300081a0033

Deployed Bytecode Sourcemap

3606:8456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5496:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6329:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11336:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4693:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5773:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6498:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5682:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10390:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10560:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11711:348;;;;;;;;;;;;;:::i;:::-;;5876:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2687:148;;;;;;;;;;;;;:::i;:::-;;9951:159;;;;;;;;;;;;;:::i;:::-;;4506:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2473:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4567:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5587:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6003:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10651:671;;;;;;;;;;;;;:::i;:::-;;10218:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6178:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11496:209;;;;;;;;;;;;;:::i;:::-;;5496:83;5533:13;5566:5;;;;;;;;;;;;;;;;;5559:12;;5496:83;:::o;6329:161::-;6404:4;6421:39;6430:12;:10;:12::i;:::-;6444:7;6453:6;6421:8;:39::i;:::-;6478:4;6471:11;;6329:161;;;;:::o;11336:115::-;11411:4;11398:12;:17;;;;11438:5;11424:13;:19;;;;11336:115;;:::o;4693:52::-;;;;:::o;5773:95::-;5826:7;4320:1;4376:2;:13;;;;:::i;:::-;4363:10;:26;;;;:::i;:::-;5846:14;;5773:95;:::o;6498:313::-;6596:4;6613:36;6623:6;6631:9;6642:6;6613:9;:36::i;:::-;6660:121;6669:6;6677:12;:10;:12::i;:::-;6691:89;6729:6;6691:89;;;;;;;;;;;;;;;;;:11;:19;6703:6;6691:19;;;;;;;;;;;;;;;:33;6711:12;:10;:12::i;:::-;6691:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6660:8;:121::i;:::-;6799:4;6792:11;;6498:313;;;;;:::o;5682:83::-;5723:5;4320:1;5741:16;;5682:83;:::o;10390:162::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10463:6:::1;10458:87;10479:6;:13;10475:1;:17;10458:87;;;10530:5;10512:4;:15;10517:6;10524:1;10517:9;;;;;;;;:::i;:::-;;;;;;;;10512:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10494:3;;;;;;;10458:87;;;;10390:162:::0;:::o;10560:83::-;10607:4;10628;:7;10633:1;10628:7;;;;;;;;;;;;;;;;;;;;;;;;;10621:14;;10560:83;;;:::o;11711:348::-;11775:10;;;;;;;;;;;11761:24;;:12;:10;:12::i;:::-;:24;;;11753:33;;;;;;11797:20;11818:24;11836:4;11818:9;:24::i;:::-;11797:45;;11869:1;11856:12;:14;11853:73;;;11884:30;11901:12;11884:16;:30::i;:::-;11853:73;11936:18;11955:21;11936:40;;12001:1;11990:10;:12;11987:65;;;12016:24;12029:10;12016:12;:24::i;:::-;11987:65;11742:317;;11711:348::o;5876:119::-;5942:7;5969:9;:18;5979:7;5969:18;;;;;;;;;;;;;;;;5962:25;;5876:119;;;:::o;2687:148::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2794:1:::1;2757:40;;2778:6;::::0;::::1;;;;;;;;2757:40;;;;;;;;;;;;2825:1;2808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2687:148::o:0;9951:159::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4320:1:::1;4376:2;:13;;;;:::i;:::-;4363:10;:26;;;;:::i;:::-;10004:12;:22;;;;4320:1;4376:2;:13;;;;:::i;:::-;4363:10;:26;;;;:::i;:::-;10037:14;:22;;;;10075:27;4320:1;4376:2;:13;;;;:::i;:::-;4363:10;:26;;;;:::i;:::-;10075:27;;;;;;:::i;:::-;;;;;;;;9951:159::o:0;4506:54::-;;;;:::o;2473:79::-;2511:7;2538:6;;;;;;;;;;;2531:13;;2473:79;:::o;4567:55::-;;;;:::o;5587:87::-;5626:13;5659:7;;;;;;;;;;;;;;;;;5652:14;;5587:87;:::o;6003:167::-;6081:4;6098:42;6108:12;:10;:12::i;:::-;6122:9;6133:6;6098:9;:42::i;:::-;6158:4;6151:11;;6003:167;;;;:::o;4629:57::-;;;;:::o;10651:671::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10715:11:::1;;;;;;;;;;;10714:12;10706:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10801:42;10764:15;;:80;;;;;;;;;;;;;;;;;;10855:58;10872:4;10887:15;;;;;;;;;;;4320:1;4376:2;:13;;;;:::i;:::-;4363:10;:26;;;;:::i;:::-;10855:8;:58::i;:::-;10958:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10940:55;;;11004:4;11011:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10940:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10924:13;;:110;;;;;;;;;;;;;;;;;;11045:15;;;;;;;;;;;:31;;;11084:21;11115:4;11121:24;11139:4;11121:9;:24::i;:::-;11146:1;11148::::0;11150:7:::1;:5;:7::i;:::-;11158:15;11045:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11192:13;;;;;;;;;;;11185:29;;;11223:15;;;;;;;;;;;11241:14;11185:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11281:4;11267:11;;:18;;;;;;;;;;;;;;;;;;11310:4;11296:11;;:18;;;;;;;;;;;;;;;;;;10651:671::o:0;10218:164::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10292:6:::1;10287:88;10308:5;:12;10304:1;:16;10287:88;;;10359:4;10342;:14;10347:5;10353:1;10347:8;;;;;;;;:::i;:::-;;;;;;;;10342:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10322:3;;;;;;;10287:88;;;;10218:164:::0;:::o;6178:143::-;6259:7;6286:11;:18;6298:5;6286:18;;;;;;;;;;;;;;;:27;6305:7;6286:27;;;;;;;;;;;;;;;;6279:34;;6178:143;;;;:::o;11496:209::-;11560:10;;;;;;;;;;;11546:24;;:12;:10;:12::i;:::-;:24;;;11538:33;;;;;;11582:18;11601:21;11582:40;;11647:1;11636:10;:12;11633:65;;;11662:24;11675:10;11662:12;:24::i;:::-;11633:65;11527:178;11496:209::o;232:98::-;285:7;312:10;305:17;;232:98;:::o;6819:335::-;6929:1;6912:19;;:5;:19;;;6904:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7010:1;6991:21;;:7;:21;;;6983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7092:6;7062:11;:18;7074:5;7062:18;;;;;;;;;;;;;;;:27;7081:7;7062:27;;;;;;;;;;;;;;;:36;;;;7130:7;7114:32;;7123:5;7114:32;;;7139:6;7114:32;;;;;;:::i;:::-;;;;;;;;6819:335;;;:::o;7162:2182::-;7266:1;7250:18;;:4;:18;;;7242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7343:1;7329:16;;:2;:16;;;7321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7413:1;7404:6;:10;7396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7471:17;7513:7;:5;:7::i;:::-;7505:15;;:4;:15;;;;:32;;;;;7530:7;:5;:7::i;:::-;7524:13;;:2;:13;;;;7505:32;7501:1487;;;7563:4;:10;7568:4;7563:10;;;;;;;;;;;;;;;;;;;;;;;;;7562:11;:24;;;;;7578:4;:8;7583:2;7578:8;;;;;;;;;;;;;;;;;;;;;;;;;7577:9;7562:24;7554:33;;;;;;7614:76;7686:3;7614:67;7636:15;;7626:9;;:25;7625:55;;7666:14;;7625:55;;;7653:12;;7625:55;7614:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7602:88;;7719:13;;;;;;;;;;;7711:21;;:4;:21;;;:55;;;;;7750:15;;;;;;;;;;;7736:30;;:2;:30;;;;7711:55;:83;;;;;7772:18;:22;7791:2;7772:22;;;;;;;;;;;;;;;;;;;;;;;;;7770:24;7711:83;7707:313;;;7834:12;;7824:6;:22;;7816:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7929:14;;7919:6;7903:13;7913:2;7903:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7895:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7993:9;;:11;;;;;;;;;:::i;:::-;;;;;;7707:313;8045:13;;;;;;;;;;;8039:19;;:2;:19;;;:43;;;;;8077:4;8062:20;;:4;:20;;;;8039:43;8036:174;;;8115:79;8190:3;8115:70;8137:16;;8127:9;;:26;8126:58;;8169:15;;8126:58;;;8155:13;;8126:58;8115:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8103:91;;8036:174;8226:28;8257:24;8275:4;8257:9;:24::i;:::-;8226:55;;8301:6;;;;;;;;;;;8300:7;:30;;;;;8317:13;;;;;;;;;;;8311:19;;:2;:19;;;8300:30;:45;;;;;8334:11;;;;;;;;;;;8300:45;:89;;;;;8372:17;;8349:20;:40;8300:89;:123;;;;;8405:18;;8393:9;;:30;8300:123;8296:681;;;8463:13;;8448:12;:28;8444:90;;;8513:1;8501:9;:13;;;;8444:90;8572:2;8560:9;;:14;8552:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8622:69;8639:51;8643:6;8651:38;8655:20;8677:11;;8651:3;:38::i;:::-;8639:3;:51::i;:::-;8622:16;:69::i;:::-;8710:26;8739:21;8710:50;;8804:1;8783:18;:22;8779:106;;;8830:35;8843:21;8830:12;:35::i;:::-;8779:106;8903:9;;:11;;;;;;;;;:::i;:::-;;;;;;8949:12;8933:13;:28;;;;8425:552;8296:681;7539:1449;7501:1487;9013:1;9003:9;:11;9000:161;;;9053:39;9082:9;9053;:24;9071:4;9053:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9028:9;:24;9046:4;9028:24;;;;;;;;;;;;;;;:64;;;;9133:4;9110:39;;9119:4;9110:39;;;9139:9;9110:39;;;;;;:::i;:::-;;;;;;;;9000:161;9187:27;9207:6;9187:9;:15;9197:4;9187:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9171:9;:15;9181:4;9171:15;;;;;;;;;;;;;;;:43;;;;9239:40;9257:21;9268:9;9257:6;:10;;:21;;;;:::i;:::-;9239:9;:13;9249:2;9239:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9225:9;:13;9235:2;9225:13;;;;;;;;;;;;;;;:54;;;;9310:2;9295:41;;9304:4;9295:41;;;9314:21;9325:9;9314:6;:10;;:21;;;;:::i;:::-;9295:41;;;;;;:::i;:::-;;;;;;;;7231:2113;7162:2182;;;:::o;1365:190::-;1451:7;1484:1;1479;:6;;1487:12;1471:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1511:9;1527:1;1523;:5;;;;:::i;:::-;1511:17;;1546:1;1539:8;;;1365:190;;;;;:::o;9460:483::-;5114:4;5105:6;;:13;;;;;;;;;;;;;;;;;;9538:21:::1;9576:1;9562:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9538:40;;9607:4;9589;9594:1;9589:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9633:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9623:4;9628:1;9623:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9666:62;9683:4;9698:15;;;;;;;;;;;9716:11;9666:8;:62::i;:::-;9739:15;;;;;;;;;;;:66;;;9820:11;9846:1;9862:4;9889;9909:15;9739:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9527:416;5150:5:::0;5141:6;;:14;;;;;;;;;;;;;;;;;;9460:483;:::o;10118:92::-;10175:10;;;;;;;;;;;:19;;:27;10195:6;10175:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10118:92;:::o;1563:246::-;1621:7;1650:1;1645;:6;1641:47;;1675:1;1668:8;;;;1641:47;1698:9;1714:1;1710;:5;;;;:::i;:::-;1698:17;;1743:1;1738;1734;:5;;;;:::i;:::-;:10;1726:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1800:1;1793:8;;;1563:246;;;;;:::o;1817:132::-;1875:7;1902:39;1906:1;1909;1902:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1895:46;;1817:132;;;;:::o;9354:98::-;9411:7;9438:1;9436;:3;9435:9;;9443:1;9435:9;;;9441:1;9435:9;9428:16;;9354:98;;;;:::o;1034:179::-;1092:7;1112:9;1128:1;1124;:5;;;;:::i;:::-;1112:17;;1153:1;1148;:6;;1140:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1204:1;1197:8;;;1034:179;;;;:::o;1221:136::-;1279:7;1306:43;1310:1;1313;1306:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1299:50;;1221:136;;;;:::o;1957:189::-;2043:7;2075:1;2071;:5;2078:12;2063:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2102:9;2118:1;2114;:5;;;;:::i;:::-;2102:17;;2137:1;2130:8;;;1957:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:474::-;3407:6;3415;3464:2;3452:9;3443:7;3439:23;3435:32;3432:119;;;3470:79;;:::i;:::-;3432:119;3590:1;3615:53;3660:7;3651:6;3640:9;3636:22;3615:53;:::i;:::-;3605:63;;3561:117;3717:2;3743:53;3788:7;3779:6;3768:9;3764:22;3743:53;:::i;:::-;3733:63;;3688:118;3339:474;;;;;:::o;3819:118::-;3906:24;3924:5;3906:24;:::i;:::-;3901:3;3894:37;3819:118;;:::o;3943:222::-;4036:4;4074:2;4063:9;4059:18;4051:26;;4087:71;4155:1;4144:9;4140:17;4131:6;4087:71;:::i;:::-;3943:222;;;;:::o;4171:619::-;4248:6;4256;4264;4313:2;4301:9;4292:7;4288:23;4284:32;4281:119;;;4319:79;;:::i;:::-;4281:119;4439:1;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4410:117;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4171:619;;;;;:::o;4796:86::-;4831:7;4871:4;4864:5;4860:16;4849:27;;4796:86;;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4888:112;;:::o;5006:214::-;5095:4;5133:2;5122:9;5118:18;5110:26;;5146:67;5210:1;5199:9;5195:17;5186:6;5146:67;:::i;:::-;5006:214;;;;:::o;5226:117::-;5335:1;5332;5325:12;5349:180;5397:77;5394:1;5387:88;5494:4;5491:1;5484:15;5518:4;5515:1;5508:15;5535:281;5618:27;5640:4;5618:27;:::i;:::-;5610:6;5606:40;5748:6;5736:10;5733:22;5712:18;5700:10;5697:34;5694:62;5691:88;;;5759:18;;:::i;:::-;5691:88;5799:10;5795:2;5788:22;5578:238;5535:281;;:::o;5822:129::-;5856:6;5883:20;;:::i;:::-;5873:30;;5912:33;5940:4;5932:6;5912:33;:::i;:::-;5822:129;;;:::o;5957:311::-;6034:4;6124:18;6116:6;6113:30;6110:56;;;6146:18;;:::i;:::-;6110:56;6196:4;6188:6;6184:17;6176:25;;6256:4;6250;6246:15;6238:23;;5957:311;;;:::o;6274:117::-;6383:1;6380;6373:12;6414:710;6510:5;6535:81;6551:64;6608:6;6551:64;:::i;:::-;6535:81;:::i;:::-;6526:90;;6636:5;6665:6;6658:5;6651:21;6699:4;6692:5;6688:16;6681:23;;6752:4;6744:6;6740:17;6732:6;6728:30;6781:3;6773:6;6770:15;6767:122;;;6800:79;;:::i;:::-;6767:122;6915:6;6898:220;6932:6;6927:3;6924:15;6898:220;;;7007:3;7036:37;7069:3;7057:10;7036:37;:::i;:::-;7031:3;7024:50;7103:4;7098:3;7094:14;7087:21;;6974:144;6958:4;6953:3;6949:14;6942:21;;6898:220;;;6902:21;6516:608;;6414:710;;;;;:::o;7147:370::-;7218:5;7267:3;7260:4;7252:6;7248:17;7244:27;7234:122;;7275:79;;:::i;:::-;7234:122;7392:6;7379:20;7417:94;7507:3;7499:6;7492:4;7484:6;7480:17;7417:94;:::i;:::-;7408:103;;7224:293;7147:370;;;;:::o;7523:539::-;7607:6;7656:2;7644:9;7635:7;7631:23;7627:32;7624:119;;;7662:79;;:::i;:::-;7624:119;7810:1;7799:9;7795:17;7782:31;7840:18;7832:6;7829:30;7826:117;;;7862:79;;:::i;:::-;7826:117;7967:78;8037:7;8028:6;8017:9;8013:22;7967:78;:::i;:::-;7957:88;;7753:302;7523:539;;;;:::o;8068:329::-;8127:6;8176:2;8164:9;8155:7;8151:23;8147:32;8144:119;;;8182:79;;:::i;:::-;8144:119;8302:1;8327:53;8372:7;8363:6;8352:9;8348:22;8327:53;:::i;:::-;8317:63;;8273:117;8068:329;;;;:::o;8403:118::-;8490:24;8508:5;8490:24;:::i;:::-;8485:3;8478:37;8403:118;;:::o;8527:222::-;8620:4;8658:2;8647:9;8643:18;8635:26;;8671:71;8739:1;8728:9;8724:17;8715:6;8671:71;:::i;:::-;8527:222;;;;:::o;8755:474::-;8823:6;8831;8880:2;8868:9;8859:7;8855:23;8851:32;8848:119;;;8886:79;;:::i;:::-;8848:119;9006:1;9031:53;9076:7;9067:6;9056:9;9052:22;9031:53;:::i;:::-;9021:63;;8977:117;9133:2;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9104:118;8755:474;;;;;:::o;9235:180::-;9283:77;9280:1;9273:88;9380:4;9377:1;9370:15;9404:4;9401:1;9394:15;9421:102;9463:8;9510:5;9507:1;9503:13;9482:34;;9421:102;;;:::o;9529:848::-;9590:5;9597:4;9621:6;9612:15;;9645:5;9636:14;;9659:712;9680:1;9670:8;9667:15;9659:712;;;9775:4;9770:3;9766:14;9760:4;9757:24;9754:50;;;9784:18;;:::i;:::-;9754:50;9834:1;9824:8;9820:16;9817:451;;;10249:4;10242:5;10238:16;10229:25;;9817:451;10299:4;10293;10289:15;10281:23;;10329:32;10352:8;10329:32;:::i;:::-;10317:44;;9659:712;;;9529:848;;;;;;;:::o;10383:1073::-;10437:5;10628:8;10618:40;;10649:1;10640:10;;10651:5;;10618:40;10677:4;10667:36;;10694:1;10685:10;;10696:5;;10667:36;10763:4;10811:1;10806:27;;;;10847:1;10842:191;;;;10756:277;;10806:27;10824:1;10815:10;;10826:5;;;10842:191;10887:3;10877:8;10874:17;10871:43;;;10894:18;;:::i;:::-;10871:43;10943:8;10940:1;10936:16;10927:25;;10978:3;10971:5;10968:14;10965:40;;;10985:18;;:::i;:::-;10965:40;11018:5;;;10756:277;;11142:2;11132:8;11129:16;11123:3;11117:4;11114:13;11110:36;11092:2;11082:8;11079:16;11074:2;11068:4;11065:12;11061:35;11045:111;11042:246;;;11198:8;11192:4;11188:19;11179:28;;11233:3;11226:5;11223:14;11220:40;;;11240:18;;:::i;:::-;11220:40;11273:5;;11042:246;11313:42;11351:3;11341:8;11335:4;11332:1;11313:42;:::i;:::-;11298:57;;;;11387:4;11382:3;11378:14;11371:5;11368:25;11365:51;;;11396:18;;:::i;:::-;11365:51;11445:4;11438:5;11434:16;11425:25;;10383:1073;;;;;;:::o;11462:281::-;11520:5;11544:23;11562:4;11544:23;:::i;:::-;11536:31;;11588:25;11604:8;11588:25;:::i;:::-;11576:37;;11632:104;11669:66;11659:8;11653:4;11632:104;:::i;:::-;11623:113;;11462:281;;;;:::o;11749:410::-;11789:7;11812:20;11830:1;11812:20;:::i;:::-;11807:25;;11846:20;11864:1;11846:20;:::i;:::-;11841:25;;11901:1;11898;11894:9;11923:30;11941:11;11923:30;:::i;:::-;11912:41;;12102:1;12093:7;12089:15;12086:1;12083:22;12063:1;12056:9;12036:83;12013:139;;12132:18;;:::i;:::-;12013:139;11797:362;11749:410;;;;:::o;12165:182::-;12305:34;12301:1;12293:6;12289:14;12282:58;12165:182;:::o;12353:366::-;12495:3;12516:67;12580:2;12575:3;12516:67;:::i;:::-;12509:74;;12592:93;12681:3;12592:93;:::i;:::-;12710:2;12705:3;12701:12;12694:19;;12353:366;;;:::o;12725:419::-;12891:4;12929:2;12918:9;12914:18;12906:26;;12978:9;12972:4;12968:20;12964:1;12953:9;12949:17;12942:47;13006:131;13132:4;13006:131;:::i;:::-;12998:139;;12725:419;;;:::o;13150:180::-;13198:77;13195:1;13188:88;13295:4;13292:1;13285:15;13319:4;13316:1;13309:15;13336:173;13476:25;13472:1;13464:6;13460:14;13453:49;13336:173;:::o;13515:366::-;13657:3;13678:67;13742:2;13737:3;13678:67;:::i;:::-;13671:74;;13754:93;13843:3;13754:93;:::i;:::-;13872:2;13867:3;13863:12;13856:19;;13515:366;;;:::o;13887:419::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14140:9;14134:4;14130:20;14126:1;14115:9;14111:17;14104:47;14168:131;14294:4;14168:131;:::i;:::-;14160:139;;13887:419;;;:::o;14312:143::-;14369:5;14400:6;14394:13;14385:22;;14416:33;14443:5;14416:33;:::i;:::-;14312:143;;;;:::o;14461:351::-;14531:6;14580:2;14568:9;14559:7;14555:23;14551:32;14548:119;;;14586:79;;:::i;:::-;14548:119;14706:1;14731:64;14787:7;14778:6;14767:9;14763:22;14731:64;:::i;:::-;14721:74;;14677:128;14461:351;;;;:::o;14818:332::-;14939:4;14977:2;14966:9;14962:18;14954:26;;14990:71;15058:1;15047:9;15043:17;15034:6;14990:71;:::i;:::-;15071:72;15139:2;15128:9;15124:18;15115:6;15071:72;:::i;:::-;14818:332;;;;;:::o;15156:85::-;15201:7;15230:5;15219:16;;15156:85;;;:::o;15247:60::-;15275:3;15296:5;15289:12;;15247:60;;;:::o;15313:158::-;15371:9;15404:61;15422:42;15431:32;15457:5;15431:32;:::i;:::-;15422:42;:::i;:::-;15404:61;:::i;:::-;15391:74;;15313:158;;;:::o;15477:147::-;15572:45;15611:5;15572:45;:::i;:::-;15567:3;15560:58;15477:147;;:::o;15630:807::-;15879:4;15917:3;15906:9;15902:19;15894:27;;15931:71;15999:1;15988:9;15984:17;15975:6;15931:71;:::i;:::-;16012:72;16080:2;16069:9;16065:18;16056:6;16012:72;:::i;:::-;16094:80;16170:2;16159:9;16155:18;16146:6;16094:80;:::i;:::-;16184;16260:2;16249:9;16245:18;16236:6;16184:80;:::i;:::-;16274:73;16342:3;16331:9;16327:19;16318:6;16274:73;:::i;:::-;16357;16425:3;16414:9;16410:19;16401:6;16357:73;:::i;:::-;15630:807;;;;;;;;;:::o;16443:143::-;16500:5;16531:6;16525:13;16516:22;;16547:33;16574:5;16547:33;:::i;:::-;16443:143;;;;:::o;16592:663::-;16680:6;16688;16696;16745:2;16733:9;16724:7;16720:23;16716:32;16713:119;;;16751:79;;:::i;:::-;16713:119;16871:1;16896:64;16952:7;16943:6;16932:9;16928:22;16896:64;:::i;:::-;16886:74;;16842:128;17009:2;17035:64;17091:7;17082:6;17071:9;17067:22;17035:64;:::i;:::-;17025:74;;16980:129;17148:2;17174:64;17230:7;17221:6;17210:9;17206:22;17174:64;:::i;:::-;17164:74;;17119:129;16592:663;;;;;:::o;17261:332::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17433:71;17501:1;17490:9;17486:17;17477:6;17433:71;:::i;:::-;17514:72;17582:2;17571:9;17567:18;17558:6;17514:72;:::i;:::-;17261:332;;;;;:::o;17599:116::-;17669:21;17684:5;17669:21;:::i;:::-;17662:5;17659:32;17649:60;;17705:1;17702;17695:12;17649:60;17599:116;:::o;17721:137::-;17775:5;17806:6;17800:13;17791:22;;17822:30;17846:5;17822:30;:::i;:::-;17721:137;;;;:::o;17864:345::-;17931:6;17980:2;17968:9;17959:7;17955:23;17951:32;17948:119;;;17986:79;;:::i;:::-;17948:119;18106:1;18131:61;18184:7;18175:6;18164:9;18160:22;18131:61;:::i;:::-;18121:71;;18077:125;17864:345;;;;:::o;18215:223::-;18355:34;18351:1;18343:6;18339:14;18332:58;18424:6;18419:2;18411:6;18407:15;18400:31;18215:223;:::o;18444:366::-;18586:3;18607:67;18671:2;18666:3;18607:67;:::i;:::-;18600:74;;18683:93;18772:3;18683:93;:::i;:::-;18801:2;18796:3;18792:12;18785:19;;18444:366;;;:::o;18816:419::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:221::-;19381:34;19377:1;19369:6;19365:14;19358:58;19450:4;19445:2;19437:6;19433:15;19426:29;19241:221;:::o;19468:366::-;19610:3;19631:67;19695:2;19690:3;19631:67;:::i;:::-;19624:74;;19707:93;19796:3;19707:93;:::i;:::-;19825:2;19820:3;19816:12;19809:19;;19468:366;;;:::o;19840:419::-;20006:4;20044:2;20033:9;20029:18;20021:26;;20093:9;20087:4;20083:20;20079:1;20068:9;20064:17;20057:47;20121:131;20247:4;20121:131;:::i;:::-;20113:139;;19840:419;;;:::o;20265:224::-;20405:34;20401:1;20393:6;20389:14;20382:58;20474:7;20469:2;20461:6;20457:15;20450:32;20265:224;:::o;20495:366::-;20637:3;20658:67;20722:2;20717:3;20658:67;:::i;:::-;20651:74;;20734:93;20823:3;20734:93;:::i;:::-;20852:2;20847:3;20843:12;20836:19;;20495:366;;;:::o;20867:419::-;21033:4;21071:2;21060:9;21056:18;21048:26;;21120:9;21114:4;21110:20;21106:1;21095:9;21091:17;21084:47;21148:131;21274:4;21148:131;:::i;:::-;21140:139;;20867:419;;;:::o;21292:222::-;21432:34;21428:1;21420:6;21416:14;21409:58;21501:5;21496:2;21488:6;21484:15;21477:30;21292:222;:::o;21520:366::-;21662:3;21683:67;21747:2;21742:3;21683:67;:::i;:::-;21676:74;;21759:93;21848:3;21759:93;:::i;:::-;21877:2;21872:3;21868:12;21861:19;;21520:366;;;:::o;21892:419::-;22058:4;22096:2;22085:9;22081:18;22073:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22173:131;22299:4;22173:131;:::i;:::-;22165:139;;21892:419;;;:::o;22317:228::-;22457:34;22453:1;22445:6;22441:14;22434:58;22526:11;22521:2;22513:6;22509:15;22502:36;22317:228;:::o;22551:366::-;22693:3;22714:67;22778:2;22773:3;22714:67;:::i;:::-;22707:74;;22790:93;22879:3;22790:93;:::i;:::-;22908:2;22903:3;22899:12;22892:19;;22551:366;;;:::o;22923:419::-;23089:4;23127:2;23116:9;23112:18;23104:26;;23176:9;23170:4;23166:20;23162:1;23151:9;23147:17;23140:47;23204:131;23330:4;23204:131;:::i;:::-;23196:139;;22923:419;;;:::o;23348:175::-;23488:27;23484:1;23476:6;23472:14;23465:51;23348:175;:::o;23529:366::-;23671:3;23692:67;23756:2;23751:3;23692:67;:::i;:::-;23685:74;;23768:93;23857:3;23768:93;:::i;:::-;23886:2;23881:3;23877:12;23870:19;;23529:366;;;:::o;23901:419::-;24067:4;24105:2;24094:9;24090:18;24082:26;;24154:9;24148:4;24144:20;24140:1;24129:9;24125:17;24118:47;24182:131;24308:4;24182:131;:::i;:::-;24174:139;;23901:419;;;:::o;24326:191::-;24366:3;24385:20;24403:1;24385:20;:::i;:::-;24380:25;;24419:20;24437:1;24419:20;:::i;:::-;24414:25;;24462:1;24459;24455:9;24448:16;;24483:3;24480:1;24477:10;24474:36;;;24490:18;;:::i;:::-;24474:36;24326:191;;;;:::o;24523:176::-;24663:28;24659:1;24651:6;24647:14;24640:52;24523:176;:::o;24705:366::-;24847:3;24868:67;24932:2;24927:3;24868:67;:::i;:::-;24861:74;;24944:93;25033:3;24944:93;:::i;:::-;25062:2;25057:3;25053:12;25046:19;;24705:366;;;:::o;25077:419::-;25243:4;25281:2;25270:9;25266:18;25258:26;;25330:9;25324:4;25320:20;25316:1;25305:9;25301:17;25294:47;25358:131;25484:4;25358:131;:::i;:::-;25350:139;;25077:419;;;:::o;25502:233::-;25541:3;25564:24;25582:5;25564:24;:::i;:::-;25555:33;;25610:66;25603:5;25600:77;25597:103;;25680:18;;:::i;:::-;25597:103;25727:1;25720:5;25716:13;25709:20;;25502:233;;;:::o;25741:174::-;25881:26;25877:1;25869:6;25865:14;25858:50;25741:174;:::o;25921:366::-;26063:3;26084:67;26148:2;26143:3;26084:67;:::i;:::-;26077:74;;26160:93;26249:3;26160:93;:::i;:::-;26278:2;26273:3;26269:12;26262:19;;25921:366;;;:::o;26293:419::-;26459:4;26497:2;26486:9;26482:18;26474:26;;26546:9;26540:4;26536:20;26532:1;26521:9;26517:17;26510:47;26574:131;26700:4;26574:131;:::i;:::-;26566:139;;26293:419;;;:::o;26718:194::-;26758:4;26778:20;26796:1;26778:20;:::i;:::-;26773:25;;26812:20;26830:1;26812:20;:::i;:::-;26807:25;;26856:1;26853;26849:9;26841:17;;26880:1;26874:4;26871:11;26868:37;;;26885:18;;:::i;:::-;26868:37;26718:194;;;;:::o;26918:114::-;26985:6;27019:5;27013:12;27003:22;;26918:114;;;:::o;27038:184::-;27137:11;27171:6;27166:3;27159:19;27211:4;27206:3;27202:14;27187:29;;27038:184;;;;:::o;27228:132::-;27295:4;27318:3;27310:11;;27348:4;27343:3;27339:14;27331:22;;27228:132;;;:::o;27366:108::-;27443:24;27461:5;27443:24;:::i;:::-;27438:3;27431:37;27366:108;;:::o;27480:179::-;27549:10;27570:46;27612:3;27604:6;27570:46;:::i;:::-;27648:4;27643:3;27639:14;27625:28;;27480:179;;;;:::o;27665:113::-;27735:4;27767;27762:3;27758:14;27750:22;;27665:113;;;:::o;27814:732::-;27933:3;27962:54;28010:5;27962:54;:::i;:::-;28032:86;28111:6;28106:3;28032:86;:::i;:::-;28025:93;;28142:56;28192:5;28142:56;:::i;:::-;28221:7;28252:1;28237:284;28262:6;28259:1;28256:13;28237:284;;;28338:6;28332:13;28365:63;28424:3;28409:13;28365:63;:::i;:::-;28358:70;;28451:60;28504:6;28451:60;:::i;:::-;28441:70;;28297:224;28284:1;28281;28277:9;28272:14;;28237:284;;;28241:14;28537:3;28530:10;;27938:608;;;27814:732;;;;:::o;28552:831::-;28815:4;28853:3;28842:9;28838:19;28830:27;;28867:71;28935:1;28924:9;28920:17;28911:6;28867:71;:::i;:::-;28948:80;29024:2;29013:9;29009:18;29000:6;28948:80;:::i;:::-;29075:9;29069:4;29065:20;29060:2;29049:9;29045:18;29038:48;29103:108;29206:4;29197:6;29103:108;:::i;:::-;29095:116;;29221:72;29289:2;29278:9;29274:18;29265:6;29221:72;:::i;:::-;29303:73;29371:3;29360:9;29356:19;29347:6;29303:73;:::i;:::-;28552:831;;;;;;;;:::o;29389:180::-;29437:77;29434:1;29427:88;29534:4;29531:1;29524:15;29558:4;29555:1;29548:15;29575:185;29615:1;29632:20;29650:1;29632:20;:::i;:::-;29627:25;;29666:20;29684:1;29666:20;:::i;:::-;29661:25;;29705:1;29695:35;;29710:18;;:::i;:::-;29695:35;29752:1;29749;29745:9;29740:14;;29575:185;;;;:::o;29766:220::-;29906:34;29902:1;29894:6;29890:14;29883:58;29975:3;29970:2;29962:6;29958:15;29951:28;29766:220;:::o;29992:366::-;30134:3;30155:67;30219:2;30214:3;30155:67;:::i;:::-;30148:74;;30231:93;30320:3;30231:93;:::i;:::-;30349:2;30344:3;30340:12;30333:19;;29992:366;;;:::o;30364:419::-;30530:4;30568:2;30557:9;30553:18;30545:26;;30617:9;30611:4;30607:20;30603:1;30592:9;30588:17;30581:47;30645:131;30771:4;30645:131;:::i;:::-;30637:139;;30364:419;;;:::o;30789:177::-;30929:29;30925:1;30917:6;30913:14;30906:53;30789:177;:::o;30972:366::-;31114:3;31135:67;31199:2;31194:3;31135:67;:::i;:::-;31128:74;;31211:93;31300:3;31211:93;:::i;:::-;31329:2;31324:3;31320:12;31313:19;;30972:366;;;:::o;31344:419::-;31510:4;31548:2;31537:9;31533:18;31525:26;;31597:9;31591:4;31587:20;31583:1;31572:9;31568:17;31561:47;31625:131;31751:4;31625:131;:::i;:::-;31617:139;;31344:419;;;:::o

Swarm Source

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