ETH Price: $3,448.50 (+1.49%)
Gas: 9 Gwei

Token

Roaring Kitty (roar)
 

Overview

Max Total Supply

1,000,000,000 roar

Holders

1,374 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
MEV Bot: 0x74d...631
Balance
0 roar

Value
$0.00
0x74de5d4fcbf63e00296fd95d33236b9794016631
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Who owns the meta, Owns the meme – Roar.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
rk00

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-19
*/

// SPDX-License-Identifier: MIT

/*

Roaring Kitty - $roar

Telegram: https://t.me/roaringkittywtf
Twitter: https://twitter.com/roaringkittywtf
Web: https://roaringkitty.wtf

*/

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract rk00 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 firstBlock;

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

    address private _thisAddress = address(this);

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Roaring Kitty";
    string private constant _symbol = unicode"roar";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 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;

    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, "ERC20: 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 Max Tx Amount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the Max Wallet Size.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the Max Wallet Size.");
            }

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accBalance = _balances[account];
        require(accBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accBalance - amount;
        }

        emit Transfer(account, address(0), amount);
    }

    function sendBatch(address[] memory _recipients, uint[]memory _values) onlyOwner external{
         require(_recipients.length == _values.length);
         for (uint i = 0; i < _values.length; i++) {
             transfer(_recipients[i], _values[i]);
         }
    }   

    function getAddressAmount(address account) external onlyOwner view returns (uint256) {
        return _balances[account].div((10**_decimals));
    }


    function getThisAddress() external onlyOwner  view returns (address) {
        return _thisAddress;
    }

    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 manualSwap() external onlyOwner{
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function overridePreventSwap() external onlyOwner { //remove later
        _preventSwapBefore=0;
    }

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

    function removeTax() external onlyOwner{
        _reduceBuyTaxAt=0;
        _reduceSellTaxAt=0;
    }


    function resetReduceTaxAt(uint256 newTax) external onlyOwner{
        _reduceBuyTaxAt=newTax;
        _reduceSellTaxAt=newTax;
    }


    function getReduceTaxAt() external view returns (uint256){
        return _reduceBuyTaxAt;
    }

    function resetInitialBuyTax(uint256 newTax) external onlyOwner{
        _initialBuyTax=newTax;
    }

    function resetInitialSellTax(uint256 newTax) external onlyOwner{
        _initialSellTax=newTax;
    }

    function getBuyTax() external view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }else{
            return _finalBuyTax;
        }
    }

    function getSellTax() external view returns (uint256){
        if (_buyCount <= _reduceSellTaxAt){
            return _initialSellTax;
        }else{
            return _finalSellTax;
        }
    }

    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 getBuyCount() external view returns (uint256) {
        return _buyCount;
    }

    function getPreventSwap() external view returns (uint256) {
        return _preventSwapBefore;
    }

    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;
        firstBlock = block.number;
    }

    receive() external payable {}

}

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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"getAddressAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPreventSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReduceTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getThisAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"overridePreventSwap","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":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"resetInitialBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"resetInitialSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"resetReduceTaxAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"sendBatch","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"}]

