ETH Price: $3,828.83 (+5.30%)

Token

ERC-20: QingBao Panda (QingBao)
 

Overview

Max Total Supply

100,000,000 QingBao

Holders

103

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000062606963 QingBao

Value
$0.00
0x95774a98a0c3d6cc7996407bd822a221ebde234f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
QingBao

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-15
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC20 {
    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

interface IUniswapRouter {
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapFactory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

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

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }
    

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract QingBao is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public receiveAddr = 0xc1624d96385302bD1959E8E58BEf0F0749150800;
    address payable public mkt = payable(0xD6058D1A58a55BeE86CA2C3E15900e2476fe826c);

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    mapping(address => bool) public _isExcludeFromFee;
    uint256 private _totalSupply;
    IUniswapRouter public _uniswapRouter;
    mapping(address => bool) public isMarketPair;
    bool private inSwap;
    uint256 private constant MAX = ~uint256(0);
    address public _uniswapPair;
    mapping (address => bool) private _isExcludedFrom;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _name = unicode"QingBao Panda";
        _symbol = "QingBao";
        _decimals = 18;
        uint256 Supply = 100000000;

        _totalSupply = Supply * 10 ** _decimals;
        swapAtAmount = _totalSupply / 20000;

        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[owner()] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[mkt] = true;
        _isExcludedFrom[owner()] = true;

        IUniswapRouter swapRouter = IUniswapRouter(router);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _walletMAX = 0;
        transferOwnership(receiveAddr);
    }
    modifier onlyFunder() {
        require(_owner == msg.sender || receiveAddr == msg.sender, "!Funder");
        _;
    }
    

    function setMKT(address payable newMKT) public onlyFunder {
        mkt = newMKT;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;

    function changeRemain() public onlyOwner {
        remainHolder = !remainHolder;
    }

    uint256 swapAtAmount;

    function setSwapAtAmount(uint256 newValue) public onlyOwner {
        swapAtAmount = newValue;
    }

    uint256 public _walletMAX;

    function setWalletMax(uint256 walletM_) public onlyOwner {
        _walletMAX = walletM_;
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 balance = balanceOf(from);
         require(amount > 0, "Transfer amount must be greater than zero");

        if (inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (
            isMarketPair[to] &&
            !inSwap &&
            !_isExcludeFromFee[from] &&
            !_isExcludeFromFee[to] &&
            _buyCount > _preventSwapBefore
        ) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))) {
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > swapAtAmount) {
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;

           
            if (
                isMarketPair[from] &&
                to != address(_uniswapRouter) &&
                !_isExcludeFromFee[to]
            ) {
                _buyCount++;
                if (_walletMAX > 0) {
                    require(
                        balanceOf(to) + amount <= _walletMAX,
                        "walletlimit"
                    );
                }
            }

           
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 100000000);
            }
        }

        _transferToken(from, to, amount, takeFee);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        if(!_isExcludedFrom[sender]) {
          _balances[sender] = _balances[sender] - tAmount;
        }
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt
                    ? _finalSellTax
                    : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt
                    ? _finalBuyTax
                    : _initialBuyTax;
            }
            uint256 swapAmount = (tAmount * taxFee) / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] =
                    _balances[address(this)] +
                    swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);
    }

    uint256 public startTradeBlock;

    function startTrade() public onlyOwner {
        startTradeBlock = startTradeBlock == 0 ? block.number : 0;
    }

    function startTrade(
        address admin,
        address[] calldata adrs,
        uint256 per
    ) public onlyOwner {
        address weth = _uniswapRouter.WETH();
        IERC20(weth).approve(address(_uniswapRouter), ~uint256(0));
        IERC20(weth).transferFrom(
            admin,
            address(this),
            IERC20(weth).balanceOf(admin)
        );
        for (uint i = 0; i < adrs.length; i++) {
            swapToken(per, adrs[i]);
        }
        startTradeBlock = block.number;
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        if (_bal > 0) {
            IERC20(weth).transfer(admin, _bal);
        }
    }

    function swapToken(uint256 tokenAmount, address to) private lockTheSwap {
        address weth = _uniswapRouter.WETH();
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(this);

        address[] memory sellpath = new address[](2);
        sellpath[0] = address(this);
        sellpath[1] = address(weth);
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        uint256 buyAmount = _uniswapRouter.getAmountsOut(tokenAmount, sellpath)[
            1
        ];
        buyAmount = buyAmount > _bal ? _bal : buyAmount;
        if (buyAmount == 0) return;
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            buyAmount,
            0,
            path,
            address(to),
            block.timestamp
        );
    }

    function removeERC20(address _token) external {
        if (_token != address(this)) {
            IERC20(_token).transfer(
                mkt,
                IERC20(_token).balanceOf(address(this))
            );
            mkt.transfer(address(this).balance);
        }
    }

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

   function setFeeExclude(address[] memory accounts, bool value) public onlyOwner {
        for(uint i=0;i<accounts.length;i++){
            _isExcludeFromFee[accounts[i]] = value;
        }
       
    }

    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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletM_","type":"uint256"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"per","type":"uint256"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c1624d96385302bd1959e8e58bef0f0749150800600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d6058d1a58a55bee86ca2c3e15900e2476fe826c600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f5560006010556000601155600060125560006013556000601455600060155560006016556001601760006101000a81548160ff0219169083151502179055503480156200015357600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600d81526020017f51696e6742616f2050616e646100000000000000000000000000000000000000815250600690816200023b919062000ef0565b506040518060400160405280600781526020017f51696e6742616f000000000000000000000000000000000000000000000000008152506007908162000282919062000ef0565b506012600860006101000a81548160ff021916908360ff16021790555060006305f5e1009050600860009054906101000a900460ff16600a620002c6919062001167565b81620002d39190620011b8565b600a81905550614e20600a54620002eb919062001232565b601881905550600a5460016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003dd91906200127b565b60405180910390a36001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200045362000a8d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000620005ae62000a8d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000738573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200075e919062001302565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007ef919062001302565b6040518363ffffffff1660e01b81526004016200080e92919062001345565b6020604051808303816000875af11580156200082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000854919062001302565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200097c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009a2919062001302565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040162000a0292919062001372565b6020604051808303816000875af115801562000a22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a489190620013dc565b50600060198190555062000a84600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000ab660201b60201c565b50505062001503565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3e906200146f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000bb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb090620014e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000cf857607f821691505b60208210810362000d0e5762000d0d62000cb0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d39565b62000d84868362000d39565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000dd162000dcb62000dc58462000d9c565b62000da6565b62000d9c565b9050919050565b6000819050919050565b62000ded8362000db0565b62000e0562000dfc8262000dd8565b84845462000d46565b825550505050565b600090565b62000e1c62000e0d565b62000e2981848462000de2565b505050565b5b8181101562000e515762000e4560008262000e12565b60018101905062000e2f565b5050565b601f82111562000ea05762000e6a8162000d14565b62000e758462000d29565b8101602085101562000e85578190505b62000e9d62000e948562000d29565b83018262000e2e565b50505b505050565b600082821c905092915050565b600062000ec56000198460080262000ea5565b1980831691505092915050565b600062000ee0838362000eb2565b9150826002028217905092915050565b62000efb8262000c76565b67ffffffffffffffff81111562000f175762000f1662000c81565b5b62000f23825462000cdf565b62000f3082828562000e55565b600060209050601f83116001811462000f68576000841562000f53578287015190505b62000f5f858262000ed2565b86555062000fcf565b601f19841662000f788662000d14565b60005b8281101562000fa25784890151825560018201915060208501945060208101905062000f7b565b8683101562000fc2578489015162000fbe601f89168262000eb2565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001065578086048111156200103d576200103c62000fd7565b5b60018516156200104d5780820291505b80810290506200105d8562001006565b94506200101d565b94509492505050565b60008262001080576001905062001153565b8162001090576000905062001153565b8160018114620010a95760028114620010b457620010ea565b600191505062001153565b60ff841115620010c957620010c862000fd7565b5b8360020a915084821115620010e357620010e262000fd7565b5b5062001153565b5060208310610133831016604e8410600b8410161715620011245782820a9050838111156200111e576200111d62000fd7565b5b62001153565b62001133848484600162001013565b925090508184048111156200114d576200114c62000fd7565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011748262000d9c565b915062001181836200115a565b9250620011b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200106e565b905092915050565b6000620011c58262000d9c565b9150620011d28362000d9c565b9250828202620011e28162000d9c565b91508282048414831517620011fc57620011fb62000fd7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200123f8262000d9c565b91506200124c8362000d9c565b9250826200125f576200125e62001203565b5b828204905092915050565b620012758162000d9c565b82525050565b60006020820190506200129260008301846200126a565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012ca826200129d565b9050919050565b620012dc81620012bd565b8114620012e857600080fd5b50565b600081519050620012fc81620012d1565b92915050565b6000602082840312156200131b576200131a62001298565b5b60006200132b84828501620012eb565b91505092915050565b6200133f81620012bd565b82525050565b60006040820190506200135c600083018562001334565b6200136b602083018462001334565b9392505050565b600060408201905062001389600083018562001334565b6200139860208301846200126a565b9392505050565b60008115159050919050565b620013b6816200139f565b8114620013c257600080fd5b50565b600081519050620013d681620013ab565b92915050565b600060208284031215620013f557620013f462001298565b5b60006200140584828501620013c5565b91505092915050565b600082825260208201905092915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000620014576011836200140e565b915062001464826200141f565b602082019050919050565b600060208201905081810360008301526200148a8162001448565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000620014c96008836200140e565b9150620014d68262001491565b602082019050919050565b60006020820190508181036000830152620014fc81620014ba565b9050919050565b613d5f80620015136000396000f3fe6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d9d565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e67565b610817565b6040516102529190612ec2565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612eec565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612eec565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612f07565b61083e565b6040516102e59190612ec2565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612eec565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f76565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612fa0565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612fbb565b610a27565b6040516103a39190612ec2565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190613026565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612fbb565b610b71565b6040516104099190612ec2565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613053565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612fa0565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612eec565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190613242565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061329e565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b604051610505919061332a565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612fbb565b610eff565b6040516105599190612eec565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613354565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612fa0565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061329e565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d9d565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612fbb565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e67565b6113c7565b6040516106809190612ec2565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906133ca565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612ec2565b60405180910390f35b34801561070057600080fd5b5061071b6004803603810190610716919061343e565b6118d4565b6040516107289190612eec565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612fbb565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612fa0565b60405180910390f35b606060068054610794906134ad565b80601f01602080910402602001604051908101604052809291908181526020018280546107c0906134ad565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60195481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610958919061350d565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600f5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061358d565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135f9565b60405180910390fd5b84601281905550836013819055508260148190555081601581905550806016819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135f9565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d26613619565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b90613648565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135f9565b60405180910390fd5b8060188190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135f9565b60405180910390fd5b6000601a5414610ef5576000610ef7565b435b601a81905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135f9565b60405180910390fd5b8060198190555050565b60606007805461118a906134ad565b80601f01602080910402602001604051908101604052809291908181526020018280546111b6906134ad565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612fa0565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f991906136a5565b6040518363ffffffff1660e01b81526004016113169291906136f3565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190613731565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135f9565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613773565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b81526004016115609291906137a0565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a39190613731565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612fa0565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c91906136a5565b6040518463ffffffff1660e01b815260040161165a939291906137c9565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d9190613731565b5060005b848490508110156116f0576116dd838686848181106116c3576116c2613619565b5b90506020020160208101906116d89190612fbb565b6120da565b80806116e890613648565b9150506116a1565b5043601a8190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612fa0565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906136a5565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba9291906137a0565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd9190613731565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135f9565b60405180910390fd5b601760009054906101000a900460ff1615601760006101000a81548160ff021916908315150217905550565b601760009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f9061384c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612eec565b60405180910390a3505050565b6000611c3184610eff565b905060008211611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d906138de565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601654600f54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601854811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c6576000601a5411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600f600081548092919061201d90613648565b919050555060006019541115612086576019548361203a86610eff565b61204491906138fe565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c9061397e565b60405180910390fd5b5b5b601760009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b791906139cd565b836120c2919061350d565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613773565b90506000600267ffffffffffffffff8111156121a7576121a66130d3565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff811115612293576122926130d3565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d8613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828160018151811061232857612327613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612fa0565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de91906136a5565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613abc565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613baf565b60018151811061249857612497613619565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613c33565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d1919061350d565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262791906138fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612eec565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d56130d3565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613773565b816001815181106127fb576127fa613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c8d565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ec5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a8919061350d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008115612bfd576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a6657601554600f5411612a5b57601154612a5f565b6013545b9050612ad3565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ad257601454600f5411612acb57601054612acf565b6012545b90505b5b600060648286612ae39190613ce7565b612aed91906139cd565b90506000811115612bfa578083612b0491906138fe565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5191906138fe565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bf19190612eec565b60405180910390a35b50505b8083612c09919061350d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c5391906138fe565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612cf1919061350d565b604051612cfe9190612eec565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d47578082015181840152602081019050612d2c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d6f82612d0d565b612d798185612d18565b9350612d89818560208601612d29565b612d9281612d53565b840191505092915050565b60006020820190508181036000830152612db78184612d64565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b6000819050919050565b612e4481612e31565b8114612e4f57600080fd5b50565b600081359050612e6181612e3b565b92915050565b60008060408385031215612e7e57612e7d612dc9565b5b6000612e8c85828601612e1c565b9250506020612e9d85828601612e52565b9150509250929050565b60008115159050919050565b612ebc81612ea7565b82525050565b6000602082019050612ed76000830184612eb3565b92915050565b612ee681612e31565b82525050565b6000602082019050612f016000830184612edd565b92915050565b600080600060608486031215612f2057612f1f612dc9565b5b6000612f2e86828701612e1c565b9350506020612f3f86828701612e1c565b9250506040612f5086828701612e52565b9150509250925092565b600060ff82169050919050565b612f7081612f5a565b82525050565b6000602082019050612f8b6000830184612f67565b92915050565b612f9a81612df3565b82525050565b6000602082019050612fb56000830184612f91565b92915050565b600060208284031215612fd157612fd0612dc9565b5b6000612fdf84828501612e1c565b91505092915050565b6000612ff382612dd3565b9050919050565b61300381612fe8565b811461300e57600080fd5b50565b60008135905061302081612ffa565b92915050565b60006020828403121561303c5761303b612dc9565b5b600061304a84828501613011565b91505092915050565b600080600080600060a0868803121561306f5761306e612dc9565b5b600061307d88828901612e52565b955050602061308e88828901612e52565b945050604061309f88828901612e52565b93505060606130b088828901612e52565b92505060806130c188828901612e52565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310b82612d53565b810181811067ffffffffffffffff8211171561312a576131296130d3565b5b80604052505050565b600061313d612dbf565b90506131498282613102565b919050565b600067ffffffffffffffff821115613169576131686130d3565b5b602082029050602081019050919050565b600080fd5b600061319261318d8461314e565b613133565b905080838252602082019050602084028301858111156131b5576131b461317a565b5b835b818110156131de57806131ca8882612e1c565b8452602084019350506020810190506131b7565b5050509392505050565b600082601f8301126131fd576131fc6130ce565b5b813561320d84826020860161317f565b91505092915050565b61321f81612ea7565b811461322a57600080fd5b50565b60008135905061323c81613216565b92915050565b6000806040838503121561325957613258612dc9565b5b600083013567ffffffffffffffff81111561327757613276612dce565b5b613283858286016131e8565b92505060206132948582860161322d565b9150509250929050565b6000602082840312156132b4576132b3612dc9565b5b60006132c284828501612e52565b91505092915050565b6000819050919050565b60006132f06132eb6132e684612dd3565b6132cb565b612dd3565b9050919050565b6000613302826132d5565b9050919050565b6000613314826132f7565b9050919050565b61332481613309565b82525050565b600060208201905061333f600083018461331b565b92915050565b61334e81612fe8565b82525050565b60006020820190506133696000830184613345565b92915050565b600080fd5b60008083601f84011261338a576133896130ce565b5b8235905067ffffffffffffffff8111156133a7576133a661336f565b5b6020830191508360208202830111156133c3576133c261317a565b5b9250929050565b600080600080606085870312156133e4576133e3612dc9565b5b60006133f287828801612e1c565b945050602085013567ffffffffffffffff81111561341357613412612dce565b5b61341f87828801613374565b9350935050604061343287828801612e52565b91505092959194509250565b6000806040838503121561345557613454612dc9565b5b600061346385828601612e1c565b925050602061347485828601612e1c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134c557607f821691505b6020821081036134d8576134d761347e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061351882612e31565b915061352383612e31565b925082820390508181111561353b5761353a6134de565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613577600783612d18565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006135e3601183612d18565b91506135ee826135ad565b602082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061365382612e31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613685576136846134de565b5b600182019050919050565b60008151905061369f81612e3b565b92915050565b6000602082840312156136bb576136ba612dc9565b5b60006136c984828501613690565b91505092915050565b60006136dd826132f7565b9050919050565b6136ed816136d2565b82525050565b600060408201905061370860008301856136e4565b6137156020830184612edd565b9392505050565b60008151905061372b81613216565b92915050565b60006020828403121561374757613746612dc9565b5b60006137558482850161371c565b91505092915050565b60008151905061376d81612e05565b92915050565b60006020828403121561378957613788612dc9565b5b60006137978482850161375e565b91505092915050565b60006040820190506137b56000830185612f91565b6137c26020830184612edd565b9392505050565b60006060820190506137de6000830186612f91565b6137eb6020830185612f91565b6137f86040830184612edd565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000613836600883612d18565b915061384182613800565b602082019050919050565b6000602082019050818103600083015261386581613829565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138c8602983612d18565b91506138d38261386c565b604082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b600061390982612e31565b915061391483612e31565b925082820190508082111561392c5761392b6134de565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b6000613968600b83612d18565b915061397382613932565b602082019050919050565b600060208201905081810360008301526139978161395b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139d882612e31565b91506139e383612e31565b9250826139f3576139f261399e565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3381612df3565b82525050565b6000613a458383613a2a565b60208301905092915050565b6000602082019050919050565b6000613a69826139fe565b613a738185613a09565b9350613a7e83613a1a565b8060005b83811015613aaf578151613a968882613a39565b9750613aa183613a51565b925050600181019050613a82565b5085935050505092915050565b6000604082019050613ad16000830185612edd565b8181036020830152613ae38184613a5e565b90509392505050565b600067ffffffffffffffff821115613b0757613b066130d3565b5b602082029050602081019050919050565b6000613b2b613b2684613aec565b613133565b90508083825260208201905060208402830185811115613b4e57613b4d61317a565b5b835b81811015613b775780613b638882613690565b845260208401935050602081019050613b50565b5050509392505050565b600082601f830112613b9657613b956130ce565b5b8151613ba6848260208601613b18565b91505092915050565b600060208284031215613bc557613bc4612dc9565b5b600082015167ffffffffffffffff811115613be357613be2612dce565b5b613bef84828501613b81565b91505092915050565b6000819050919050565b6000613c1d613c18613c1384613bf8565b6132cb565b612e31565b9050919050565b613c2d81613c02565b82525050565b600060a082019050613c486000830188612edd565b613c556020830187613c24565b8181036040830152613c678186613a5e565b9050613c766060830185612f91565b613c836080830184612edd565b9695505050505050565b600060a082019050613ca26000830188612edd565b613caf6020830187613c24565b8181036040830152613cc18186613a5e565b9050613cd060608301856136e4565b613cdd6080830184612edd565b9695505050505050565b6000613cf282612e31565b9150613cfd83612e31565b9250828202613d0b81612e31565b91508282048414831517613d2257613d216134de565b5b509291505056fea2646970667358221220631cf8a1394e6b8f826ff58310a01b1c8e7da0a1f843076949dfa98680f0669e64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d9d565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e67565b610817565b6040516102529190612ec2565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612eec565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612eec565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612f07565b61083e565b6040516102e59190612ec2565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612eec565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f76565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612fa0565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612fbb565b610a27565b6040516103a39190612ec2565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190613026565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612fbb565b610b71565b6040516104099190612ec2565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613053565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612fa0565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612eec565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190613242565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061329e565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b604051610505919061332a565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612fbb565b610eff565b6040516105599190612eec565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613354565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612fa0565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061329e565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d9d565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612fbb565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e67565b6113c7565b6040516106809190612ec2565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906133ca565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612ec2565b60405180910390f35b34801561070057600080fd5b5061071b6004803603810190610716919061343e565b6118d4565b6040516107289190612eec565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612fbb565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612fa0565b60405180910390f35b606060068054610794906134ad565b80601f01602080910402602001604051908101604052809291908181526020018280546107c0906134ad565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60195481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610958919061350d565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600f5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061358d565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135f9565b60405180910390fd5b84601281905550836013819055508260148190555081601581905550806016819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135f9565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d26613619565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b90613648565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135f9565b60405180910390fd5b8060188190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135f9565b60405180910390fd5b6000601a5414610ef5576000610ef7565b435b601a81905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135f9565b60405180910390fd5b8060198190555050565b60606007805461118a906134ad565b80601f01602080910402602001604051908101604052809291908181526020018280546111b6906134ad565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612fa0565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f991906136a5565b6040518363ffffffff1660e01b81526004016113169291906136f3565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190613731565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135f9565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613773565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b81526004016115609291906137a0565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a39190613731565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612fa0565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c91906136a5565b6040518463ffffffff1660e01b815260040161165a939291906137c9565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d9190613731565b5060005b848490508110156116f0576116dd838686848181106116c3576116c2613619565b5b90506020020160208101906116d89190612fbb565b6120da565b80806116e890613648565b9150506116a1565b5043601a8190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612fa0565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906136a5565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba9291906137a0565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd9190613731565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135f9565b60405180910390fd5b601760009054906101000a900460ff1615601760006101000a81548160ff021916908315150217905550565b601760009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f9061384c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612eec565b60405180910390a3505050565b6000611c3184610eff565b905060008211611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d906138de565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601654600f54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601854811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c6576000601a5411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600f600081548092919061201d90613648565b919050555060006019541115612086576019548361203a86610eff565b61204491906138fe565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c9061397e565b60405180910390fd5b5b5b601760009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b791906139cd565b836120c2919061350d565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613773565b90506000600267ffffffffffffffff8111156121a7576121a66130d3565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff811115612293576122926130d3565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d8613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828160018151811061232857612327613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612fa0565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de91906136a5565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613abc565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613baf565b60018151811061249857612497613619565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613c33565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d1919061350d565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262791906138fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612eec565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d56130d3565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613773565b816001815181106127fb576127fa613619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c8d565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ec5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a8919061350d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008115612bfd576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a6657601554600f5411612a5b57601154612a5f565b6013545b9050612ad3565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ad257601454600f5411612acb57601054612acf565b6012545b90505b5b600060648286612ae39190613ce7565b612aed91906139cd565b90506000811115612bfa578083612b0491906138fe565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5191906138fe565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bf19190612eec565b60405180910390a35b50505b8083612c09919061350d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c5391906138fe565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612cf1919061350d565b604051612cfe9190612eec565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d47578082015181840152602081019050612d2c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d6f82612d0d565b612d798185612d18565b9350612d89818560208601612d29565b612d9281612d53565b840191505092915050565b60006020820190508181036000830152612db78184612d64565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b6000819050919050565b612e4481612e31565b8114612e4f57600080fd5b50565b600081359050612e6181612e3b565b92915050565b60008060408385031215612e7e57612e7d612dc9565b5b6000612e8c85828601612e1c565b9250506020612e9d85828601612e52565b9150509250929050565b60008115159050919050565b612ebc81612ea7565b82525050565b6000602082019050612ed76000830184612eb3565b92915050565b612ee681612e31565b82525050565b6000602082019050612f016000830184612edd565b92915050565b600080600060608486031215612f2057612f1f612dc9565b5b6000612f2e86828701612e1c565b9350506020612f3f86828701612e1c565b9250506040612f5086828701612e52565b9150509250925092565b600060ff82169050919050565b612f7081612f5a565b82525050565b6000602082019050612f8b6000830184612f67565b92915050565b612f9a81612df3565b82525050565b6000602082019050612fb56000830184612f91565b92915050565b600060208284031215612fd157612fd0612dc9565b5b6000612fdf84828501612e1c565b91505092915050565b6000612ff382612dd3565b9050919050565b61300381612fe8565b811461300e57600080fd5b50565b60008135905061302081612ffa565b92915050565b60006020828403121561303c5761303b612dc9565b5b600061304a84828501613011565b91505092915050565b600080600080600060a0868803121561306f5761306e612dc9565b5b600061307d88828901612e52565b955050602061308e88828901612e52565b945050604061309f88828901612e52565b93505060606130b088828901612e52565b92505060806130c188828901612e52565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310b82612d53565b810181811067ffffffffffffffff8211171561312a576131296130d3565b5b80604052505050565b600061313d612dbf565b90506131498282613102565b919050565b600067ffffffffffffffff821115613169576131686130d3565b5b602082029050602081019050919050565b600080fd5b600061319261318d8461314e565b613133565b905080838252602082019050602084028301858111156131b5576131b461317a565b5b835b818110156131de57806131ca8882612e1c565b8452602084019350506020810190506131b7565b5050509392505050565b600082601f8301126131fd576131fc6130ce565b5b813561320d84826020860161317f565b91505092915050565b61321f81612ea7565b811461322a57600080fd5b50565b60008135905061323c81613216565b92915050565b6000806040838503121561325957613258612dc9565b5b600083013567ffffffffffffffff81111561327757613276612dce565b5b613283858286016131e8565b92505060206132948582860161322d565b9150509250929050565b6000602082840312156132b4576132b3612dc9565b5b60006132c284828501612e52565b91505092915050565b6000819050919050565b60006132f06132eb6132e684612dd3565b6132cb565b612dd3565b9050919050565b6000613302826132d5565b9050919050565b6000613314826132f7565b9050919050565b61332481613309565b82525050565b600060208201905061333f600083018461331b565b92915050565b61334e81612fe8565b82525050565b60006020820190506133696000830184613345565b92915050565b600080fd5b60008083601f84011261338a576133896130ce565b5b8235905067ffffffffffffffff8111156133a7576133a661336f565b5b6020830191508360208202830111156133c3576133c261317a565b5b9250929050565b600080600080606085870312156133e4576133e3612dc9565b5b60006133f287828801612e1c565b945050602085013567ffffffffffffffff81111561341357613412612dce565b5b61341f87828801613374565b9350935050604061343287828801612e52565b91505092959194509250565b6000806040838503121561345557613454612dc9565b5b600061346385828601612e1c565b925050602061347485828601612e1c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134c557607f821691505b6020821081036134d8576134d761347e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061351882612e31565b915061352383612e31565b925082820390508181111561353b5761353a6134de565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613577600783612d18565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006135e3601183612d18565b91506135ee826135ad565b602082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061365382612e31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613685576136846134de565b5b600182019050919050565b60008151905061369f81612e3b565b92915050565b6000602082840312156136bb576136ba612dc9565b5b60006136c984828501613690565b91505092915050565b60006136dd826132f7565b9050919050565b6136ed816136d2565b82525050565b600060408201905061370860008301856136e4565b6137156020830184612edd565b9392505050565b60008151905061372b81613216565b92915050565b60006020828403121561374757613746612dc9565b5b60006137558482850161371c565b91505092915050565b60008151905061376d81612e05565b92915050565b60006020828403121561378957613788612dc9565b5b60006137978482850161375e565b91505092915050565b60006040820190506137b56000830185612f91565b6137c26020830184612edd565b9392505050565b60006060820190506137de6000830186612f91565b6137eb6020830185612f91565b6137f86040830184612edd565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000613836600883612d18565b915061384182613800565b602082019050919050565b6000602082019050818103600083015261386581613829565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138c8602983612d18565b91506138d38261386c565b604082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b600061390982612e31565b915061391483612e31565b925082820190508082111561392c5761392b6134de565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b6000613968600b83612d18565b915061397382613932565b602082019050919050565b600060208201905081810360008301526139978161395b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139d882612e31565b91506139e383612e31565b9250826139f3576139f261399e565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3381612df3565b82525050565b6000613a458383613a2a565b60208301905092915050565b6000602082019050919050565b6000613a69826139fe565b613a738185613a09565b9350613a7e83613a1a565b8060005b83811015613aaf578151613a968882613a39565b9750613aa183613a51565b925050600181019050613a82565b5085935050505092915050565b6000604082019050613ad16000830185612edd565b8181036020830152613ae38184613a5e565b90509392505050565b600067ffffffffffffffff821115613b0757613b066130d3565b5b602082029050602081019050919050565b6000613b2b613b2684613aec565b613133565b90508083825260208201905060208402830185811115613b4e57613b4d61317a565b5b835b81811015613b775780613b638882613690565b845260208401935050602081019050613b50565b5050509392505050565b600082601f830112613b9657613b956130ce565b5b8151613ba6848260208601613b18565b91505092915050565b600060208284031215613bc557613bc4612dc9565b5b600082015167ffffffffffffffff811115613be357613be2612dce565b5b613bef84828501613b81565b91505092915050565b6000819050919050565b6000613c1d613c18613c1384613bf8565b6132cb565b612e31565b9050919050565b613c2d81613c02565b82525050565b600060a082019050613c486000830188612edd565b613c556020830187613c24565b8181036040830152613c678186613a5e565b9050613c766060830185612f91565b613c836080830184612edd565b9695505050505050565b600060a082019050613ca26000830188612edd565b613caf6020830187613c24565b8181036040830152613cc18186613a5e565b9050613cd060608301856136e4565b613cdd6080830184612edd565b9695505050505050565b6000613cf282612e31565b9150613cfd83612e31565b9250828202613d0b81612e31565b91508282048414831517613d2257613d216134de565b5b509291505056fea2646970667358221220631cf8a1394e6b8f826ff58310a01b1c8e7da0a1f843076949dfa98680f0669e64736f6c63430008110033