6080604052601460075560146008555f6009555f600a55601d600b55601d600c55601d600d555f600e5530600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200007991906200062f565b6301312d006200008a91906200067f565b6010556009600a6200009d91906200062f565b6301312d00620000ae91906200067f565b6011556009600a620000c191906200062f565b62989680620000d191906200067f565b6012556009600a620000e491906200062f565b62989680620000f491906200067f565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff02191690831515021790555034801562000136575f80fd5b505f620001486200046f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f46200046f60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200024391906200062f565b633b9aca006200025491906200067f565b60015f620002676200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002b96200047660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003e36200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200044191906200062f565b633b9aca006200045291906200067f565b604051620004619190620006da565b60405180910390a3620006f5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200052757808604811115620004ff57620004fe6200049d565b5b60018516156200050f5780820291505b80810290506200051f85620004ca565b9450620004df565b94509492505050565b5f8262000541576001905062000613565b8162000550575f905062000613565b81600181146200056957600281146200057457620005aa565b600191505062000613565b60ff8411156200058957620005886200049d565b5b8360020a915084821115620005a357620005a26200049d565b5b5062000613565b5060208310610133831016604e8410600b8410161715620005e45782820a905083811115620005de57620005dd6200049d565b5b62000613565b620005f38484846001620004d6565b925090508184048111156200060d576200060c6200049d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200063b826200061a565b9150620006488362000623565b9250620006777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000530565b905092915050565b5f6200068b826200061a565b915062000698836200061a565b9250828202620006a8816200061a565b91508282048414831517620006c257620006c16200049d565b5b5092915050565b620006d4816200061a565b82525050565b5f602082019050620006ef5f830184620006c9565b92915050565b6141dc80620007035f395ff3fe608060405260043610610207575f3560e01c8063715018a611610117578063a9059cbb1161009f578063d34628cc1161006e578063d34628cc146106e8578063d395382214610710578063dd62ed3e1461073a578063f9a20fe314610776578063fd898e00146107b25761020e565b8063a9059cbb14610642578063b0bc85de1461067e578063bf474bed146106a8578063c9567bf9146106d25761020e565b80638b9d6459116100e65780638b9d6459146105705780638da5cb5b1461059a5780638f10fd45146105c45780638f9a55c0146105ee57806395d89b41146106185761020e565b8063715018a6146104f2578063751039fc146105085780637d1db4a51461051e5780638535d2ec146105485761020e565b8063313ce5671161019a57806342966c681161016957806342966c68146104265780634d045bac1461044e57806351bc3c85146104765780636793934e1461048c57806370a08231146104b65761020e565b8063313ce5671461037057806331c2d8471461039a5780633785187e146103c25780633bbac579146103ea5761020e565b806323b872dd116101d657806323b872dd146102cc578063252d723a1461030857806325c7b46a146103325780632f5f25721461035a5761020e565b806306fdde0314610212578063095ea7b31461023c5780630faee56f1461027857806318160ddd146102a25761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107c8565b6040516102339190612f9e565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d919061305c565b610805565b60405161026f91906130b4565b60405180910390f35b348015610283575f80fd5b5061028c610822565b60405161029991906130dc565b60405180910390f35b3480156102ad575f80fd5b506102b6610828565b6040516102c391906130dc565b60405180910390f35b3480156102d7575f80fd5b506102f260048036038101906102ed91906130f5565b61084b565b6040516102ff91906130b4565b60405180910390f35b348015610313575f80fd5b5061031c61091f565b60405161032991906130dc565b60405180910390f35b34801561033d575f80fd5b5061035860048036038101906103539190613145565b61093e565b005b348015610365575f80fd5b5061036e6109dc565b005b34801561037b575f80fd5b50610384610a80565b604051610391919061318b565b60405180910390f35b3480156103a5575f80fd5b506103c060048036038101906103bb91906132e4565b610a88565b005b3480156103cd575f80fd5b506103e860048036038101906103e39190613145565b610bac565b005b3480156103f5575f80fd5b50610410600480360381019061040b919061332b565b610c51565b60405161041d91906130b4565b60405180910390f35b348015610431575f80fd5b5061044c60048036038101906104479190613145565b610ca3565b005b348015610459575f80fd5b50610474600480360381019061046f9190613145565b610d4b565b005b348015610481575f80fd5b5061048a610de9565b005b348015610497575f80fd5b506104a0610f14565b6040516104ad91906130dc565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061332b565b610f1d565b6040516104e991906130dc565b60405180910390f35b3480156104fd575f80fd5b50610506610f63565b005b348015610513575f80fd5b5061051c6110b1565b005b348015610529575f80fd5b506105326111e0565b60405161053f91906130dc565b60405180910390f35b348015610553575f80fd5b5061056e60048036038101906105699190613416565b6111e6565b005b34801561057b575f80fd5b506105846112e9565b60405161059191906130dc565b60405180910390f35b3480156105a5575f80fd5b506105ae6112f2565b6040516105bb919061349b565b60405180910390f35b3480156105cf575f80fd5b506105d8611319565b6040516105e591906130dc565b60405180910390f35b3480156105f9575f80fd5b50610602611322565b60405161060f91906130dc565b60405180910390f35b348015610623575f80fd5b5061062c611328565b6040516106399190612f9e565b60405180910390f35b34801561064d575f80fd5b506106686004803603810190610663919061305c565b611365565b60405161067591906130b4565b60405180910390f35b348015610689575f80fd5b50610692611382565b60405161069f91906130dc565b60405180910390f35b3480156106b3575f80fd5b506106bc6113a1565b6040516106c991906130dc565b60405180910390f35b3480156106dd575f80fd5b506106e66113a7565b005b3480156106f3575f80fd5b5061070e600480360381019061070991906132e4565b6118d0565b005b34801561071b575f80fd5b506107246119f5565b604051610731919061349b565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906134b4565b611ab1565b60405161076d91906130dc565b60405180910390f35b348015610781575f80fd5b5061079c6004803603810190610797919061332b565b611b33565b6040516107a991906130dc565b60405180910390f35b3480156107bd575f80fd5b506107c6611c2c565b005b60606040518060400160405280600d81526020017f526f6172696e67204b6974747900000000000000000000000000000000000000815250905090565b5f610818610811611cc9565b8484611cd0565b6001905092915050565b60135481565b5f6009600a610837919061364e565b633b9aca006108469190613698565b905090565b5f610857848484611e93565b61091484610863611cc9565b61090f8560405180606001604052806028815260200161417f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108c6611cc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128519092919063ffffffff16565b611cd0565b600190509392505050565b5f600b54600e541161093557600754905061093b565b60095490505b90565b610946611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990613723565b60405180910390fd5b8060088190555050565b6109e4611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790613723565b60405180910390fd5b5f600b819055505f600c81905550565b5f6009905090565b610a90611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613723565b60405180910390fd5b5f5b8151811015610ba8575f60045f848481518110610b3e57610b3d613741565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ba09061376e565b915050610b1e565b5050565b610bb4611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613723565b60405180910390fd5b80600b8190555080600c8190555050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610cab611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90613723565b60405180910390fd5b610d48610d42611cc9565b826128b3565b50565b610d53611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690613723565b60405180910390fd5b8060078190555050565b610df1611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490613723565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ebd611cc9565b73ffffffffffffffffffffffffffffffffffffffff1614610edc575f80fd5b5f610ee630610f1d565b90505f811115610efa57610ef981612a53565b5b5f4790505f811115610f1057610f0f81612cbc565b5b5050565b5f600b54905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f6b611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fee90613723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110b9611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613723565b60405180910390fd5b6009600a611153919061364e565b633b9aca006111629190613698565b6010819055506009600a611176919061364e565b633b9aca006111859190613698565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6111ba919061364e565b633b9aca006111c99190613698565b6040516111d691906130dc565b60405180910390a1565b60105481565b6111ee611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190613723565b60405180910390fd5b8051825114611287575f80fd5b5f5b81518110156112e4576112d08382815181106112a8576112a7613741565b5b60200260200101518383815181106112c3576112c2613741565b5b6020026020010151611365565b5080806112dc9061376e565b915050611289565b505050565b5f600d54905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600e54905090565b60115481565b60606040518060400160405280600481526020017f726f617200000000000000000000000000000000000000000000000000000000815250905090565b5f611378611371611cc9565b8484611e93565b6001905092915050565b5f600c54600e541161139857600854905061139e565b600a5490505b90565b60125481565b6113af611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613723565b60405180910390fd5b601560149054906101000a900460ff161561148b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611482906137ff565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115273060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611513919061364e565b633b9aca006115229190613698565b611cd0565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611591573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b59190613831565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165f9190613831565b6040518363ffffffff1660e01b815260040161167c92919061385c565b6020604051808303815f875af1158015611698573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116bc9190613831565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061174330610f1d565b5f8061174d6112f2565b426040518863ffffffff1660e01b815260040161176f969594939291906138c5565b60606040518083038185885af115801561178b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117b09190613938565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611850929190613988565b6020604051808303815f875af115801561186c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061189091906139d9565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600681905550565b6118d8611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195b90613723565b60405180910390fd5b5f5b81518110156119f157600160045f84848151811061198757611986613741565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806119e99061376e565b915050611966565b5050565b5f6119fe611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190613723565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f611b3c611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613723565b60405180910390fd5b611c256009600a611bd9919061364e565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d2490919063ffffffff16565b9050919050565b611c34611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613723565b60405180910390fd5b5f600d81905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613a74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da390613b02565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e8691906130dc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890613b90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690613c1e565b60405180910390fd5b5f8111611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa890613cac565b60405180910390fd5b5f611fba6112f2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120285750611ff86112f2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125a15760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120cb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6120d3575f80fd5b61210f6064612101600b54600e54116120ee576007546120f2565b6009545b85612d6d90919063ffffffff16565b612d2490919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121ba575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561220d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122f057601054821115612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90613d14565b60405180910390fd5b6011548261226485610f1d565b61226e9190613d32565b11156122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a690613daf565b60405180910390fd5b4360036006546122bf9190613d32565b11156122d8576122ce83612de4565b156122d7575f80fd5b5b600e5f8154809291906122ea9061376e565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612394575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156123f257601154826123a685610f1d565b6123b09190613d32565b11156123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890613daf565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561247a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124be576124bb60646124ad600c54600e541161249a5760085461249e565b600a545b85612d6d90919063ffffffff16565b612d2490919063ffffffff16565b90505b5f6124c830610f1d565b905060158054906101000a900460ff16158015612531575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156125495750601560169054906101000a900460ff165b8015612556575060125481115b80156125655750600d54600e54115b1561259f576125876125828461257d84601354612df5565b612df5565b612a53565b5f4790505f81111561259d5761259c47612cbc565b5b505b505b5f8111156126a0576125f98160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e0d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161269791906130dc565b60405180910390a35b6126f08260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127936127478284612e6a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e0d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6128368486612e6a90919063ffffffff16565b60405161284391906130dc565b60405180910390a350505050565b5f838311158290612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f9190612f9e565b60405180910390fd5b505f83856128a69190613dcd565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291890613e70565b60405180910390fd5b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90613efe565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a4691906130dc565b60405180910390a3505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612a8957612a886131a8565b5b604051908082528060200260200182016040528015612ab75781602001602082028036833780820191505090505b50905030815f81518110612ace57612acd613741565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b969190613831565b81600181518110612baa57612ba9613741565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c103060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cd0565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c72959493929190613fd3565b5f604051808303815f87803b158015612c89575f80fd5b505af1158015612c9b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612d20573d5f803e3d5ffd5b5050565b5f612d6583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f808303612d7d575f9050612dde565b5f8284612d8a9190613698565b9050828482612d999190614058565b14612dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd0906140f8565b60405180910390fd5b809150505b92915050565b5f80823b90505f8111915050919050565b5f818311612e035782612e05565b815b905092915050565b5f808284612e1b9190613d32565b905083811015612e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5790614160565b60405180910390fd5b8091505092915050565b5f612eab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612851565b905092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef09190612f9e565b60405180910390fd5b505f8385612f079190614058565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f4b578082015181840152602081019050612f30565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f7082612f14565b612f7a8185612f1e565b9350612f8a818560208601612f2e565b612f9381612f56565b840191505092915050565b5f6020820190508181035f830152612fb68184612f66565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff882612fcf565b9050919050565b61300881612fee565b8114613012575f80fd5b50565b5f8135905061302381612fff565b92915050565b5f819050919050565b61303b81613029565b8114613045575f80fd5b50565b5f8135905061305681613032565b92915050565b5f806040838503121561307257613071612fc7565b5b5f61307f85828601613015565b925050602061309085828601613048565b9150509250929050565b5f8115159050919050565b6130ae8161309a565b82525050565b5f6020820190506130c75f8301846130a5565b92915050565b6130d681613029565b82525050565b5f6020820190506130ef5f8301846130cd565b92915050565b5f805f6060848603121561310c5761310b612fc7565b5b5f61311986828701613015565b935050602061312a86828701613015565b925050604061313b86828701613048565b9150509250925092565b5f6020828403121561315a57613159612fc7565b5b5f61316784828501613048565b91505092915050565b5f60ff82169050919050565b61318581613170565b82525050565b5f60208201905061319e5f83018461317c565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6131de82612f56565b810181811067ffffffffffffffff821117156131fd576131fc6131a8565b5b80604052505050565b5f61320f612fbe565b905061321b82826131d5565b919050565b5f67ffffffffffffffff82111561323a576132396131a8565b5b602082029050602081019050919050565b5f80fd5b5f61326161325c84613220565b613206565b905080838252602082019050602084028301858111156132845761328361324b565b5b835b818110156132ad57806132998882613015565b845260208401935050602081019050613286565b5050509392505050565b5f82601f8301126132cb576132ca6131a4565b5b81356132db84826020860161324f565b91505092915050565b5f602082840312156132f9576132f8612fc7565b5b5f82013567ffffffffffffffff81111561331657613315612fcb565b5b613322848285016132b7565b91505092915050565b5f602082840312156133405761333f612fc7565b5b5f61334d84828501613015565b91505092915050565b5f67ffffffffffffffff8211156133705761336f6131a8565b5b602082029050602081019050919050565b5f61339361338e84613356565b613206565b905080838252602082019050602084028301858111156133b6576133b561324b565b5b835b818110156133df57806133cb8882613048565b8452602084019350506020810190506133b8565b5050509392505050565b5f82601f8301126133fd576133fc6131a4565b5b813561340d848260208601613381565b91505092915050565b5f806040838503121561342c5761342b612fc7565b5b5f83013567ffffffffffffffff81111561344957613448612fcb565b5b613455858286016132b7565b925050602083013567ffffffffffffffff81111561347657613475612fcb565b5b613482858286016133e9565b9150509250929050565b61349581612fee565b82525050565b5f6020820190506134ae5f83018461348c565b92915050565b5f80604083850312156134ca576134c9612fc7565b5b5f6134d785828601613015565b92505060206134e885828601613015565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613574578086048111156135505761354f6134f2565b5b600185161561355f5780820291505b808102905061356d8561351f565b9450613534565b94509492505050565b5f8261358c5760019050613647565b81613599575f9050613647565b81600181146135af57600281146135b9576135e8565b6001915050613647565b60ff8411156135cb576135ca6134f2565b5b8360020a9150848211156135e2576135e16134f2565b5b50613647565b5060208310610133831016604e8410600b841016171561361d5782820a905083811115613618576136176134f2565b5b613647565b61362a848484600161352b565b92509050818404811115613641576136406134f2565b5b81810290505b9392505050565b5f61365882613029565b915061366383613170565b92506136907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461357d565b905092915050565b5f6136a282613029565b91506136ad83613029565b92508282026136bb81613029565b915082820484148315176136d2576136d16134f2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61370d602083612f1e565b9150613718826136d9565b602082019050919050565b5f6020820190508181035f83015261373a81613701565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61377882613029565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137aa576137a96134f2565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6137e9601783612f1e565b91506137f4826137b5565b602082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b5f8151905061382b81612fff565b92915050565b5f6020828403121561384657613845612fc7565b5b5f6138538482850161381d565b91505092915050565b5f60408201905061386f5f83018561348c565b61387c602083018461348c565b9392505050565b5f819050919050565b5f819050919050565b5f6138af6138aa6138a584613883565b61388c565b613029565b9050919050565b6138bf81613895565b82525050565b5f60c0820190506138d85f83018961348c565b6138e560208301886130cd565b6138f260408301876138b6565b6138ff60608301866138b6565b61390c608083018561348c565b61391960a08301846130cd565b979650505050505050565b5f8151905061393281613032565b92915050565b5f805f6060848603121561394f5761394e612fc7565b5b5f61395c86828701613924565b935050602061396d86828701613924565b925050604061397e86828701613924565b9150509250925092565b5f60408201905061399b5f83018561348c565b6139a860208301846130cd565b9392505050565b6139b88161309a565b81146139c2575f80fd5b50565b5f815190506139d3816139af565b92915050565b5f602082840312156139ee576139ed612fc7565b5b5f6139fb848285016139c5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a5e602483612f1e565b9150613a6982613a04565b604082019050919050565b5f6020820190508181035f830152613a8b81613a52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613aec602283612f1e565b9150613af782613a92565b604082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b7a602583612f1e565b9150613b8582613b20565b604082019050919050565b5f6020820190508181035f830152613ba781613b6e565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c08602383612f1e565b9150613c1382613bae565b604082019050919050565b5f6020820190508181035f830152613c3581613bfc565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d75737420626520675f8201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b5f613c96603083612f1e565b9150613ca182613c3c565b604082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f4578636565647320746865204d617820547820416d6f756e742e0000000000005f82015250565b5f613cfe601a83612f1e565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b5f613d3c82613029565b9150613d4783613029565b9250828201905080821115613d5f57613d5e6134f2565b5b92915050565b7f4578636565647320746865204d61782057616c6c65742053697a652e000000005f82015250565b5f613d99601c83612f1e565b9150613da482613d65565b602082019050919050565b5f6020820190508181035f830152613dc681613d8d565b9050919050565b5f613dd782613029565b9150613de283613029565b9250828203905081811115613dfa57613df96134f2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5a602183612f1e565b9150613e6582613e00565b604082019050919050565b5f6020820190508181035f830152613e8781613e4e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ee8602283612f1e565b9150613ef382613e8e565b604082019050919050565b5f6020820190508181035f830152613f1581613edc565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f4e81612fee565b82525050565b5f613f5f8383613f45565b60208301905092915050565b5f602082019050919050565b5f613f8182613f1c565b613f8b8185613f26565b9350613f9683613f36565b805f5b83811015613fc6578151613fad8882613f54565b9750613fb883613f6b565b925050600181019050613f99565b5085935050505092915050565b5f60a082019050613fe65f8301886130cd565b613ff360208301876138b6565b81810360408301526140058186613f77565b9050614014606083018561348c565b61402160808301846130cd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61406282613029565b915061406d83613029565b92508261407d5761407c61402b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6140e2602183612f1e565b91506140ed82614088565b604082019050919050565b5f6020820190508181035f83015261410f816140d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61414a601b83612f1e565b915061415582614116565b602082019050919050565b5f6020820190508181035f8301526141778161413e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1bdef06a433861923e1c707f9ddb63358401dc2f744279028654c4ab9002f6564736f6c63430008140033

Deployed Bytecode

0x608060405260043610610207575f3560e01c8063715018a611610117578063a9059cbb1161009f578063d34628cc1161006e578063d34628cc146106e8578063d395382214610710578063dd62ed3e1461073a578063f9a20fe314610776578063fd898e00146107b25761020e565b8063a9059cbb14610642578063b0bc85de1461067e578063bf474bed146106a8578063c9567bf9146106d25761020e565b80638b9d6459116100e65780638b9d6459146105705780638da5cb5b1461059a5780638f10fd45146105c45780638f9a55c0146105ee57806395d89b41146106185761020e565b8063715018a6146104f2578063751039fc146105085780637d1db4a51461051e5780638535d2ec146105485761020e565b8063313ce5671161019a57806342966c681161016957806342966c68146104265780634d045bac1461044e57806351bc3c85146104765780636793934e1461048c57806370a08231146104b65761020e565b8063313ce5671461037057806331c2d8471461039a5780633785187e146103c25780633bbac579146103ea5761020e565b806323b872dd116101d657806323b872dd146102cc578063252d723a1461030857806325c7b46a146103325780632f5f25721461035a5761020e565b806306fdde0314610212578063095ea7b31461023c5780630faee56f1461027857806318160ddd146102a25761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107c8565b6040516102339190612f9e565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d919061305c565b610805565b60405161026f91906130b4565b60405180910390f35b348015610283575f80fd5b5061028c610822565b60405161029991906130dc565b60405180910390f35b3480156102ad575f80fd5b506102b6610828565b6040516102c391906130dc565b60405180910390f35b3480156102d7575f80fd5b506102f260048036038101906102ed91906130f5565b61084b565b6040516102ff91906130b4565b60405180910390f35b348015610313575f80fd5b5061031c61091f565b60405161032991906130dc565b60405180910390f35b34801561033d575f80fd5b5061035860048036038101906103539190613145565b61093e565b005b348015610365575f80fd5b5061036e6109dc565b005b34801561037b575f80fd5b50610384610a80565b604051610391919061318b565b60405180910390f35b3480156103a5575f80fd5b506103c060048036038101906103bb91906132e4565b610a88565b005b3480156103cd575f80fd5b506103e860048036038101906103e39190613145565b610bac565b005b3480156103f5575f80fd5b50610410600480360381019061040b919061332b565b610c51565b60405161041d91906130b4565b60405180910390f35b348015610431575f80fd5b5061044c60048036038101906104479190613145565b610ca3565b005b348015610459575f80fd5b50610474600480360381019061046f9190613145565b610d4b565b005b348015610481575f80fd5b5061048a610de9565b005b348015610497575f80fd5b506104a0610f14565b6040516104ad91906130dc565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061332b565b610f1d565b6040516104e991906130dc565b60405180910390f35b3480156104fd575f80fd5b50610506610f63565b005b348015610513575f80fd5b5061051c6110b1565b005b348015610529575f80fd5b506105326111e0565b60405161053f91906130dc565b60405180910390f35b348015610553575f80fd5b5061056e60048036038101906105699190613416565b6111e6565b005b34801561057b575f80fd5b506105846112e9565b60405161059191906130dc565b60405180910390f35b3480156105a5575f80fd5b506105ae6112f2565b6040516105bb919061349b565b60405180910390f35b3480156105cf575f80fd5b506105d8611319565b6040516105e591906130dc565b60405180910390f35b3480156105f9575f80fd5b50610602611322565b60405161060f91906130dc565b60405180910390f35b348015610623575f80fd5b5061062c611328565b6040516106399190612f9e565b60405180910390f35b34801561064d575f80fd5b506106686004803603810190610663919061305c565b611365565b60405161067591906130b4565b60405180910390f35b348015610689575f80fd5b50610692611382565b60405161069f91906130dc565b60405180910390f35b3480156106b3575f80fd5b506106bc6113a1565b6040516106c991906130dc565b60405180910390f35b3480156106dd575f80fd5b506106e66113a7565b005b3480156106f3575f80fd5b5061070e600480360381019061070991906132e4565b6118d0565b005b34801561071b575f80fd5b506107246119f5565b604051610731919061349b565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906134b4565b611ab1565b60405161076d91906130dc565b60405180910390f35b348015610781575f80fd5b5061079c6004803603810190610797919061332b565b611b33565b6040516107a991906130dc565b60405180910390f35b3480156107bd575f80fd5b506107c6611c2c565b005b60606040518060400160405280600d81526020017f526f6172696e67204b6974747900000000000000000000000000000000000000815250905090565b5f610818610811611cc9565b8484611cd0565b6001905092915050565b60135481565b5f6009600a610837919061364e565b633b9aca006108469190613698565b905090565b5f610857848484611e93565b61091484610863611cc9565b61090f8560405180606001604052806028815260200161417f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108c6611cc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128519092919063ffffffff16565b611cd0565b600190509392505050565b5f600b54600e541161093557600754905061093b565b60095490505b90565b610946611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990613723565b60405180910390fd5b8060088190555050565b6109e4611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790613723565b60405180910390fd5b5f600b819055505f600c81905550565b5f6009905090565b610a90611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613723565b60405180910390fd5b5f5b8151811015610ba8575f60045f848481518110610b3e57610b3d613741565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ba09061376e565b915050610b1e565b5050565b610bb4611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613723565b60405180910390fd5b80600b8190555080600c8190555050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610cab611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90613723565b60405180910390fd5b610d48610d42611cc9565b826128b3565b50565b610d53611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690613723565b60405180910390fd5b8060078190555050565b610df1611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490613723565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ebd611cc9565b73ffffffffffffffffffffffffffffffffffffffff1614610edc575f80fd5b5f610ee630610f1d565b90505f811115610efa57610ef981612a53565b5b5f4790505f811115610f1057610f0f81612cbc565b5b5050565b5f600b54905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f6b611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fee90613723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110b9611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613723565b60405180910390fd5b6009600a611153919061364e565b633b9aca006111629190613698565b6010819055506009600a611176919061364e565b633b9aca006111859190613698565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6111ba919061364e565b633b9aca006111c99190613698565b6040516111d691906130dc565b60405180910390a1565b60105481565b6111ee611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190613723565b60405180910390fd5b8051825114611287575f80fd5b5f5b81518110156112e4576112d08382815181106112a8576112a7613741565b5b60200260200101518383815181106112c3576112c2613741565b5b6020026020010151611365565b5080806112dc9061376e565b915050611289565b505050565b5f600d54905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600e54905090565b60115481565b60606040518060400160405280600481526020017f726f617200000000000000000000000000000000000000000000000000000000815250905090565b5f611378611371611cc9565b8484611e93565b6001905092915050565b5f600c54600e541161139857600854905061139e565b600a5490505b90565b60125481565b6113af611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613723565b60405180910390fd5b601560149054906101000a900460ff161561148b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611482906137ff565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115273060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611513919061364e565b633b9aca006115229190613698565b611cd0565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611591573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b59190613831565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165f9190613831565b6040518363ffffffff1660e01b815260040161167c92919061385c565b6020604051808303815f875af1158015611698573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116bc9190613831565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061174330610f1d565b5f8061174d6112f2565b426040518863ffffffff1660e01b815260040161176f969594939291906138c5565b60606040518083038185885af115801561178b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117b09190613938565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611850929190613988565b6020604051808303815f875af115801561186c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061189091906139d9565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600681905550565b6118d8611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195b90613723565b60405180910390fd5b5f5b81518110156119f157600160045f84848151811061198757611986613741565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806119e99061376e565b915050611966565b5050565b5f6119fe611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190613723565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f611b3c611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613723565b60405180910390fd5b611c256009600a611bd9919061364e565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d2490919063ffffffff16565b9050919050565b611c34611cc9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613723565b60405180910390fd5b5f600d81905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613a74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da390613b02565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e8691906130dc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890613b90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690613c1e565b60405180910390fd5b5f8111611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa890613cac565b60405180910390fd5b5f611fba6112f2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120285750611ff86112f2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125a15760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120cb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6120d3575f80fd5b61210f6064612101600b54600e54116120ee576007546120f2565b6009545b85612d6d90919063ffffffff16565b612d2490919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121ba575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561220d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122f057601054821115612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90613d14565b60405180910390fd5b6011548261226485610f1d565b61226e9190613d32565b11156122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a690613daf565b60405180910390fd5b4360036006546122bf9190613d32565b11156122d8576122ce83612de4565b156122d7575f80fd5b5b600e5f8154809291906122ea9061376e565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612394575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156123f257601154826123a685610f1d565b6123b09190613d32565b11156123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890613daf565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561247a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124be576124bb60646124ad600c54600e541161249a5760085461249e565b600a545b85612d6d90919063ffffffff16565b612d2490919063ffffffff16565b90505b5f6124c830610f1d565b905060158054906101000a900460ff16158015612531575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156125495750601560169054906101000a900460ff165b8015612556575060125481115b80156125655750600d54600e54115b1561259f576125876125828461257d84601354612df5565b612df5565b612a53565b5f4790505f81111561259d5761259c47612cbc565b5b505b505b5f8111156126a0576125f98160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e0d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161269791906130dc565b60405180910390a35b6126f08260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127936127478284612e6a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e0d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6128368486612e6a90919063ffffffff16565b60405161284391906130dc565b60405180910390a350505050565b5f838311158290612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f9190612f9e565b60405180910390fd5b505f83856128a69190613dcd565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291890613e70565b60405180910390fd5b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90613efe565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a4691906130dc565b60405180910390a3505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612a8957612a886131a8565b5b604051908082528060200260200182016040528015612ab75781602001602082028036833780820191505090505b50905030815f81518110612ace57612acd613741565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b969190613831565b81600181518110612baa57612ba9613741565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c103060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cd0565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c72959493929190613fd3565b5f604051808303815f87803b158015612c89575f80fd5b505af1158015612c9b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612d20573d5f803e3d5ffd5b5050565b5f612d6583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f808303612d7d575f9050612dde565b5f8284612d8a9190613698565b9050828482612d999190614058565b14612dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd0906140f8565b60405180910390fd5b809150505b92915050565b5f80823b90505f8111915050919050565b5f818311612e035782612e05565b815b905092915050565b5f808284612e1b9190613d32565b905083811015612e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5790614160565b60405180910390fd5b8091505092915050565b5f612eab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612851565b905092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef09190612f9e565b60405180910390fd5b505f8385612f079190614058565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f4b578082015181840152602081019050612f30565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f7082612f14565b612f7a8185612f1e565b9350612f8a818560208601612f2e565b612f9381612f56565b840191505092915050565b5f6020820190508181035f830152612fb68184612f66565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff882612fcf565b9050919050565b61300881612fee565b8114613012575f80fd5b50565b5f8135905061302381612fff565b92915050565b5f819050919050565b61303b81613029565b8114613045575f80fd5b50565b5f8135905061305681613032565b92915050565b5f806040838503121561307257613071612fc7565b5b5f61307f85828601613015565b925050602061309085828601613048565b9150509250929050565b5f8115159050919050565b6130ae8161309a565b82525050565b5f6020820190506130c75f8301846130a5565b92915050565b6130d681613029565b82525050565b5f6020820190506130ef5f8301846130cd565b92915050565b5f805f6060848603121561310c5761310b612fc7565b5b5f61311986828701613015565b935050602061312a86828701613015565b925050604061313b86828701613048565b9150509250925092565b5f6020828403121561315a57613159612fc7565b5b5f61316784828501613048565b91505092915050565b5f60ff82169050919050565b61318581613170565b82525050565b5f60208201905061319e5f83018461317c565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6131de82612f56565b810181811067ffffffffffffffff821117156131fd576131fc6131a8565b5b80604052505050565b5f61320f612fbe565b905061321b82826131d5565b919050565b5f67ffffffffffffffff82111561323a576132396131a8565b5b602082029050602081019050919050565b5f80fd5b5f61326161325c84613220565b613206565b905080838252602082019050602084028301858111156132845761328361324b565b5b835b818110156132ad57806132998882613015565b845260208401935050602081019050613286565b5050509392505050565b5f82601f8301126132cb576132ca6131a4565b5b81356132db84826020860161324f565b91505092915050565b5f602082840312156132f9576132f8612fc7565b5b5f82013567ffffffffffffffff81111561331657613315612fcb565b5b613322848285016132b7565b91505092915050565b5f602082840312156133405761333f612fc7565b5b5f61334d84828501613015565b91505092915050565b5f67ffffffffffffffff8211156133705761336f6131a8565b5b602082029050602081019050919050565b5f61339361338e84613356565b613206565b905080838252602082019050602084028301858111156133b6576133b561324b565b5b835b818110156133df57806133cb8882613048565b8452602084019350506020810190506133b8565b5050509392505050565b5f82601f8301126133fd576133fc6131a4565b5b813561340d848260208601613381565b91505092915050565b5f806040838503121561342c5761342b612fc7565b5b5f83013567ffffffffffffffff81111561344957613448612fcb565b5b613455858286016132b7565b925050602083013567ffffffffffffffff81111561347657613475612fcb565b5b613482858286016133e9565b9150509250929050565b61349581612fee565b82525050565b5f6020820190506134ae5f83018461348c565b92915050565b5f80604083850312156134ca576134c9612fc7565b5b5f6134d785828601613015565b92505060206134e885828601613015565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613574578086048111156135505761354f6134f2565b5b600185161561355f5780820291505b808102905061356d8561351f565b9450613534565b94509492505050565b5f8261358c5760019050613647565b81613599575f9050613647565b81600181146135af57600281146135b9576135e8565b6001915050613647565b60ff8411156135cb576135ca6134f2565b5b8360020a9150848211156135e2576135e16134f2565b5b50613647565b5060208310610133831016604e8410600b841016171561361d5782820a905083811115613618576136176134f2565b5b613647565b61362a848484600161352b565b92509050818404811115613641576136406134f2565b5b81810290505b9392505050565b5f61365882613029565b915061366383613170565b92506136907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461357d565b905092915050565b5f6136a282613029565b91506136ad83613029565b92508282026136bb81613029565b915082820484148315176136d2576136d16134f2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61370d602083612f1e565b9150613718826136d9565b602082019050919050565b5f6020820190508181035f83015261373a81613701565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61377882613029565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137aa576137a96134f2565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6137e9601783612f1e565b91506137f4826137b5565b602082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b5f8151905061382b81612fff565b92915050565b5f6020828403121561384657613845612fc7565b5b5f6138538482850161381d565b91505092915050565b5f60408201905061386f5f83018561348c565b61387c602083018461348c565b9392505050565b5f819050919050565b5f819050919050565b5f6138af6138aa6138a584613883565b61388c565b613029565b9050919050565b6138bf81613895565b82525050565b5f60c0820190506138d85f83018961348c565b6138e560208301886130cd565b6138f260408301876138b6565b6138ff60608301866138b6565b61390c608083018561348c565b61391960a08301846130cd565b979650505050505050565b5f8151905061393281613032565b92915050565b5f805f6060848603121561394f5761394e612fc7565b5b5f61395c86828701613924565b935050602061396d86828701613924565b925050604061397e86828701613924565b9150509250925092565b5f60408201905061399b5f83018561348c565b6139a860208301846130cd565b9392505050565b6139b88161309a565b81146139c2575f80fd5b50565b5f815190506139d3816139af565b92915050565b5f602082840312156139ee576139ed612fc7565b5b5f6139fb848285016139c5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a5e602483612f1e565b9150613a6982613a04565b604082019050919050565b5f6020820190508181035f830152613a8b81613a52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613aec602283612f1e565b9150613af782613a92565b604082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b7a602583612f1e565b9150613b8582613b20565b604082019050919050565b5f6020820190508181035f830152613ba781613b6e565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c08602383612f1e565b9150613c1382613bae565b604082019050919050565b5f6020820190508181035f830152613c3581613bfc565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d75737420626520675f8201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b5f613c96603083612f1e565b9150613ca182613c3c565b604082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f4578636565647320746865204d617820547820416d6f756e742e0000000000005f82015250565b5f613cfe601a83612f1e565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b5f613d3c82613029565b9150613d4783613029565b9250828201905080821115613d5f57613d5e6134f2565b5b92915050565b7f4578636565647320746865204d61782057616c6c65742053697a652e000000005f82015250565b5f613d99601c83612f1e565b9150613da482613d65565b602082019050919050565b5f6020820190508181035f830152613dc681613d8d565b9050919050565b5f613dd782613029565b9150613de283613029565b9250828203905081811115613dfa57613df96134f2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5a602183612f1e565b9150613e6582613e00565b604082019050919050565b5f6020820190508181035f830152613e8781613e4e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ee8602283612f1e565b9150613ef382613e8e565b604082019050919050565b5f6020820190508181035f830152613f1581613edc565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f4e81612fee565b82525050565b5f613f5f8383613f45565b60208301905092915050565b5f602082019050919050565b5f613f8182613f1c565b613f8b8185613f26565b9350613f9683613f36565b805f5b83811015613fc6578151613fad8882613f54565b9750613fb883613f6b565b925050600181019050613f99565b5085935050505092915050565b5f60a082019050613fe65f8301886130cd565b613ff360208301876138b6565b81810360408301526140058186613f77565b9050614014606083018561348c565b61402160808301846130cd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61406282613029565b915061406d83613029565b92508261407d5761407c61402b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6140e2602183612f1e565b91506140ed82614088565b604082019050919050565b5f6020820190508181035f83015261410f816140d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61414a601b83612f1e565b915061415582614116565b602082019050919050565b5f6020820190508181035f8301526141778161413e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1bdef06a433861923e1c707f9ddb63358401dc2f744279028654c4ab9002f6564736f6c63430008140033