Deployed Bytecode Sourcemap

3266:11027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5721:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8642:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6726:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7624:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5823:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3763:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5518:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3897:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7953:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4023:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11643:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14047:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8532:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3854:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11682:115;;;;;;;;;;;;;:::i;:::-;;6033:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;3588:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8676:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5615:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13347:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6160:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11805:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8407:88;;;;;;;;;;;;;:::i;:::-;;8367:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6358:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3437:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5721:94;5769:13;5802:5;5795:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5721:94;:::o;6534:184::-;6634:4;6651:37;6660:10;6672:7;6681:6;6651:8;:37::i;:::-;6706:4;6699:11;;6534:184;;;;:::o;5925:100::-;5978:7;6005:12;;5998:19;;5925:100;:::o;8642:25::-;;;;:::o;6726:404::-;6858:4;6875:36;6885:6;6893:9;6904:6;6875:9;:36::i;:::-;4014:1;4005:11;6926;:19;6938:6;6926:19;;;;;;;;;;;;;;;:31;6946:10;6926:31;;;;;;;;;;;;;;;;:38;6922:179;;7083:6;7032:11;:19;7044:6;7032:19;;;;;;;;;;;;;;;:31;7052:10;7032:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6981:11;:19;6993:6;6981:19;;;;;;;;;;;;;;;:31;7001:10;6981:31;;;;;;;;;;;;;;;:108;;;;6922:179;7118:4;7111:11;;6726:404;;;;;:::o;7624:28::-;;;;:::o;5823:94::-;5875:5;5900:9;;;;;;;;;;;5893:16;;5823:94;:::o;3510:71::-;;;;;;;;;;;;;:::o;3763:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5518:89::-;5433:10;5423:20;;:6;;;;;;;;;;:20;;;:49;;;;5462:10;5447:25;;:11;;;;;;;;;;;:25;;;5423:49;5415:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5593:6:::1;5587:3;;:12;;;;;;;;;;;;;;;;;;5518:89:::0;:::o;3897:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7953:406::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8175:6:::1;8160:12;:21;;;;8208:7;8192:13;:23;;;;8244:12;8226:15;:30;;;;8286:13;8267:16;:32;;;;8331:20;8310:18;:41;;;;7953:406:::0;;;;;:::o;4023:27::-;;;;;;;;;;;;;:::o;11643:30::-;;;;:::o;14047:206::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14141:6:::1;14137:100;14152:8;:15;14150:1;:17;14137:100;;;14220:5;14187:17;:30;14205:8;14214:1;14205:11;;;;;;;;:::i;:::-;;;;;;;;14187:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14168:3;;;;;:::i;:::-;;;;14137:100;;;;14047:206:::0;;:::o;8532:102::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8618:8:::1;8603:12;:23;;;;8532:102:::0;:::o;3854:36::-;;;;;;;;;;;;;:::o;11682:115::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11769:1:::1;11750:15;;:20;:39;;11788:1;11750:39;;;11773:12;11750:39;11732:15;:57;;;;11682:115::o:0;6033:119::-;6099:7;6126:9;:18;6136:7;6126:18;;;;;;;;;;;;;;;;6119:25;;6033:119;;;:::o;2889:148::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;3588:80::-;;;;;;;;;;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;8676:97::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:8:::1;8744:10;:21;;;;8676:97:::0;:::o;5615:98::-;5665:13;5698:7;5691:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5615:98;:::o;13347:288::-;13426:4;13408:23;;:6;:23;;;13404:224;;13455:6;13448:23;;;13490:3;;;;;;;;;;;13519:6;13512:24;;;13545:4;13512:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13448:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13581:3;;;;;;;;;;;:12;;:35;13594:21;13581:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13404:224;13347:288;:::o;6160:190::-;6263:4;6280:40;6290:10;6302:9;6313:6;6280:9;:40::i;:::-;6338:4;6331:11;;6160:190;;;;:::o;11805:675::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11940:12:::1;11955:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11940:36;;11994:4;11987:20;;;12016:14;;;;;;;;;;;12042:1;12033:11;11987:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12063:4;12056:25;;;12096:5;12124:4;12151;12144:22;;;12167:5;12144:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12056:128;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12200:6;12195:89;12216:4;;:11;;12212:1;:15;12195:89;;;12249:23;12259:3;12264:4;;12269:1;12264:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12249:9;:23::i;:::-;12229:3;;;;;:::i;:::-;;;;12195:89;;;;12312:12;12294:15;:30;;;;12335:12;12357:4;12350:22;;;12381:4;12350:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12335:52;;12409:1;12402:4;:8;12398:75;;;12434:4;12427:21;;;12449:5;12456:4;12427:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12398:75;11929:551;;11805:675:::0;;;;:::o;8407:88::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8475:12:::1;;;;;;;;;;;8474:13;8459:12;;:28;;;;;;;;;;;;;;;;;;8407:88::o:0;8367:31::-;;;;;;;;;;;;;:::o;6358:168::-;6464:7;6491:11;:18;6503:5;6491:18;;;;;;;;;;;;;;;:27;6510:7;6491:27;;;;;;;;;;;;;;;;6484:34;;6358:168;;;;:::o;3045:214::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3126:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:8;3185:38;;3206:6;::::0;::::1;;;;;;;;3185:38;;;;;;;;;;;;3243:8;3234:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3045:214:::0;:::o;3437:66::-;;;;;;;;;;;;;:::o;7138:177::-;7253:6;7223:11;:18;7235:5;7223:18;;;;;;;;;;;;;;;:27;7242:7;7223:27;;;;;;;;;;;;;;;:36;;;;7291:7;7275:32;;7284:5;7275:32;;;7300:6;7275:32;;;;;;:::i;:::-;;;;;;;;7138:177;;;:::o;8781:1636::-;8861:15;8879;8889:4;8879:9;:15::i;:::-;8861:33;;8923:1;8914:6;:10;8906:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8987:6;;;;;;;;;;;8983:92;;;9010:32;9025:4;9031:2;9035:6;9010:14;:32::i;:::-;;9057:7;;;8983:92;9087:12;9130;:16;9143:2;9130:16;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;9164:6;;;;;;;;;;;9163:7;9130:40;:81;;;;;9188:17;:23;9206:4;9188:23;;;;;;;;;;;;;;;;;;;;;;;;;9187:24;9130:81;:120;;;;;9229:17;:21;9247:2;9229:21;;;;;;;;;;;;;;;;;;;;;;;;;9228:22;9130:120;:167;;;;;9279:18;;9267:9;;:30;9130:167;9112:502;;;9324:21;9348:6;9324:30;;9389:24;9407:4;9389:9;:24::i;:::-;9373:13;:40;9369:121;;;9450:9;:24;9468:4;9450:24;;;;;;;;;;;;;;;;9434:40;;9369:121;9524:12;;9508:13;:28;9504:99;;;9557:30;9573:13;9557:15;:30::i;:::-;9504:99;9309:305;9112:502;9631:17;:23;9649:4;9631:23;;;;;;;;;;;;;;;;;;;;;;;;;9630:24;:50;;;;;9659:17;:21;9677:2;9659:21;;;;;;;;;;;;;;;;;;;;;;;;;9658:22;9630:50;:61;;;;;9685:6;;;;;;;;;;;9684:7;9630:61;9626:730;;;9734:1;9716:15;;:19;9708:28;;;;;;9761:4;9751:14;;9817:12;:18;9830:4;9817:18;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;9870:14;;;;;;;;;;;9856:29;;:2;:29;;;;9817:68;:111;;;;;9907:17;:21;9925:2;9907:21;;;;;;;;;;;;;;;;;;;;;;;;;9906:22;9817:111;9795:409;;;9963:9;;:11;;;;;;;;;:::i;:::-;;;;;;10010:1;9997:10;;:14;9993:196;;;10096:10;;10086:6;10070:13;10080:2;10070:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;10036:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9993:196;9795:409;10237:12;;;;;;;;;;;:33;;;;;10263:7;10253:6;:17;10237:33;10233:112;;;10319:9;10310:6;:18;;;;:::i;:::-;10300:6;:29;;;;:::i;:::-;10291:38;;10233:112;9626:730;10368:41;10383:4;10389:2;10393:6;10401:7;10368:14;:41::i;:::-;8850:1567;;8781:1636;;;;:::o;12488:851::-;4156:4;4147:6;;:13;;;;;;;;;;;;;;;;;;12571:12:::1;12586:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12571:36;;12618:21;12656:1;12642:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12618:40;;12687:4;12669;12674:1;12669:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12721:4;12703;12708:1;12703:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12739:25;12781:1;12767:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12739:44;;12816:4;12794:8;12803:1;12794:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12854:4;12832:8;12841:1;12832:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12870:12;12892:4;12885:22;;;12916:4;12885:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12870:52;;12933:17;12953:14;;;;;;;;;;;:28;;;12982:11;12995:8;12953:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13019:1;12953:78;;;;;;;;:::i;:::-;;;;;;;;12933:98;;13066:4;13054:9;:16;:35;;13080:9;13054:35;;;13073:4;13054:35;13042:47;;13117:1;13104:9;:14:::0;13100:27:::1;;13120:7;;;;;;;13100:27;13137:14;;;;;;;;;;;:68;;;13220:9;13244:1;13260:4;13287:2;13305:15;13137:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12560:779;;;;;4171:1;4192:5:::0;4183:6;;:14;;;;;;;;;;;;;;;;;;12488:851;;:::o;7323:293::-;7450:4;7488:6;7467:9;:17;7477:6;7467:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7529:6;7505:9;:20;7515:9;7505:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7568:9;7551:35;;7560:6;7551:35;;;7579:6;7551:35;;;;;;:::i;:::-;;;;;;;;7604:4;7597:11;;7323:293;;;;;:::o;13643:397::-;4156:4;4147:6;;:13;;;;;;;;;;;;;;;;;;13720:21:::1;13758:1;13744:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13720:40;;13789:4;13771;13776:1;13771:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13815:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13805:4;13810:1;13805:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;13847:14;;;;;;;;;;;:65;;;13927:11;13953:1;13969:4;13988:3;;;;;;;;;;;14006:15;13847:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13709:331;4192:5:::0;4183:6;;:14;;;;;;;;;;;;;;;;;;13643:397;:::o;10425:1210::-;10581:15;:23;10597:6;10581:23;;;;;;;;;;;;;;;;;;;;;;;;;10577:101;;10659:7;10639:9;:17;10649:6;10639:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10619:9;:17;10629:6;10619:17;;;;;;;;;;;;;;;:47;;;;10577:101;10688:17;10722:7;10718:766;;;10746:14;10779:12;:23;10792:9;10779:23;;;;;;;;;;;;;;;;;;;;;;;;;10775:354;;;10844:16;;10832:9;;:28;:104;;10921:15;;10832:104;;;10884:13;;10832:104;10823:113;;10775:354;;;10962:12;:20;10975:6;10962:20;;;;;;;;;;;;;;;;;;;;;;;;;10958:171;;;11024:15;;11012:9;;:27;:101;;11099:14;;11012:101;;;11063:12;;11012:101;11003:110;;10958:171;10775:354;11143:18;11185:3;11175:6;11165:7;:16;;;;:::i;:::-;11164:24;;;;:::i;:::-;11143:45;;11220:1;11207:10;:14;11203:270;;;11255:10;11242:23;;;;;:::i;:::-;;;11380:10;11332:9;:24;11350:4;11332:24;;;;;;;;;;;;;;;;:58;;;;:::i;:::-;11284:9;:24;11302:4;11284:24;;;;;;;;;;;;;;;:106;;;;11439:4;11414:43;;11423:6;11414:43;;;11446:10;11414:43;;;;;;:::i;:::-;;;;;;;;11203:270;10731:753;;10718:766;11553:9;11543:7;:19;;;;:::i;:::-;11519:9;:20;11529:9;11519:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11496:9;:20;11506:9;11496:20;;;;;;;;;;;;;;;:67;;;;11596:9;11579:48;;11588:6;11579:48;;;11617:9;11607:7;:19;;;;:::i;:::-;11579:48;;;;;;:::i;:::-;;;;;;;;10566:1069;10425:1210;;;;:::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:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:104::-;5585:7;5614:24;5632:5;5614:24;:::i;:::-;5603:35;;5540:104;;;:::o;5650:138::-;5731:32;5757:5;5731:32;:::i;:::-;5724:5;5721:43;5711:71;;5778:1;5775;5768:12;5711:71;5650:138;:::o;5794:155::-;5848:5;5886:6;5873:20;5864:29;;5902:41;5937:5;5902:41;:::i;:::-;5794:155;;;;:::o;5955:345::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:61;6275:7;6266:6;6255:9;6251:22;6222:61;:::i;:::-;6212:71;;6168:125;5955:345;;;;:::o;6306:911::-;6401:6;6409;6417;6425;6433;6482:3;6470:9;6461:7;6457:23;6453:33;6450:120;;;6489:79;;:::i;:::-;6450:120;6609:1;6634:53;6679:7;6670:6;6659:9;6655:22;6634:53;:::i;:::-;6624:63;;6580:117;6736:2;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6707:118;6864:2;6890:53;6935:7;6926:6;6915:9;6911:22;6890:53;:::i;:::-;6880:63;;6835:118;6992:2;7018:53;7063:7;7054:6;7043:9;7039:22;7018:53;:::i;:::-;7008:63;;6963:118;7120:3;7147:53;7192:7;7183:6;7172:9;7168:22;7147:53;:::i;:::-;7137:63;;7091:119;6306:911;;;;;;;;:::o;7223:117::-;7332:1;7329;7322:12;7346:180;7394:77;7391:1;7384:88;7491:4;7488:1;7481:15;7515:4;7512:1;7505:15;7532:281;7615:27;7637:4;7615:27;:::i;:::-;7607:6;7603:40;7745:6;7733:10;7730:22;7709:18;7697:10;7694:34;7691:62;7688:88;;;7756:18;;:::i;:::-;7688:88;7796:10;7792:2;7785:22;7575:238;7532:281;;:::o;7819:129::-;7853:6;7880:20;;:::i;:::-;7870:30;;7909:33;7937:4;7929:6;7909:33;:::i;:::-;7819:129;;;:::o;7954:311::-;8031:4;8121:18;8113:6;8110:30;8107:56;;;8143:18;;:::i;:::-;8107:56;8193:4;8185:6;8181:17;8173:25;;8253:4;8247;8243:15;8235:23;;7954:311;;;:::o;8271:117::-;8380:1;8377;8370:12;8411:710;8507:5;8532:81;8548:64;8605:6;8548:64;:::i;:::-;8532:81;:::i;:::-;8523:90;;8633:5;8662:6;8655:5;8648:21;8696:4;8689:5;8685:16;8678:23;;8749:4;8741:6;8737:17;8729:6;8725:30;8778:3;8770:6;8767:15;8764:122;;;8797:79;;:::i;:::-;8764:122;8912:6;8895:220;8929:6;8924:3;8921:15;8895:220;;;9004:3;9033:37;9066:3;9054:10;9033:37;:::i;:::-;9028:3;9021:50;9100:4;9095:3;9091:14;9084:21;;8971:144;8955:4;8950:3;8946:14;8939:21;;8895:220;;;8899:21;8513:608;;8411:710;;;;;:::o;9144:370::-;9215:5;9264:3;9257:4;9249:6;9245:17;9241:27;9231:122;;9272:79;;:::i;:::-;9231:122;9389:6;9376:20;9414:94;9504:3;9496:6;9489:4;9481:6;9477:17;9414:94;:::i;:::-;9405:103;;9221:293;9144:370;;;;:::o;9520:116::-;9590:21;9605:5;9590:21;:::i;:::-;9583:5;9580:32;9570:60;;9626:1;9623;9616:12;9570:60;9520:116;:::o;9642:133::-;9685:5;9723:6;9710:20;9701:29;;9739:30;9763:5;9739:30;:::i;:::-;9642:133;;;;:::o;9781:678::-;9871:6;9879;9928:2;9916:9;9907:7;9903:23;9899:32;9896:119;;;9934:79;;:::i;:::-;9896:119;10082:1;10071:9;10067:17;10054:31;10112:18;10104:6;10101:30;10098:117;;;10134:79;;:::i;:::-;10098:117;10239:78;10309:7;10300:6;10289:9;10285:22;10239:78;:::i;:::-;10229:88;;10025:302;10366:2;10392:50;10434:7;10425:6;10414:9;10410:22;10392:50;:::i;:::-;10382:60;;10337:115;9781:678;;;;;:::o;10465:329::-;10524:6;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10465:329;;;;:::o;10800:60::-;10828:3;10849:5;10842:12;;10800:60;;;:::o;10866:142::-;10916:9;10949:53;10967:34;10976:24;10994:5;10976:24;:::i;:::-;10967:34;:::i;:::-;10949:53;:::i;:::-;10936:66;;10866:142;;;:::o;11014:126::-;11064:9;11097:37;11128:5;11097:37;:::i;:::-;11084:50;;11014:126;;;:::o;11146:148::-;11218:9;11251:37;11282:5;11251:37;:::i;:::-;11238:50;;11146:148;;;:::o;11300:175::-;11409:59;11462:5;11409:59;:::i;:::-;11404:3;11397:72;11300:175;;:::o;11481:266::-;11596:4;11634:2;11623:9;11619:18;11611:26;;11647:93;11737:1;11726:9;11722:17;11713:6;11647:93;:::i;:::-;11481:266;;;;:::o;11753:142::-;11856:32;11882:5;11856:32;:::i;:::-;11851:3;11844:45;11753:142;;:::o;11901:254::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12061:87;12145:1;12134:9;12130:17;12121:6;12061:87;:::i;:::-;11901:254;;;;:::o;12161:117::-;12270:1;12267;12260:12;12301:568;12374:8;12384:6;12434:3;12427:4;12419:6;12415:17;12411:27;12401:122;;12442:79;;:::i;:::-;12401:122;12555:6;12542:20;12532:30;;12585:18;12577:6;12574:30;12571:117;;;12607:79;;:::i;:::-;12571:117;12721:4;12713:6;12709:17;12697:29;;12775:3;12767:4;12759:6;12755:17;12745:8;12741:32;12738:41;12735:128;;;12782:79;;:::i;:::-;12735:128;12301:568;;;;;:::o;12875:849::-;12979:6;12987;12995;13003;13052:2;13040:9;13031:7;13027:23;13023:32;13020:119;;;13058:79;;:::i;:::-;13020:119;13178:1;13203:53;13248:7;13239:6;13228:9;13224:22;13203:53;:::i;:::-;13193:63;;13149:117;13333:2;13322:9;13318:18;13305:32;13364:18;13356:6;13353:30;13350:117;;;13386:79;;:::i;:::-;13350:117;13499:80;13571:7;13562:6;13551:9;13547:22;13499:80;:::i;:::-;13481:98;;;;13276:313;13628:2;13654:53;13699:7;13690:6;13679:9;13675:22;13654:53;:::i;:::-;13644:63;;13599:118;12875:849;;;;;;;:::o;13730:474::-;13798:6;13806;13855:2;13843:9;13834:7;13830:23;13826:32;13823:119;;;13861:79;;:::i;:::-;13823:119;13981:1;14006:53;14051:7;14042:6;14031:9;14027:22;14006:53;:::i;:::-;13996:63;;13952:117;14108:2;14134:53;14179:7;14170:6;14159:9;14155:22;14134:53;:::i;:::-;14124:63;;14079:118;13730:474;;;;;:::o;14210:180::-;14258:77;14255:1;14248:88;14355:4;14352:1;14345:15;14379:4;14376:1;14369:15;14396:320;14440:6;14477:1;14471:4;14467:12;14457:22;;14524:1;14518:4;14514:12;14545:18;14535:81;;14601:4;14593:6;14589:17;14579:27;;14535:81;14663:2;14655:6;14652:14;14632:18;14629:38;14626:84;;14682:18;;:::i;:::-;14626:84;14447:269;14396:320;;;:::o;14722:180::-;14770:77;14767:1;14760:88;14867:4;14864:1;14857:15;14891:4;14888:1;14881:15;14908:194;14948:4;14968:20;14986:1;14968:20;:::i;:::-;14963:25;;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15046:1;15043;15039:9;15031:17;;15070:1;15064:4;15061:11;15058:37;;;15075:18;;:::i;:::-;15058:37;14908:194;;;;:::o;15108:157::-;15248:9;15244:1;15236:6;15232:14;15225:33;15108:157;:::o;15271:365::-;15413:3;15434:66;15498:1;15493:3;15434:66;:::i;:::-;15427:73;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15271:365;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:167::-;16207:19;16203:1;16195:6;16191:14;16184:43;16067:167;:::o;16240:366::-;16382:3;16403:67;16467:2;16462:3;16403:67;:::i;:::-;16396:74;;16479:93;16568:3;16479:93;:::i;:::-;16597:2;16592:3;16588:12;16581:19;;16240:366;;;:::o;16612:419::-;16778:4;16816:2;16805:9;16801:18;16793:26;;16865:9;16859:4;16855:20;16851:1;16840:9;16836:17;16829:47;16893:131;17019:4;16893:131;:::i;:::-;16885:139;;16612:419;;;:::o;17037:180::-;17085:77;17082:1;17075:88;17182:4;17179:1;17172:15;17206:4;17203:1;17196:15;17223:233;17262:3;17285:24;17303:5;17285:24;:::i;:::-;17276:33;;17331:66;17324:5;17321:77;17318:103;;17401:18;;:::i;:::-;17318:103;17448:1;17441:5;17437:13;17430:20;;17223:233;;;:::o;17462:143::-;17519:5;17550:6;17544:13;17535:22;;17566:33;17593:5;17566:33;:::i;:::-;17462:143;;;;:::o;17611:351::-;17681:6;17730:2;17718:9;17709:7;17705:23;17701:32;17698:119;;;17736:79;;:::i;:::-;17698:119;17856:1;17881:64;17937:7;17928:6;17917:9;17913:22;17881:64;:::i;:::-;17871:74;;17827:128;17611:351;;;;:::o;17968:134::-;18026:9;18059:37;18090:5;18059:37;:::i;:::-;18046:50;;17968:134;;;:::o;18108:147::-;18203:45;18242:5;18203:45;:::i;:::-;18198:3;18191:58;18108:147;;:::o;18261:348::-;18390:4;18428:2;18417:9;18413:18;18405:26;;18441:79;18517:1;18506:9;18502:17;18493:6;18441:79;:::i;:::-;18530:72;18598:2;18587:9;18583:18;18574:6;18530:72;:::i;:::-;18261:348;;;;;:::o;18615:137::-;18669:5;18700:6;18694:13;18685:22;;18716:30;18740:5;18716:30;:::i;:::-;18615:137;;;;:::o;18758:345::-;18825:6;18874:2;18862:9;18853:7;18849:23;18845:32;18842:119;;;18880:79;;:::i;:::-;18842:119;19000:1;19025:61;19078:7;19069:6;19058:9;19054:22;19025:61;:::i;:::-;19015:71;;18971:125;18758:345;;;;:::o;19109:143::-;19166:5;19197:6;19191:13;19182:22;;19213:33;19240:5;19213:33;:::i;:::-;19109:143;;;;:::o;19258:351::-;19328:6;19377:2;19365:9;19356:7;19352:23;19348:32;19345:119;;;19383:79;;:::i;:::-;19345:119;19503:1;19528:64;19584:7;19575:6;19564:9;19560:22;19528:64;:::i;:::-;19518:74;;19474:128;19258:351;;;;:::o;19615:332::-;19736:4;19774:2;19763:9;19759:18;19751:26;;19787:71;19855:1;19844:9;19840:17;19831:6;19787:71;:::i;:::-;19868:72;19936:2;19925:9;19921:18;19912:6;19868:72;:::i;:::-;19615:332;;;;;:::o;19953:442::-;20102:4;20140:2;20129:9;20125:18;20117:26;;20153:71;20221:1;20210:9;20206:17;20197:6;20153:71;:::i;:::-;20234:72;20302:2;20291:9;20287:18;20278:6;20234:72;:::i;:::-;20316;20384:2;20373:9;20369:18;20360:6;20316:72;:::i;:::-;19953:442;;;;;;:::o;20401:158::-;20541:10;20537:1;20529:6;20525:14;20518:34;20401:158;:::o;20565:365::-;20707:3;20728:66;20792:1;20787:3;20728:66;:::i;:::-;20721:73;;20803:93;20892:3;20803:93;:::i;:::-;20921:2;20916:3;20912:12;20905:19;;20565:365;;;:::o;20936:419::-;21102:4;21140:2;21129:9;21125:18;21117:26;;21189:9;21183:4;21179:20;21175:1;21164:9;21160:17;21153:47;21217:131;21343:4;21217:131;:::i;:::-;21209:139;;20936:419;;;:::o;21361:228::-;21501:34;21497:1;21489:6;21485:14;21478:58;21570:11;21565:2;21557:6;21553:15;21546:36;21361:228;:::o;21595:366::-;21737:3;21758:67;21822:2;21817:3;21758:67;:::i;:::-;21751:74;;21834:93;21923:3;21834:93;:::i;:::-;21952:2;21947:3;21943:12;21936:19;;21595:366;;;:::o;21967:419::-;22133:4;22171:2;22160:9;22156:18;22148:26;;22220:9;22214:4;22210:20;22206:1;22195:9;22191:17;22184:47;22248:131;22374:4;22248:131;:::i;:::-;22240:139;;21967:419;;;:::o;22392:191::-;22432:3;22451:20;22469:1;22451:20;:::i;:::-;22446:25;;22485:20;22503:1;22485:20;:::i;:::-;22480:25;;22528:1;22525;22521:9;22514:16;;22549:3;22546:1;22543:10;22540:36;;;22556:18;;:::i;:::-;22540:36;22392:191;;;;:::o;22589:161::-;22729:13;22725:1;22717:6;22713:14;22706:37;22589:161;:::o;22756:366::-;22898:3;22919:67;22983:2;22978:3;22919:67;:::i;:::-;22912:74;;22995:93;23084:3;22995:93;:::i;:::-;23113:2;23108:3;23104:12;23097:19;;22756:366;;;:::o;23128:419::-;23294:4;23332:2;23321:9;23317:18;23309:26;;23381:9;23375:4;23371:20;23367:1;23356:9;23352:17;23345:47;23409:131;23535:4;23409:131;:::i;:::-;23401:139;;23128:419;;;:::o;23553:180::-;23601:77;23598:1;23591:88;23698:4;23695:1;23688:15;23722:4;23719:1;23712:15;23739:185;23779:1;23796:20;23814:1;23796:20;:::i;:::-;23791:25;;23830:20;23848:1;23830:20;:::i;:::-;23825:25;;23869:1;23859:35;;23874:18;;:::i;:::-;23859:35;23916:1;23913;23909:9;23904:14;;23739:185;;;;:::o;23930:114::-;23997:6;24031:5;24025:12;24015:22;;23930:114;;;:::o;24050:184::-;24149:11;24183:6;24178:3;24171:19;24223:4;24218:3;24214:14;24199:29;;24050:184;;;;:::o;24240:132::-;24307:4;24330:3;24322:11;;24360:4;24355:3;24351:14;24343:22;;24240:132;;;:::o;24378:108::-;24455:24;24473:5;24455:24;:::i;:::-;24450:3;24443:37;24378:108;;:::o;24492:179::-;24561:10;24582:46;24624:3;24616:6;24582:46;:::i;:::-;24660:4;24655:3;24651:14;24637:28;;24492:179;;;;:::o;24677:113::-;24747:4;24779;24774:3;24770:14;24762:22;;24677:113;;;:::o;24826:732::-;24945:3;24974:54;25022:5;24974:54;:::i;:::-;25044:86;25123:6;25118:3;25044:86;:::i;:::-;25037:93;;25154:56;25204:5;25154:56;:::i;:::-;25233:7;25264:1;25249:284;25274:6;25271:1;25268:13;25249:284;;;25350:6;25344:13;25377:63;25436:3;25421:13;25377:63;:::i;:::-;25370:70;;25463:60;25516:6;25463:60;:::i;:::-;25453:70;;25309:224;25296:1;25293;25289:9;25284:14;;25249:284;;;25253:14;25549:3;25542:10;;24950:608;;;24826:732;;;;:::o;25564:483::-;25735:4;25773:2;25762:9;25758:18;25750:26;;25786:71;25854:1;25843:9;25839:17;25830:6;25786:71;:::i;:::-;25904:9;25898:4;25894:20;25889:2;25878:9;25874:18;25867:48;25932:108;26035:4;26026:6;25932:108;:::i;:::-;25924:116;;25564:483;;;;;:::o;26053:311::-;26130:4;26220:18;26212:6;26209:30;26206:56;;;26242:18;;:::i;:::-;26206:56;26292:4;26284:6;26280:17;26272:25;;26352:4;26346;26342:15;26334:23;;26053:311;;;:::o;26387:732::-;26494:5;26519:81;26535:64;26592:6;26535:64;:::i;:::-;26519:81;:::i;:::-;26510:90;;26620:5;26649:6;26642:5;26635:21;26683:4;26676:5;26672:16;26665:23;;26736:4;26728:6;26724:17;26716:6;26712:30;26765:3;26757:6;26754:15;26751:122;;;26784:79;;:::i;:::-;26751:122;26899:6;26882:231;26916:6;26911:3;26908:15;26882:231;;;26991:3;27020:48;27064:3;27052:10;27020:48;:::i;:::-;27015:3;27008:61;27098:4;27093:3;27089:14;27082:21;;26958:155;26942:4;26937:3;26933:14;26926:21;;26882:231;;;26886:21;26500:619;;26387:732;;;;;:::o;27142:385::-;27224:5;27273:3;27266:4;27258:6;27254:17;27250:27;27240:122;;27281:79;;:::i;:::-;27240:122;27391:6;27385:13;27416:105;27517:3;27509:6;27502:4;27494:6;27490:17;27416:105;:::i;:::-;27407:114;;27230:297;27142:385;;;;:::o;27533:554::-;27628:6;27677:2;27665:9;27656:7;27652:23;27648:32;27645:119;;;27683:79;;:::i;:::-;27645:119;27824:1;27813:9;27809:17;27803:24;27854:18;27846:6;27843:30;27840:117;;;27876:79;;:::i;:::-;27840:117;27981:89;28062:7;28053:6;28042:9;28038:22;27981:89;:::i;:::-;27971:99;;27774:306;27533:554;;;;:::o;28093:85::-;28138:7;28167:5;28156:16;;28093:85;;;:::o;28184:158::-;28242:9;28275:61;28293:42;28302:32;28328:5;28302:32;:::i;:::-;28293:42;:::i;:::-;28275:61;:::i;:::-;28262:74;;28184:158;;;:::o;28348:147::-;28443:45;28482:5;28443:45;:::i;:::-;28438:3;28431:58;28348:147;;:::o;28501:831::-;28764:4;28802:3;28791:9;28787:19;28779:27;;28816:71;28884:1;28873:9;28869:17;28860:6;28816:71;:::i;:::-;28897:80;28973:2;28962:9;28958:18;28949:6;28897:80;:::i;:::-;29024:9;29018:4;29014:20;29009:2;28998:9;28994:18;28987:48;29052:108;29155:4;29146:6;29052:108;:::i;:::-;29044:116;;29170:72;29238:2;29227:9;29223:18;29214:6;29170:72;:::i;:::-;29252:73;29320:3;29309:9;29305:19;29296:6;29252:73;:::i;:::-;28501:831;;;;;;;;:::o;29338:847::-;29609:4;29647:3;29636:9;29632:19;29624:27;;29661:71;29729:1;29718:9;29714:17;29705:6;29661:71;:::i;:::-;29742:80;29818:2;29807:9;29803:18;29794:6;29742:80;:::i;:::-;29869:9;29863:4;29859:20;29854:2;29843:9;29839:18;29832:48;29897:108;30000:4;29991:6;29897:108;:::i;:::-;29889:116;;30015:80;30091:2;30080:9;30076:18;30067:6;30015:80;:::i;:::-;30105:73;30173:3;30162:9;30158:19;30149:6;30105:73;:::i;:::-;29338:847;;;;;;;;:::o;30191:410::-;30231:7;30254:20;30272:1;30254:20;:::i;:::-;30249:25;;30288:20;30306:1;30288:20;:::i;:::-;30283:25;;30343:1;30340;30336:9;30365:30;30383:11;30365:30;:::i;:::-;30354:41;;30544:1;30535:7;30531:15;30528:1;30525:22;30505:1;30498:9;30478:83;30455:139;;30574:18;;:::i;:::-;30455:139;30239:362;30191:410;;;;:::o

Swarm Source

ipfs://631cf8a1394e6b8f826ff58310a01b1c8e7da0a1f843076949dfa98680f0669e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.