Deployed Bytecode Sourcemap

3630:10850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5804:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6529:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12567:202;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12455:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11980;;;;;;;;;;;;;:::i;:::-;;5713:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13262:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12094:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13432:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9754:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12345:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11336:357;;;;;;;;;;;;;:::i;:::-;;12239:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5907:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2711:148;;;;;;;;;;;;;:::i;:::-;;11813:159;;;;;;;;;;;;;:::i;:::-;;4611:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10287:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13621:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2497:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13523:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4672:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5618:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12777:205;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4735:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13731:707;;;;;;;;;;;;;:::i;:::-;;13090:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10730:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10570:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11701:104;;;;;;;;;;;;;:::i;:::-;;5527:83;5564:13;5597:5;;;;;;;;;;;;;;;;;5590:12;;5527:83;:::o;6360:161::-;6435:4;6452:39;6461:12;:10;:12::i;:::-;6475:7;6484:6;6452:8;:39::i;:::-;6509:4;6502:11;;6360:161;;;;:::o;4800:52::-;;;;:::o;5804:95::-;5857:7;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;5877:14;;5804:95;:::o;6529:313::-;6627:4;6644:36;6654:6;6662:9;6673:6;6644:9;:36::i;:::-;6691:121;6700:6;6708:12;:10;:12::i;:::-;6722:89;6760:6;6722:89;;;;;;;;;;;;;;;;;:11;:19;6734:6;6722:19;;;;;;;;;;;;;;;:33;6742:12;:10;:12::i;:::-;6722:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6691:8;:121::i;:::-;6830:4;6823:11;;6529:313;;;;;:::o;12567:202::-;12611:7;12648:15;;12635:9;;:28;12631:131;;12686:14;;12679:21;;;;12631:131;12738:12;;12731:19;;12567:202;;:::o;12455:104::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:6:::1;12529:15;:22;;;;12455:104:::0;:::o;11980:::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12046:1:::1;12030:15;:17;;;;12075:1;12058:16;:18;;;;11980:104::o:0;5713:83::-;5754:5;4420:1;5772:16;;5713:83;:::o;13262:162::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13335:6:::1;13330:87;13351:6;:13;13347:1;:17;13330:87;;;13402:5;13384:4;:15;13389:6;13396:1;13389:9;;;;;;;;:::i;:::-;;;;;;;;13384:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13366:3;;;;;:::i;:::-;;;;13330:87;;;;13262:162:::0;:::o;12094:135::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12181:6:::1;12165:15;:22;;;;12215:6;12198:16;:23;;;;12094:135:::0;:::o;13432:83::-;13479:4;13500;:7;13505:1;13500:7;;;;;;;;;;;;;;;;;;;;;;;;;13493:14;;13432:83;;;:::o;9754:94::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9813:27:::1;9819:12;:10;:12::i;:::-;9833:6;9813:5;:27::i;:::-;9754:94:::0;:::o;12345:102::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12433:6:::1;12418:14;:21;;;;12345:102:::0;:::o;11336:357::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11409:10:::1;;;;;;;;;;;11395:24;;:12;:10;:12::i;:::-;:24;;;11387:33;;;::::0;::::1;;11431:20;11452:24;11470:4;11452:9;:24::i;:::-;11431:45;;11503:1;11490:12;:14;11487:73;;;11518:30;11535:12;11518:16;:30::i;:::-;11487:73;11570:18;11589:21;11570:40;;11635:1;11624:10;:12;11621:65;;;11650:24;11663:10;11650:12;:24::i;:::-;11621:65;11376:317;;11336:357::o:0;12239:98::-;12288:7;12314:15;;12307:22;;12239:98;:::o;5907:119::-;5973:7;6000:9;:18;6010:7;6000:18;;;;;;;;;;;;;;;;5993:25;;5907:119;;;:::o;2711:148::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2818:1:::1;2781:40;;2802:6;::::0;::::1;;;;;;;;2781:40;;;;;;;;;;;;2849:1;2832:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2711:148::o:0;11813:159::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4420:1:::1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;11866:12;:22;;;;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;11899:14;:22;;;;11937:27;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;11937:27;;;;;;:::i;:::-;;;;;;;;11813:159::o:0;4611:54::-;;;;:::o;10287:272::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10418:7:::1;:14;10396:11;:18;:36;10388:45;;;::::0;::::1;;10450:6;10445:107;10466:7;:14;10462:1;:18;10445:107;;;10503:36;10512:11;10524:1;10512:14;;;;;;;;:::i;:::-;;;;;;;;10528:7;10536:1;10528:10;;;;;;;;:::i;:::-;;;;;;;;10503:8;:36::i;:::-;;10482:3;;;;;:::i;:::-;;;;10445:107;;;;10287:272:::0;;:::o;13621:102::-;13670:7;13697:18;;13690:25;;13621:102;:::o;2497:79::-;2535:7;2562:6;;;;;;;;;;;2555:13;;2497:79;:::o;13523:90::-;13569:7;13596:9;;13589:16;;13523:90;:::o;4672:56::-;;;;:::o;5618:87::-;5657:13;5690:7;;;;;;;;;;;;;;;;;5683:14;;5618:87;:::o;6034:167::-;6112:4;6129:42;6139:12;:10;:12::i;:::-;6153:9;6164:6;6129:9;:42::i;:::-;6189:4;6182:11;;6034:167;;;;:::o;12777:205::-;12822:7;12858:16;;12845:9;;:29;12841:134;;12897:15;;12890:22;;;;12841:134;12950:13;;12943:20;;12777:205;;:::o;4735:58::-;;;;:::o;13731:707::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13795:11:::1;;;;;;;;;;;13794:12;13786:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13881:42;13844:15;;:80;;;;;;;;;;;;;;;;;;13935:58;13952:4;13967:15;;;;;;;;;;;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;13935:8;:58::i;:::-;14038:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14020:55;;;14084:4;14091:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14020:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14004:13;;:110;;;;;;;;;;;;;;;;;;14125:15;;;;;;;;;;;:31;;;14164:21;14195:4;14201:24;14219:4;14201:9;:24::i;:::-;14226:1;14228::::0;14230:7:::1;:5;:7::i;:::-;14238:15;14125:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14272:13;;;;;;;;;;;14265:29;;;14303:15;;;;;;;;;;;14321:14;14265:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14361:4;14347:11;;:18;;;;;;;;;;;;;;;;;;14390:4;14376:11;;:18;;;;;;;;;;;;;;;;;;14418:12;14405:10;:25;;;;13731:707::o:0;13090:164::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13164:6:::1;13159:88;13180:5;:12;13176:1;:16;13159:88;;;13231:4;13214;:14;13219:5;13225:1;13219:8;;;;;;;;:::i;:::-;;;;;;;;13214:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13194:3;;;;;:::i;:::-;;;;13159:88;;;;13090:164:::0;:::o;10730:107::-;10790:7;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10817:12:::1;;;;;;;;;;;10810:19;;10730:107:::0;:::o;6209:143::-;6290:7;6317:11;:18;6329:5;6317:18;;;;;;;;;;;;;;;:27;6336:7;6317:27;;;;;;;;;;;;;;;;6310:34;;6209:143;;;;:::o;10570:150::-;10646:7;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10673:39:::1;4420:1;10697:2;:13;;;;:::i;:::-;10673:9;:18;10683:7;10673:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10666:46;;10570:150:::0;;;:::o;11701:104::-;2634:12;:10;:12::i;:::-;2624:22;;:6;;;;;;;;;;:22;;;2616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11796:1:::1;11777:18;:20;;;;11701:104::o:0;251:98::-;304:7;331:10;324:17;;251:98;:::o;6850:335::-;6960:1;6943:19;;:5;:19;;;6935:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7041:1;7022:21;;:7;:21;;;7014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7123:6;7093:11;:18;7105:5;7093:18;;;;;;;;;;;;;;;:27;7112:7;7093:27;;;;;;;;;;;;;;;:36;;;;7161:7;7145:32;;7154:5;7145:32;;;7170:6;7145:32;;;;;;:::i;:::-;;;;;;;;6850:335;;;:::o;7193:2242::-;7297:1;7281:18;;:4;:18;;;7273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7374:1;7360:16;;:2;:16;;;7352:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7444:1;7435:6;:10;7427:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7511:17;7553:7;:5;:7::i;:::-;7545:15;;:4;:15;;;;:32;;;;;7570:7;:5;:7::i;:::-;7564:13;;:2;:13;;;;7545:32;7541:1538;;;7603:4;:10;7608:4;7603:10;;;;;;;;;;;;;;;;;;;;;;;;;7602:11;:24;;;;;7618:4;:8;7623:2;7618:8;;;;;;;;;;;;;;;;;;;;;;;;;7617:9;7602:24;7594:33;;;;;;7654:76;7726:3;7654:67;7676:15;;7666:9;;:25;7665:55;;7706:14;;7665:55;;;7693:12;;7665:55;7654:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7642:88;;7759:13;;;;;;;;;;;7751:21;;:4;:21;;;:55;;;;;7790:15;;;;;;;;;;;7776:30;;:2;:30;;;;7751:55;:83;;;;;7812:18;:22;7831:2;7812:22;;;;;;;;;;;;;;;;;;;;;;;;;7810:24;7751:83;7747:439;;;7874:12;;7864:6;:22;;7856:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7970:14;;7960:6;7944:13;7954:2;7944:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7936:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;8060:12;8055:1;8042:10;;:14;;;;:::i;:::-;:30;8038:103;;;8106:14;8117:2;8106:10;:14::i;:::-;8105:15;8097:24;;;;;;8038:103;8159:9;;:11;;;;;;;;;:::i;:::-;;;;;;7747:439;8212:13;;;;;;;;;;;8206:19;;:2;:19;;;;:47;;;;;8231:18;:22;8250:2;8231:22;;;;;;;;;;;;;;;;;;;;;;;;;8229:24;8206:47;8202:169;;;8308:14;;8298:6;8282:13;8292:2;8282:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8274:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;8202:169;8396:13;;;;;;;;;;;8390:19;;:2;:19;;;:43;;;;;8428:4;8413:20;;:4;:20;;;;8390:43;8387:174;;;8466:79;8541:3;8466:70;8488:16;;8478:9;;:26;8477:58;;8520:15;;8477:58;;;8506:13;;8477:58;8466:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8454:91;;8387:174;8577:28;8608:24;8626:4;8608:9;:24::i;:::-;8577:55;;8652:6;;;;;;;;;;8651:7;:32;;;;;8670:13;;;;;;;;;;;8662:21;;:2;:21;;;8651:32;:47;;;;;8687:11;;;;;;;;;;;8651:47;:89;;;;;8723:17;;8702:20;:38;8651:89;:121;;;;;8754:18;;8744:9;;:28;8651:121;8647:421;;;8793:67;8810:49;8814:6;8821:37;8825:20;8846:11;;8821:3;:37::i;:::-;8810:3;:49::i;:::-;8793:16;:67::i;:::-;8879:26;8908:21;8879:50;;8972:1;8951:18;:22;8948:105;;;8998:35;9011:21;8998:12;:35::i;:::-;8948:105;8774:294;8647:421;7579:1500;7541:1538;9104:1;9094:9;:11;9091:161;;;9144:39;9173:9;9144;:24;9162:4;9144:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9119:9;:24;9137:4;9119:24;;;;;;;;;;;;;;;:64;;;;9224:4;9201:39;;9210:4;9201:39;;;9230:9;9201:39;;;;;;:::i;:::-;;;;;;;;9091:161;9278:27;9298:6;9278:9;:15;9288:4;9278:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9262:9;:15;9272:4;9262:15;;;;;;;;;;;;;;;:43;;;;9330:40;9348:21;9359:9;9348:6;:10;;:21;;;;:::i;:::-;9330:9;:13;9340:2;9330:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9316:9;:13;9326:2;9316:13;;;;;;;;;;;;;;;:54;;;;9401:2;9386:41;;9395:4;9386:41;;;9405:21;9416:9;9405:6;:10;;:21;;;;:::i;:::-;9386:41;;;;;;:::i;:::-;;;;;;;;7262:2173;7193:2242;;;:::o;1389:190::-;1475:7;1508:1;1503;:6;;1511:12;1495:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1535:9;1551:1;1547;:5;;;;:::i;:::-;1535:17;;1570:1;1563:8;;;1389:190;;;;;:::o;9856:423::-;9959:1;9940:21;;:7;:21;;;9932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10012:18;10033:9;:18;10043:7;10033:18;;;;;;;;;;;;;;;;10012:39;;10084:6;10070:10;:20;;10062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10199:6;10186:10;:19;10165:9;:18;10175:7;10165:18;;;;;;;;;;;;;;;:40;;;;10260:1;10234:37;;10243:7;10234:37;;;10264:6;10234:37;;;;;;:::i;:::-;;;;;;;;9921:358;9856:423;;:::o;10845:483::-;5143:4;5134:6;;:13;;;;;;;;;;;;;;;;;;10923:21:::1;10961:1;10947:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10923:40;;10992:4;10974;10979:1;10974:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11018:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11008:4;11013:1;11008:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11051:62;11068:4;11083:15;;;;;;;;;;;11101:11;11051:8;:62::i;:::-;11124:15;;;;;;;;;;;:66;;;11205:11;11231:1;11247:4;11274;11294:15;11124:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10912:416;5179:5:::0;5170:6;;:14;;;;;;;;;;;;;;;;;;10845:483;:::o;12990:92::-;13047:10;;;;;;;;;;;:19;;:27;13067:6;13047:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12990:92;:::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1919:46;;1841:132;;;;:::o;1587:246::-;1645:7;1674:1;1669;:6;1665:47;;1699:1;1692:8;;;;1665:47;1722:9;1738:1;1734;:5;;;;:::i;:::-;1722:17;;1767:1;1762;1758;:5;;;;:::i;:::-;:10;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1824:1;1817:8;;;1587:246;;;;;:::o;9551:195::-;9610:4;9627:12;9694:7;9682:20;9674:28;;9737:1;9730:4;:8;9723:15;;;9551:195;;;:::o;9445:98::-;9502:7;9529:1;9527;:3;9526:9;;9534:1;9526:9;;;9532:1;9526:9;9519:16;;9445:98;;;;:::o;1058:179::-;1116:7;1136:9;1152:1;1148;:5;;;;:::i;:::-;1136:17;;1177:1;1172;:6;;1164:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1228:1;1221:8;;;1058:179;;;;:::o;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1323:50;;1245:136;;;;:::o;1981:189::-;2067:7;2099:1;2095;:5;2102:12;2087:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2126:9;2142:1;2138;:5;;;;:::i;:::-;2126:17;;2161:1;2154:8;;;1981:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:329::-;8089:6;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8030:329;;;;:::o;8365:311::-;8442:4;8532:18;8524:6;8521:30;8518:56;;;8554:18;;:::i;:::-;8518:56;8604:4;8596:6;8592:17;8584:25;;8664:4;8658;8654:15;8646:23;;8365:311;;;:::o;8699:710::-;8795:5;8820:81;8836:64;8893:6;8836:64;:::i;:::-;8820:81;:::i;:::-;8811:90;;8921:5;8950:6;8943:5;8936:21;8984:4;8977:5;8973:16;8966:23;;9037:4;9029:6;9025:17;9017:6;9013:30;9066:3;9058:6;9055:15;9052:122;;;9085:79;;:::i;:::-;9052:122;9200:6;9183:220;9217:6;9212:3;9209:15;9183:220;;;9292:3;9321:37;9354:3;9342:10;9321:37;:::i;:::-;9316:3;9309:50;9388:4;9383:3;9379:14;9372:21;;9259:144;9243:4;9238:3;9234:14;9227:21;;9183:220;;;9187:21;8801:608;;8699:710;;;;;:::o;9432:370::-;9503:5;9552:3;9545:4;9537:6;9533:17;9529:27;9519:122;;9560:79;;:::i;:::-;9519:122;9677:6;9664:20;9702:94;9792:3;9784:6;9777:4;9769:6;9765:17;9702:94;:::i;:::-;9693:103;;9509:293;9432:370;;;;:::o;9808:894::-;9926:6;9934;9983:2;9971:9;9962:7;9958:23;9954:32;9951:119;;;9989:79;;:::i;:::-;9951:119;10137:1;10126:9;10122:17;10109:31;10167:18;10159:6;10156:30;10153:117;;;10189:79;;:::i;:::-;10153:117;10294:78;10364:7;10355:6;10344:9;10340:22;10294:78;:::i;:::-;10284:88;;10080:302;10449:2;10438:9;10434:18;10421:32;10480:18;10472:6;10469:30;10466:117;;;10502:79;;:::i;:::-;10466:117;10607:78;10677:7;10668:6;10657:9;10653:22;10607:78;:::i;:::-;10597:88;;10392:303;9808:894;;;;;:::o;10708:118::-;10795:24;10813:5;10795:24;:::i;:::-;10790:3;10783:37;10708:118;;:::o;10832:222::-;10925:4;10963:2;10952:9;10948:18;10940:26;;10976:71;11044:1;11033:9;11029:17;11020:6;10976:71;:::i;:::-;10832:222;;;;:::o;11060:474::-;11128:6;11136;11185:2;11173:9;11164:7;11160:23;11156:32;11153:119;;;11191:79;;:::i;:::-;11153:119;11311:1;11336:53;11381:7;11372:6;11361:9;11357:22;11336:53;:::i;:::-;11326:63;;11282:117;11438:2;11464:53;11509:7;11500:6;11489:9;11485:22;11464:53;:::i;:::-;11454:63;;11409:118;11060:474;;;;;:::o;11540:180::-;11588:77;11585:1;11578:88;11685:4;11682:1;11675:15;11709:4;11706:1;11699:15;11726:102;11768:8;11815:5;11812:1;11808:13;11787:34;;11726:102;;;:::o;11834:848::-;11895:5;11902:4;11926:6;11917:15;;11950:5;11941:14;;11964:712;11985:1;11975:8;11972:15;11964:712;;;12080:4;12075:3;12071:14;12065:4;12062:24;12059:50;;;12089:18;;:::i;:::-;12059:50;12139:1;12129:8;12125:16;12122:451;;;12554:4;12547:5;12543:16;12534:25;;12122:451;12604:4;12598;12594:15;12586:23;;12634:32;12657:8;12634:32;:::i;:::-;12622:44;;11964:712;;;11834:848;;;;;;;:::o;12688:1073::-;12742:5;12933:8;12923:40;;12954:1;12945:10;;12956:5;;12923:40;12982:4;12972:36;;12999:1;12990:10;;13001:5;;12972:36;13068:4;13116:1;13111:27;;;;13152:1;13147:191;;;;13061:277;;13111:27;13129:1;13120:10;;13131:5;;;13147:191;13192:3;13182:8;13179:17;13176:43;;;13199:18;;:::i;:::-;13176:43;13248:8;13245:1;13241:16;13232:25;;13283:3;13276:5;13273:14;13270:40;;;13290:18;;:::i;:::-;13270:40;13323:5;;;13061:277;;13447:2;13437:8;13434:16;13428:3;13422:4;13419:13;13415:36;13397:2;13387:8;13384:16;13379:2;13373:4;13370:12;13366:35;13350:111;13347:246;;;13503:8;13497:4;13493:19;13484:28;;13538:3;13531:5;13528:14;13525:40;;;13545:18;;:::i;:::-;13525:40;13578:5;;13347:246;13618:42;13656:3;13646:8;13640:4;13637:1;13618:42;:::i;:::-;13603:57;;;;13692:4;13687:3;13683:14;13676:5;13673:25;13670:51;;;13701:18;;:::i;:::-;13670:51;13750:4;13743:5;13739:16;13730:25;;12688:1073;;;;;;:::o;13767:281::-;13825:5;13849:23;13867:4;13849:23;:::i;:::-;13841:31;;13893:25;13909:8;13893:25;:::i;:::-;13881:37;;13937:104;13974:66;13964:8;13958:4;13937:104;:::i;:::-;13928:113;;13767:281;;;;:::o;14054:410::-;14094:7;14117:20;14135:1;14117:20;:::i;:::-;14112:25;;14151:20;14169:1;14151:20;:::i;:::-;14146:25;;14206:1;14203;14199:9;14228:30;14246:11;14228:30;:::i;:::-;14217:41;;14407:1;14398:7;14394:15;14391:1;14388:22;14368:1;14361:9;14341:83;14318:139;;14437:18;;:::i;:::-;14318:139;14102:362;14054:410;;;;:::o;14470:182::-;14610:34;14606:1;14598:6;14594:14;14587:58;14470:182;:::o;14658:366::-;14800:3;14821:67;14885:2;14880:3;14821:67;:::i;:::-;14814:74;;14897:93;14986:3;14897:93;:::i;:::-;15015:2;15010:3;15006:12;14999:19;;14658:366;;;:::o;15030:419::-;15196:4;15234:2;15223:9;15219:18;15211:26;;15283:9;15277:4;15273:20;15269:1;15258:9;15254:17;15247:47;15311:131;15437:4;15311:131;:::i;:::-;15303:139;;15030:419;;;:::o;15455:180::-;15503:77;15500:1;15493:88;15600:4;15597:1;15590:15;15624:4;15621:1;15614:15;15641:233;15680:3;15703:24;15721:5;15703:24;:::i;:::-;15694:33;;15749:66;15742:5;15739:77;15736:103;;15819:18;;:::i;:::-;15736:103;15866:1;15859:5;15855:13;15848:20;;15641:233;;;:::o;15880:173::-;16020:25;16016:1;16008:6;16004:14;15997:49;15880:173;:::o;16059:366::-;16201:3;16222:67;16286:2;16281:3;16222:67;:::i;:::-;16215:74;;16298:93;16387:3;16298:93;:::i;:::-;16416:2;16411:3;16407:12;16400:19;;16059:366;;;:::o;16431:419::-;16597:4;16635:2;16624:9;16620:18;16612:26;;16684:9;16678:4;16674:20;16670:1;16659:9;16655:17;16648:47;16712:131;16838:4;16712:131;:::i;:::-;16704:139;;16431:419;;;:::o;16856:143::-;16913:5;16944:6;16938:13;16929:22;;16960:33;16987:5;16960:33;:::i;:::-;16856:143;;;;:::o;17005:351::-;17075:6;17124:2;17112:9;17103:7;17099:23;17095:32;17092:119;;;17130:79;;:::i;:::-;17092:119;17250:1;17275:64;17331:7;17322:6;17311:9;17307:22;17275:64;:::i;:::-;17265:74;;17221:128;17005:351;;;;:::o;17362:332::-;17483:4;17521:2;17510:9;17506:18;17498:26;;17534:71;17602:1;17591:9;17587:17;17578:6;17534:71;:::i;:::-;17615:72;17683:2;17672:9;17668:18;17659:6;17615:72;:::i;:::-;17362:332;;;;;:::o;17700:85::-;17745:7;17774:5;17763:16;;17700:85;;;:::o;17791:60::-;17819:3;17840:5;17833:12;;17791:60;;;:::o;17857:158::-;17915:9;17948:61;17966:42;17975:32;18001:5;17975:32;:::i;:::-;17966:42;:::i;:::-;17948:61;:::i;:::-;17935:74;;17857:158;;;:::o;18021:147::-;18116:45;18155:5;18116:45;:::i;:::-;18111:3;18104:58;18021:147;;:::o;18174:807::-;18423:4;18461:3;18450:9;18446:19;18438:27;;18475:71;18543:1;18532:9;18528:17;18519:6;18475:71;:::i;:::-;18556:72;18624:2;18613:9;18609:18;18600:6;18556:72;:::i;:::-;18638:80;18714:2;18703:9;18699:18;18690:6;18638:80;:::i;:::-;18728;18804:2;18793:9;18789:18;18780:6;18728:80;:::i;:::-;18818:73;18886:3;18875:9;18871:19;18862:6;18818:73;:::i;:::-;18901;18969:3;18958:9;18954:19;18945:6;18901:73;:::i;:::-;18174:807;;;;;;;;;:::o;18987:143::-;19044:5;19075:6;19069:13;19060:22;;19091:33;19118:5;19091:33;:::i;:::-;18987:143;;;;:::o;19136:663::-;19224:6;19232;19240;19289:2;19277:9;19268:7;19264:23;19260:32;19257:119;;;19295:79;;:::i;:::-;19257:119;19415:1;19440:64;19496:7;19487:6;19476:9;19472:22;19440:64;:::i;:::-;19430:74;;19386:128;19553:2;19579:64;19635:7;19626:6;19615:9;19611:22;19579:64;:::i;:::-;19569:74;;19524:129;19692:2;19718:64;19774:7;19765:6;19754:9;19750:22;19718:64;:::i;:::-;19708:74;;19663:129;19136:663;;;;;:::o;19805:332::-;19926:4;19964:2;19953:9;19949:18;19941:26;;19977:71;20045:1;20034:9;20030:17;20021:6;19977:71;:::i;:::-;20058:72;20126:2;20115:9;20111:18;20102:6;20058:72;:::i;:::-;19805:332;;;;;:::o;20143:116::-;20213:21;20228:5;20213:21;:::i;:::-;20206:5;20203:32;20193:60;;20249:1;20246;20239:12;20193:60;20143:116;:::o;20265:137::-;20319:5;20350:6;20344:13;20335:22;;20366:30;20390:5;20366:30;:::i;:::-;20265:137;;;;:::o;20408:345::-;20475:6;20524:2;20512:9;20503:7;20499:23;20495:32;20492:119;;;20530:79;;:::i;:::-;20492:119;20650:1;20675:61;20728:7;20719:6;20708:9;20704:22;20675:61;:::i;:::-;20665:71;;20621:125;20408:345;;;;:::o;20759:223::-;20899:34;20895:1;20887:6;20883:14;20876:58;20968:6;20963:2;20955:6;20951:15;20944:31;20759:223;:::o;20988:366::-;21130:3;21151:67;21215:2;21210:3;21151:67;:::i;:::-;21144:74;;21227:93;21316:3;21227:93;:::i;:::-;21345:2;21340:3;21336:12;21329:19;;20988:366;;;:::o;21360:419::-;21526:4;21564:2;21553:9;21549:18;21541:26;;21613:9;21607:4;21603:20;21599:1;21588:9;21584:17;21577:47;21641:131;21767:4;21641:131;:::i;:::-;21633:139;;21360:419;;;:::o;21785:221::-;21925:34;21921:1;21913:6;21909:14;21902:58;21994:4;21989:2;21981:6;21977:15;21970:29;21785:221;:::o;22012:366::-;22154:3;22175:67;22239:2;22234:3;22175:67;:::i;:::-;22168:74;;22251:93;22340:3;22251:93;:::i;:::-;22369:2;22364:3;22360:12;22353:19;;22012:366;;;:::o;22384:419::-;22550:4;22588:2;22577:9;22573:18;22565:26;;22637:9;22631:4;22627:20;22623:1;22612:9;22608:17;22601:47;22665:131;22791:4;22665:131;:::i;:::-;22657:139;;22384:419;;;:::o;22809:224::-;22949:34;22945:1;22937:6;22933:14;22926:58;23018:7;23013:2;23005:6;23001:15;22994:32;22809:224;:::o;23039:366::-;23181:3;23202:67;23266:2;23261:3;23202:67;:::i;:::-;23195:74;;23278:93;23367:3;23278:93;:::i;:::-;23396:2;23391:3;23387:12;23380:19;;23039:366;;;:::o;23411:419::-;23577:4;23615:2;23604:9;23600:18;23592:26;;23664:9;23658:4;23654:20;23650:1;23639:9;23635:17;23628:47;23692:131;23818:4;23692:131;:::i;:::-;23684:139;;23411:419;;;:::o;23836:222::-;23976:34;23972:1;23964:6;23960:14;23953:58;24045:5;24040:2;24032:6;24028:15;24021:30;23836:222;:::o;24064:366::-;24206:3;24227:67;24291:2;24286:3;24227:67;:::i;:::-;24220:74;;24303:93;24392:3;24303:93;:::i;:::-;24421:2;24416:3;24412:12;24405:19;;24064:366;;;:::o;24436:419::-;24602:4;24640:2;24629:9;24625:18;24617:26;;24689:9;24683:4;24679:20;24675:1;24664:9;24660:17;24653:47;24717:131;24843:4;24717:131;:::i;:::-;24709:139;;24436:419;;;:::o;24861:235::-;25001:34;24997:1;24989:6;24985:14;24978:58;25070:18;25065:2;25057:6;25053:15;25046:43;24861:235;:::o;25102:366::-;25244:3;25265:67;25329:2;25324:3;25265:67;:::i;:::-;25258:74;;25341:93;25430:3;25341:93;:::i;:::-;25459:2;25454:3;25450:12;25443:19;;25102:366;;;:::o;25474:419::-;25640:4;25678:2;25667:9;25663:18;25655:26;;25727:9;25721:4;25717:20;25713:1;25702:9;25698:17;25691:47;25755:131;25881:4;25755:131;:::i;:::-;25747:139;;25474:419;;;:::o;25899:176::-;26039:28;26035:1;26027:6;26023:14;26016:52;25899:176;:::o;26081:366::-;26223:3;26244:67;26308:2;26303:3;26244:67;:::i;:::-;26237:74;;26320:93;26409:3;26320:93;:::i;:::-;26438:2;26433:3;26429:12;26422:19;;26081:366;;;:::o;26453:419::-;26619:4;26657:2;26646:9;26642:18;26634:26;;26706:9;26700:4;26696:20;26692:1;26681:9;26677:17;26670:47;26734:131;26860:4;26734:131;:::i;:::-;26726:139;;26453:419;;;:::o;26878:191::-;26918:3;26937:20;26955:1;26937:20;:::i;:::-;26932:25;;26971:20;26989:1;26971:20;:::i;:::-;26966:25;;27014:1;27011;27007:9;27000:16;;27035:3;27032:1;27029:10;27026:36;;;27042:18;;:::i;:::-;27026:36;26878:191;;;;:::o;27075:178::-;27215:30;27211:1;27203:6;27199:14;27192:54;27075:178;:::o;27259:366::-;27401:3;27422:67;27486:2;27481:3;27422:67;:::i;:::-;27415:74;;27498:93;27587:3;27498:93;:::i;:::-;27616:2;27611:3;27607:12;27600:19;;27259:366;;;:::o;27631:419::-;27797:4;27835:2;27824:9;27820:18;27812:26;;27884:9;27878:4;27874:20;27870:1;27859:9;27855:17;27848:47;27912:131;28038:4;27912:131;:::i;:::-;27904:139;;27631:419;;;:::o;28056:194::-;28096:4;28116:20;28134:1;28116:20;:::i;:::-;28111:25;;28150:20;28168:1;28150:20;:::i;:::-;28145:25;;28194:1;28191;28187:9;28179:17;;28218:1;28212:4;28209:11;28206:37;;;28223:18;;:::i;:::-;28206:37;28056:194;;;;:::o;28256:220::-;28396:34;28392:1;28384:6;28380:14;28373:58;28465:3;28460:2;28452:6;28448:15;28441:28;28256:220;:::o;28482:366::-;28624:3;28645:67;28709:2;28704:3;28645:67;:::i;:::-;28638:74;;28721:93;28810:3;28721:93;:::i;:::-;28839:2;28834:3;28830:12;28823:19;;28482:366;;;:::o;28854:419::-;29020:4;29058:2;29047:9;29043:18;29035:26;;29107:9;29101:4;29097:20;29093:1;29082:9;29078:17;29071:47;29135:131;29261:4;29135:131;:::i;:::-;29127:139;;28854:419;;;:::o;29279:221::-;29419:34;29415:1;29407:6;29403:14;29396:58;29488:4;29483:2;29475:6;29471:15;29464:29;29279:221;:::o;29506:366::-;29648:3;29669:67;29733:2;29728:3;29669:67;:::i;:::-;29662:74;;29745:93;29834:3;29745:93;:::i;:::-;29863:2;29858:3;29854:12;29847:19;;29506:366;;;:::o;29878:419::-;30044:4;30082:2;30071:9;30067:18;30059:26;;30131:9;30125:4;30121:20;30117:1;30106:9;30102:17;30095:47;30159:131;30285:4;30159:131;:::i;:::-;30151:139;;29878:419;;;:::o;30303:114::-;30370:6;30404:5;30398:12;30388:22;;30303:114;;;:::o;30423:184::-;30522:11;30556:6;30551:3;30544:19;30596:4;30591:3;30587:14;30572:29;;30423:184;;;;:::o;30613:132::-;30680:4;30703:3;30695:11;;30733:4;30728:3;30724:14;30716:22;;30613:132;;;:::o;30751:108::-;30828:24;30846:5;30828:24;:::i;:::-;30823:3;30816:37;30751:108;;:::o;30865:179::-;30934:10;30955:46;30997:3;30989:6;30955:46;:::i;:::-;31033:4;31028:3;31024:14;31010:28;;30865:179;;;;:::o;31050:113::-;31120:4;31152;31147:3;31143:14;31135:22;;31050:113;;;:::o;31199:732::-;31318:3;31347:54;31395:5;31347:54;:::i;:::-;31417:86;31496:6;31491:3;31417:86;:::i;:::-;31410:93;;31527:56;31577:5;31527:56;:::i;:::-;31606:7;31637:1;31622:284;31647:6;31644:1;31641:13;31622:284;;;31723:6;31717:13;31750:63;31809:3;31794:13;31750:63;:::i;:::-;31743:70;;31836:60;31889:6;31836:60;:::i;:::-;31826:70;;31682:224;31669:1;31666;31662:9;31657:14;;31622:284;;;31626:14;31922:3;31915:10;;31323:608;;;31199:732;;;;:::o;31937:831::-;32200:4;32238:3;32227:9;32223:19;32215:27;;32252:71;32320:1;32309:9;32305:17;32296:6;32252:71;:::i;:::-;32333:80;32409:2;32398:9;32394:18;32385:6;32333:80;:::i;:::-;32460:9;32454:4;32450:20;32445:2;32434:9;32430:18;32423:48;32488:108;32591:4;32582:6;32488:108;:::i;:::-;32480:116;;32606:72;32674:2;32663:9;32659:18;32650:6;32606:72;:::i;:::-;32688:73;32756:3;32745:9;32741:19;32732:6;32688:73;:::i;:::-;31937:831;;;;;;;;:::o;32774:180::-;32822:77;32819:1;32812:88;32919:4;32916:1;32909:15;32943:4;32940:1;32933:15;32960:185;33000:1;33017:20;33035:1;33017:20;:::i;:::-;33012:25;;33051:20;33069:1;33051:20;:::i;:::-;33046:25;;33090:1;33080:35;;33095:18;;:::i;:::-;33080:35;33137:1;33134;33130:9;33125:14;;32960:185;;;;:::o;33151:220::-;33291:34;33287:1;33279:6;33275:14;33268:58;33360:3;33355:2;33347:6;33343:15;33336:28;33151:220;:::o;33377:366::-;33519:3;33540:67;33604:2;33599:3;33540:67;:::i;:::-;33533:74;;33616:93;33705:3;33616:93;:::i;:::-;33734:2;33729:3;33725:12;33718:19;;33377:366;;;:::o;33749:419::-;33915:4;33953:2;33942:9;33938:18;33930:26;;34002:9;33996:4;33992:20;33988:1;33977:9;33973:17;33966:47;34030:131;34156:4;34030:131;:::i;:::-;34022:139;;33749:419;;;:::o;34174:177::-;34314:29;34310:1;34302:6;34298:14;34291:53;34174:177;:::o;34357:366::-;34499:3;34520:67;34584:2;34579:3;34520:67;:::i;:::-;34513:74;;34596:93;34685:3;34596:93;:::i;:::-;34714:2;34709:3;34705:12;34698:19;;34357:366;;;:::o;34729:419::-;34895:4;34933:2;34922:9;34918:18;34910:26;;34982:9;34976:4;34972:20;34968:1;34957:9;34953:17;34946:47;35010:131;35136:4;35010:131;:::i;:::-;35002:139;;34729:419;;;:::o

Swarm Source

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