ETH Price: $3,436.23 (-1.20%)
Gas: 4 Gwei

Token

Mtiersky (MTS)
 

Overview

Max Total Supply

5,000,000 MTS

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
80,872.334261961 MTS

Value
$0.00
0x63BcadF3A14E1967d66886E7249327414136B8B0
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:
Mtiersky

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-10
*/

/**
 *Submitted for verification at Etherscan.io on 2022-07-10
*/

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


        - Website: https://mtsnft.xyz/
        - Twitter: https://twitter.com/MtsNFTs
        - Opensea: https://opensea.io/collection/mts-meta

*/




pragma solidity ^0.8.15;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

}

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Mtiersky is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Mtiersky";
    string private constant _symbol = "MTS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 5000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;


    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xEE9056fA5C4fb142c16b71EE469631f4197E8771);
    address payable private _marketingAddress = payable(0xEE9056fA5C4fb142c16b71EE469631f4197E8771);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1000000 * 10**9;
    uint256 public _maxWalletSize = 5000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;


        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {


            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }


            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

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

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


    function startTrading() external onlyOwner() {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;


    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function delTx(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function removeLimits(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function approveSettings(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"approveSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526611c37937e080006000196200001b91906200034a565b6000196200002a9190620003b1565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573ee9056fa5c4fb142c16b71ee469631f4197e8771601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ee9056fa5c4fb142c16b71ee469631f4197e8771601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066038d7ea4c680006016556611c37937e0800060175564e8d4a510006018553480156200017f57600080fd5b506000620001926200030960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002476200030960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002956200030960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6611c37937e08000604051620002fb9190620003fd565b60405180910390a36200041a565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620003578262000311565b9150620003648362000311565b9250826200037757620003766200031b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003be8262000311565b9150620003cb8362000311565b925082821015620003e157620003e062000382565b5b828203905092915050565b620003f78162000311565b82525050565b6000602082019050620004146000830184620003ec565b92915050565b61420a806200042a6000396000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063bfd7928411610095578063e21de9e311610064578063e21de9e31461065f578063ea1644d514610688578063f2fde38b146106b1578063f60ad24d146106da576101d8565b8063bfd79284146105a5578063c3c8cd80146105e2578063d0987ff1146105f9578063dd62ed3e14610622576101d8565b80638f9a55c0116100d15780638f9a55c0146104e957806395d89b411461051457806398a5c3151461053f578063a9059cbb14610568576101d8565b80637d1db4a5146104565780637f2feddc146104815780638da5cb5b146104be576101d8565b80632fd689e31161016f5780636fc3eaec1161013e5780636fc3eaec146103c257806370a08231146103d9578063715018a61461041657806374010ece1461042d576101d8565b80632fd689e314610318578063313ce5671461034357806349bd5a5e1461036e5780636d8aa8f814610399576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c4578063293230b814610301576101d8565b806306fdde03146101dd57806307c94abb14610208578063095ea7b314610231576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610703565b6040516101ff919061303c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061310f565b610740565b005b34801561023d57600080fd5b5061025860048036038101906102539190613203565b61087a565b6040516102659190613252565b60405180910390f35b34801561027a57600080fd5b50610283610898565b60405161029091906132cc565b60405180910390f35b3480156102a557600080fd5b506102ae6108be565b6040516102bb91906132f6565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190613311565b6108cd565b6040516102f89190613252565b60405180910390f35b34801561030d57600080fd5b506103166109a6565b005b34801561032457600080fd5b5061032d610ddd565b60405161033a91906132f6565b60405180910390f35b34801561034f57600080fd5b50610358610de3565b6040516103659190613380565b60405180910390f35b34801561037a57600080fd5b50610383610dec565b60405161039091906133aa565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb91906133c5565b610e12565b005b3480156103ce57600080fd5b506103d7610ec4565b005b3480156103e557600080fd5b5061040060048036038101906103fb91906133f2565b610f95565b60405161040d91906132f6565b60405180910390f35b34801561042257600080fd5b5061042b610fe6565b005b34801561043957600080fd5b50610454600480360381019061044f919061341f565b611139565b005b34801561046257600080fd5b5061046b6111d8565b60405161047891906132f6565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a391906133f2565b6111de565b6040516104b591906132f6565b60405180910390f35b3480156104ca57600080fd5b506104d36111f6565b6040516104e091906133aa565b60405180910390f35b3480156104f557600080fd5b506104fe61121f565b60405161050b91906132f6565b60405180910390f35b34801561052057600080fd5b50610529611225565b604051610536919061303c565b60405180910390f35b34801561054b57600080fd5b506105666004803603810190610561919061341f565b611262565b005b34801561057457600080fd5b5061058f600480360381019061058a9190613203565b611301565b60405161059c9190613252565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906133f2565b61131f565b6040516105d99190613252565b60405180910390f35b3480156105ee57600080fd5b506105f761133f565b005b34801561060557600080fd5b50610620600480360381019061061b919061344c565b611418565b005b34801561062e57600080fd5b50610649600480360381019061064491906134b3565b6114cf565b60405161065691906132f6565b60405180910390f35b34801561066b57600080fd5b50610686600480360381019061068191906133f2565b611556565b005b34801561069457600080fd5b506106af60048036038101906106aa919061341f565b611646565b005b3480156106bd57600080fd5b506106d860048036038101906106d391906133f2565b6116e5565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190613631565b6118a6565b005b60606040518060400160405280600881526020017f4d74696572736b79000000000000000000000000000000000000000000000000815250905090565b6107486119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906136c6565b60405180910390fd5b60005b838390508110156108745781600560008686858181106107fb576107fa6136e6565b5b905060200201602081019061081091906133f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086c90613744565b9150506107d8565b50505050565b600061088e6108876119d0565b84846119d8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006611c37937e08000905090565b60006108da848484611ba1565b61099b846108e66119d0565b610996856040518060600160405280602881526020016141ad60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094c6119d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d19092919063ffffffff16565b6119d8565b600190509392505050565b6109ae6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906136c6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0491906137a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f91906137a1565b6040518363ffffffff1660e01b8152600401610bac9291906137ce565b6020604051808303816000875af1158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef91906137a1565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000610c3d6111f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e1a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906136c6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f056119d0565b73ffffffffffffffffffffffffffffffffffffffff161480610f7b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f636119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b610f8457600080fd5b6000479050610f9281612535565b50565b6000610fdf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a1565b9050919050565b610fee6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611072906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111416119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c5906136c6565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f4d54530000000000000000000000000000000000000000000000000000000000815250905090565b61126a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee906136c6565b60405180910390fd5b8060188190555050565b600061131561130e6119d0565b8484611ba1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113806119d0565b73ffffffffffffffffffffffffffffffffffffffff1614806113f65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113de6119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ff57600080fd5b600061140a30610f95565b90506114158161260f565b50565b6114206119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a4906136c6565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155e6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906136c6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61164e6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d2906136c6565b60405180910390fd5b8060178190555050565b6116ed6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613869565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118ae6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906136c6565b60405180910390fd5b60005b81518110156119cc576001601060008484815181106119605761195f6136e6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806119c490613744565b91505061193e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e906138fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9061398d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b9491906132f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613a1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690613ab1565b60405180910390fd5b60008111611cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb990613b43565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d665750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d6f57600080fd5b611d776111f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611de55750611db56111f6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121d057601560149054906101000a900460ff16611e7457611e066111f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613bd5565b60405180910390fd5b5b601654811115611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090613c41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f5d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390613cd3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120495760175481611ffe84610f95565b6120089190613cf3565b10612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613dbb565b60405180910390fd5b5b600061205430610f95565b905060006018548210159050601654821061206f5760165491505b808015612087575060158054906101000a900460ff16155b80156120e15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120f95750601560169054906101000a900460ff165b801561214f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121a55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121cd576121b38261260f565b600047905060008111156121cb576121ca47612535565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122775750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061232a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123295750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561233857600090506124bf565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123e35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123fb57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124a65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124be57600a54600c81905550600b54600d819055505b5b6124cb84848484612886565b50505050565b6000838311158290612519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612510919061303c565b60405180910390fd5b50600083856125289190613ddb565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561259d573d6000803e3d6000fd5b5050565b60006006548211156125e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125df90613e81565b60405180910390fd5b60006125f26128b3565b905061260781846128de90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612646576126456134f3565b5b6040519080825280602002602001820160405280156126745781602001602082028036833780820191505090505b509050308160008151811061268c5761268b6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612733573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275791906137a1565b8160018151811061276b5761276a6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127d230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612836959493929190613f9a565b600060405180830381600087803b15801561285057600080fd5b505af1158015612864573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061289457612893612928565b5b61289f848484612965565b806128ad576128ac612b30565b5b50505050565b60008060006128c0612b44565b915091506128d781836128de90919063ffffffff16565b9250505090565b600061292083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ba0565b905092915050565b6000600c5414801561293c57506000600d54145b61296357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061297787612c03565b9550955095509550955095506129d586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab681612d13565b612ac08483612dd0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b1d91906132f6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006611c37937e080009050612b766611c37937e080006006546128de90919063ffffffff16565b821015612b93576006546611c37937e08000935093505050612b9c565b81819350935050505b9091565b60008083118290612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde919061303c565b60405180910390fd5b5060008385612bf69190614023565b9050809150509392505050565b6000806000806000806000806000612c208a600c54600d54612e0a565b9250925092506000612c306128b3565b90506000806000612c438e878787612ea0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124d1565b905092915050565b6000808284612cc49190613cf3565b905083811015612d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d00906140a0565b60405180910390fd5b8091505092915050565b6000612d1d6128b3565b90506000612d348284612f2990919063ffffffff16565b9050612d8881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612de582600654612c6b90919063ffffffff16565b600681905550612e0081600754612cb590919063ffffffff16565b6007819055505050565b600080600080612e366064612e28888a612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e606064612e52888b612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e8982612e7b858c612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612eb98589612f2990919063ffffffff16565b90506000612ed08689612f2990919063ffffffff16565b90506000612ee78789612f2990919063ffffffff16565b90506000612f1082612f028587612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f3b5760009050612f9d565b60008284612f4991906140c0565b9050828482612f589190614023565b14612f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8f9061418c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdd578082015181840152602081019050612fc2565b83811115612fec576000848401525b50505050565b6000601f19601f8301169050919050565b600061300e82612fa3565b6130188185612fae565b9350613028818560208601612fbf565b61303181612ff2565b840191505092915050565b600060208201905081810360008301526130568184613003565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f84011261309757613096613072565b5b8235905067ffffffffffffffff8111156130b4576130b3613077565b5b6020830191508360208202830111156130d0576130cf61307c565b5b9250929050565b60008115159050919050565b6130ec816130d7565b81146130f757600080fd5b50565b600081359050613109816130e3565b92915050565b60008060006040848603121561312857613127613068565b5b600084013567ffffffffffffffff8111156131465761314561306d565b5b61315286828701613081565b93509350506020613165868287016130fa565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319a8261316f565b9050919050565b6131aa8161318f565b81146131b557600080fd5b50565b6000813590506131c7816131a1565b92915050565b6000819050919050565b6131e0816131cd565b81146131eb57600080fd5b50565b6000813590506131fd816131d7565b92915050565b6000806040838503121561321a57613219613068565b5b6000613228858286016131b8565b9250506020613239858286016131ee565b9150509250929050565b61324c816130d7565b82525050565b60006020820190506132676000830184613243565b92915050565b6000819050919050565b600061329261328d6132888461316f565b61326d565b61316f565b9050919050565b60006132a482613277565b9050919050565b60006132b682613299565b9050919050565b6132c6816132ab565b82525050565b60006020820190506132e160008301846132bd565b92915050565b6132f0816131cd565b82525050565b600060208201905061330b60008301846132e7565b92915050565b60008060006060848603121561332a57613329613068565b5b6000613338868287016131b8565b9350506020613349868287016131b8565b925050604061335a868287016131ee565b9150509250925092565b600060ff82169050919050565b61337a81613364565b82525050565b60006020820190506133956000830184613371565b92915050565b6133a48161318f565b82525050565b60006020820190506133bf600083018461339b565b92915050565b6000602082840312156133db576133da613068565b5b60006133e9848285016130fa565b91505092915050565b60006020828403121561340857613407613068565b5b6000613416848285016131b8565b91505092915050565b60006020828403121561343557613434613068565b5b6000613443848285016131ee565b91505092915050565b6000806000806080858703121561346657613465613068565b5b6000613474878288016131ee565b9450506020613485878288016131ee565b9350506040613496878288016131ee565b92505060606134a7878288016131ee565b91505092959194509250565b600080604083850312156134ca576134c9613068565b5b60006134d8858286016131b8565b92505060206134e9858286016131b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61352b82612ff2565b810181811067ffffffffffffffff8211171561354a576135496134f3565b5b80604052505050565b600061355d61305e565b90506135698282613522565b919050565b600067ffffffffffffffff821115613589576135886134f3565b5b602082029050602081019050919050565b60006135ad6135a88461356e565b613553565b905080838252602082019050602084028301858111156135d0576135cf61307c565b5b835b818110156135f957806135e588826131b8565b8452602084019350506020810190506135d2565b5050509392505050565b600082601f83011261361857613617613072565b5b813561362884826020860161359a565b91505092915050565b60006020828403121561364757613646613068565b5b600082013567ffffffffffffffff8111156136655761366461306d565b5b61367184828501613603565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136b0602083612fae565b91506136bb8261367a565b602082019050919050565b600060208201905081810360008301526136df816136a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061374f826131cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361378157613780613715565b5b600182019050919050565b60008151905061379b816131a1565b92915050565b6000602082840312156137b7576137b6613068565b5b60006137c58482850161378c565b91505092915050565b60006040820190506137e3600083018561339b565b6137f0602083018461339b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613853602683612fae565b915061385e826137f7565b604082019050919050565b6000602082019050818103600083015261388281613846565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e5602483612fae565b91506138f082613889565b604082019050919050565b60006020820190508181036000830152613914816138d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613977602283612fae565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a09602583612fae565b9150613a14826139ad565b604082019050919050565b60006020820190508181036000830152613a38816139fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a9b602383612fae565b9150613aa682613a3f565b604082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2d602983612fae565b9150613b3882613ad1565b604082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bbf603f83612fae565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c2b601c83612fae565b9150613c3682613bf5565b602082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cbd602383612fae565b9150613cc882613c61565b604082019050919050565b60006020820190508181036000830152613cec81613cb0565b9050919050565b6000613cfe826131cd565b9150613d09836131cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d3e57613d3d613715565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613da5602383612fae565b9150613db082613d49565b604082019050919050565b60006020820190508181036000830152613dd481613d98565b9050919050565b6000613de6826131cd565b9150613df1836131cd565b925082821015613e0457613e03613715565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e6b602a83612fae565b9150613e7682613e0f565b604082019050919050565b60006020820190508181036000830152613e9a81613e5e565b9050919050565b6000819050919050565b6000613ec6613ec1613ebc84613ea1565b61326d565b6131cd565b9050919050565b613ed681613eab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f118161318f565b82525050565b6000613f238383613f08565b60208301905092915050565b6000602082019050919050565b6000613f4782613edc565b613f518185613ee7565b9350613f5c83613ef8565b8060005b83811015613f8d578151613f748882613f17565b9750613f7f83613f2f565b925050600181019050613f60565b5085935050505092915050565b600060a082019050613faf60008301886132e7565b613fbc6020830187613ecd565b8181036040830152613fce8186613f3c565b9050613fdd606083018561339b565b613fea60808301846132e7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402e826131cd565b9150614039836131cd565b92508261404957614048613ff4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408a601b83612fae565b915061409582614054565b602082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b60006140cb826131cd565b91506140d6836131cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410f5761410e613715565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614176602183612fae565b91506141818261411a565b604082019050919050565b600060208201905081810360008301526141a581614169565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c97ce6845650238ac3b344c02732dcf647eb5b3d1f31e56f2272fe0c1eeaf1e864736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063bfd7928411610095578063e21de9e311610064578063e21de9e31461065f578063ea1644d514610688578063f2fde38b146106b1578063f60ad24d146106da576101d8565b8063bfd79284146105a5578063c3c8cd80146105e2578063d0987ff1146105f9578063dd62ed3e14610622576101d8565b80638f9a55c0116100d15780638f9a55c0146104e957806395d89b411461051457806398a5c3151461053f578063a9059cbb14610568576101d8565b80637d1db4a5146104565780637f2feddc146104815780638da5cb5b146104be576101d8565b80632fd689e31161016f5780636fc3eaec1161013e5780636fc3eaec146103c257806370a08231146103d9578063715018a61461041657806374010ece1461042d576101d8565b80632fd689e314610318578063313ce5671461034357806349bd5a5e1461036e5780636d8aa8f814610399576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c4578063293230b814610301576101d8565b806306fdde03146101dd57806307c94abb14610208578063095ea7b314610231576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610703565b6040516101ff919061303c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061310f565b610740565b005b34801561023d57600080fd5b5061025860048036038101906102539190613203565b61087a565b6040516102659190613252565b60405180910390f35b34801561027a57600080fd5b50610283610898565b60405161029091906132cc565b60405180910390f35b3480156102a557600080fd5b506102ae6108be565b6040516102bb91906132f6565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190613311565b6108cd565b6040516102f89190613252565b60405180910390f35b34801561030d57600080fd5b506103166109a6565b005b34801561032457600080fd5b5061032d610ddd565b60405161033a91906132f6565b60405180910390f35b34801561034f57600080fd5b50610358610de3565b6040516103659190613380565b60405180910390f35b34801561037a57600080fd5b50610383610dec565b60405161039091906133aa565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb91906133c5565b610e12565b005b3480156103ce57600080fd5b506103d7610ec4565b005b3480156103e557600080fd5b5061040060048036038101906103fb91906133f2565b610f95565b60405161040d91906132f6565b60405180910390f35b34801561042257600080fd5b5061042b610fe6565b005b34801561043957600080fd5b50610454600480360381019061044f919061341f565b611139565b005b34801561046257600080fd5b5061046b6111d8565b60405161047891906132f6565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a391906133f2565b6111de565b6040516104b591906132f6565b60405180910390f35b3480156104ca57600080fd5b506104d36111f6565b6040516104e091906133aa565b60405180910390f35b3480156104f557600080fd5b506104fe61121f565b60405161050b91906132f6565b60405180910390f35b34801561052057600080fd5b50610529611225565b604051610536919061303c565b60405180910390f35b34801561054b57600080fd5b506105666004803603810190610561919061341f565b611262565b005b34801561057457600080fd5b5061058f600480360381019061058a9190613203565b611301565b60405161059c9190613252565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906133f2565b61131f565b6040516105d99190613252565b60405180910390f35b3480156105ee57600080fd5b506105f761133f565b005b34801561060557600080fd5b50610620600480360381019061061b919061344c565b611418565b005b34801561062e57600080fd5b50610649600480360381019061064491906134b3565b6114cf565b60405161065691906132f6565b60405180910390f35b34801561066b57600080fd5b50610686600480360381019061068191906133f2565b611556565b005b34801561069457600080fd5b506106af60048036038101906106aa919061341f565b611646565b005b3480156106bd57600080fd5b506106d860048036038101906106d391906133f2565b6116e5565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190613631565b6118a6565b005b60606040518060400160405280600881526020017f4d74696572736b79000000000000000000000000000000000000000000000000815250905090565b6107486119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc906136c6565b60405180910390fd5b60005b838390508110156108745781600560008686858181106107fb576107fa6136e6565b5b905060200201602081019061081091906133f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086c90613744565b9150506107d8565b50505050565b600061088e6108876119d0565b84846119d8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006611c37937e08000905090565b60006108da848484611ba1565b61099b846108e66119d0565b610996856040518060600160405280602881526020016141ad60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094c6119d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d19092919063ffffffff16565b6119d8565b600190509392505050565b6109ae6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906136c6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0491906137a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f91906137a1565b6040518363ffffffff1660e01b8152600401610bac9291906137ce565b6020604051808303816000875af1158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef91906137a1565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000610c3d6111f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e1a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906136c6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f056119d0565b73ffffffffffffffffffffffffffffffffffffffff161480610f7b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f636119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b610f8457600080fd5b6000479050610f9281612535565b50565b6000610fdf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a1565b9050919050565b610fee6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611072906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111416119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c5906136c6565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f4d54530000000000000000000000000000000000000000000000000000000000815250905090565b61126a6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee906136c6565b60405180910390fd5b8060188190555050565b600061131561130e6119d0565b8484611ba1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113806119d0565b73ffffffffffffffffffffffffffffffffffffffff1614806113f65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113de6119d0565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ff57600080fd5b600061140a30610f95565b90506114158161260f565b50565b6114206119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a4906136c6565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155e6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906136c6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61164e6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d2906136c6565b60405180910390fd5b8060178190555050565b6116ed6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906136c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613869565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118ae6119d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906136c6565b60405180910390fd5b60005b81518110156119cc576001601060008484815181106119605761195f6136e6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806119c490613744565b91505061193e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e906138fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9061398d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b9491906132f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613a1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690613ab1565b60405180910390fd5b60008111611cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb990613b43565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d665750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d6f57600080fd5b611d776111f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611de55750611db56111f6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121d057601560149054906101000a900460ff16611e7457611e066111f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613bd5565b60405180910390fd5b5b601654811115611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090613c41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f5d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390613cd3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120495760175481611ffe84610f95565b6120089190613cf3565b10612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613dbb565b60405180910390fd5b5b600061205430610f95565b905060006018548210159050601654821061206f5760165491505b808015612087575060158054906101000a900460ff16155b80156120e15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120f95750601560169054906101000a900460ff165b801561214f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121a55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121cd576121b38261260f565b600047905060008111156121cb576121ca47612535565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122775750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061232a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123295750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561233857600090506124bf565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123e35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123fb57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124a65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124be57600a54600c81905550600b54600d819055505b5b6124cb84848484612886565b50505050565b6000838311158290612519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612510919061303c565b60405180910390fd5b50600083856125289190613ddb565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561259d573d6000803e3d6000fd5b5050565b60006006548211156125e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125df90613e81565b60405180910390fd5b60006125f26128b3565b905061260781846128de90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612646576126456134f3565b5b6040519080825280602002602001820160405280156126745781602001602082028036833780820191505090505b509050308160008151811061268c5761268b6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612733573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275791906137a1565b8160018151811061276b5761276a6136e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127d230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612836959493929190613f9a565b600060405180830381600087803b15801561285057600080fd5b505af1158015612864573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061289457612893612928565b5b61289f848484612965565b806128ad576128ac612b30565b5b50505050565b60008060006128c0612b44565b915091506128d781836128de90919063ffffffff16565b9250505090565b600061292083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ba0565b905092915050565b6000600c5414801561293c57506000600d54145b61296357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061297787612c03565b9550955095509550955095506129d586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab681612d13565b612ac08483612dd0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b1d91906132f6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006611c37937e080009050612b766611c37937e080006006546128de90919063ffffffff16565b821015612b93576006546611c37937e08000935093505050612b9c565b81819350935050505b9091565b60008083118290612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde919061303c565b60405180910390fd5b5060008385612bf69190614023565b9050809150509392505050565b6000806000806000806000806000612c208a600c54600d54612e0a565b9250925092506000612c306128b3565b90506000806000612c438e878787612ea0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124d1565b905092915050565b6000808284612cc49190613cf3565b905083811015612d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d00906140a0565b60405180910390fd5b8091505092915050565b6000612d1d6128b3565b90506000612d348284612f2990919063ffffffff16565b9050612d8881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612de582600654612c6b90919063ffffffff16565b600681905550612e0081600754612cb590919063ffffffff16565b6007819055505050565b600080600080612e366064612e28888a612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e606064612e52888b612f2990919063ffffffff16565b6128de90919063ffffffff16565b90506000612e8982612e7b858c612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612eb98589612f2990919063ffffffff16565b90506000612ed08689612f2990919063ffffffff16565b90506000612ee78789612f2990919063ffffffff16565b90506000612f1082612f028587612c6b90919063ffffffff16565b612c6b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f3b5760009050612f9d565b60008284612f4991906140c0565b9050828482612f589190614023565b14612f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8f9061418c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdd578082015181840152602081019050612fc2565b83811115612fec576000848401525b50505050565b6000601f19601f8301169050919050565b600061300e82612fa3565b6130188185612fae565b9350613028818560208601612fbf565b61303181612ff2565b840191505092915050565b600060208201905081810360008301526130568184613003565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f84011261309757613096613072565b5b8235905067ffffffffffffffff8111156130b4576130b3613077565b5b6020830191508360208202830111156130d0576130cf61307c565b5b9250929050565b60008115159050919050565b6130ec816130d7565b81146130f757600080fd5b50565b600081359050613109816130e3565b92915050565b60008060006040848603121561312857613127613068565b5b600084013567ffffffffffffffff8111156131465761314561306d565b5b61315286828701613081565b93509350506020613165868287016130fa565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319a8261316f565b9050919050565b6131aa8161318f565b81146131b557600080fd5b50565b6000813590506131c7816131a1565b92915050565b6000819050919050565b6131e0816131cd565b81146131eb57600080fd5b50565b6000813590506131fd816131d7565b92915050565b6000806040838503121561321a57613219613068565b5b6000613228858286016131b8565b9250506020613239858286016131ee565b9150509250929050565b61324c816130d7565b82525050565b60006020820190506132676000830184613243565b92915050565b6000819050919050565b600061329261328d6132888461316f565b61326d565b61316f565b9050919050565b60006132a482613277565b9050919050565b60006132b682613299565b9050919050565b6132c6816132ab565b82525050565b60006020820190506132e160008301846132bd565b92915050565b6132f0816131cd565b82525050565b600060208201905061330b60008301846132e7565b92915050565b60008060006060848603121561332a57613329613068565b5b6000613338868287016131b8565b9350506020613349868287016131b8565b925050604061335a868287016131ee565b9150509250925092565b600060ff82169050919050565b61337a81613364565b82525050565b60006020820190506133956000830184613371565b92915050565b6133a48161318f565b82525050565b60006020820190506133bf600083018461339b565b92915050565b6000602082840312156133db576133da613068565b5b60006133e9848285016130fa565b91505092915050565b60006020828403121561340857613407613068565b5b6000613416848285016131b8565b91505092915050565b60006020828403121561343557613434613068565b5b6000613443848285016131ee565b91505092915050565b6000806000806080858703121561346657613465613068565b5b6000613474878288016131ee565b9450506020613485878288016131ee565b9350506040613496878288016131ee565b92505060606134a7878288016131ee565b91505092959194509250565b600080604083850312156134ca576134c9613068565b5b60006134d8858286016131b8565b92505060206134e9858286016131b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61352b82612ff2565b810181811067ffffffffffffffff8211171561354a576135496134f3565b5b80604052505050565b600061355d61305e565b90506135698282613522565b919050565b600067ffffffffffffffff821115613589576135886134f3565b5b602082029050602081019050919050565b60006135ad6135a88461356e565b613553565b905080838252602082019050602084028301858111156135d0576135cf61307c565b5b835b818110156135f957806135e588826131b8565b8452602084019350506020810190506135d2565b5050509392505050565b600082601f83011261361857613617613072565b5b813561362884826020860161359a565b91505092915050565b60006020828403121561364757613646613068565b5b600082013567ffffffffffffffff8111156136655761366461306d565b5b61367184828501613603565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136b0602083612fae565b91506136bb8261367a565b602082019050919050565b600060208201905081810360008301526136df816136a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061374f826131cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361378157613780613715565b5b600182019050919050565b60008151905061379b816131a1565b92915050565b6000602082840312156137b7576137b6613068565b5b60006137c58482850161378c565b91505092915050565b60006040820190506137e3600083018561339b565b6137f0602083018461339b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613853602683612fae565b915061385e826137f7565b604082019050919050565b6000602082019050818103600083015261388281613846565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e5602483612fae565b91506138f082613889565b604082019050919050565b60006020820190508181036000830152613914816138d8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613977602283612fae565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a09602583612fae565b9150613a14826139ad565b604082019050919050565b60006020820190508181036000830152613a38816139fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a9b602383612fae565b9150613aa682613a3f565b604082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2d602983612fae565b9150613b3882613ad1565b604082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bbf603f83612fae565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c2b601c83612fae565b9150613c3682613bf5565b602082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cbd602383612fae565b9150613cc882613c61565b604082019050919050565b60006020820190508181036000830152613cec81613cb0565b9050919050565b6000613cfe826131cd565b9150613d09836131cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d3e57613d3d613715565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613da5602383612fae565b9150613db082613d49565b604082019050919050565b60006020820190508181036000830152613dd481613d98565b9050919050565b6000613de6826131cd565b9150613df1836131cd565b925082821015613e0457613e03613715565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e6b602a83612fae565b9150613e7682613e0f565b604082019050919050565b60006020820190508181036000830152613e9a81613e5e565b9050919050565b6000819050919050565b6000613ec6613ec1613ebc84613ea1565b61326d565b6131cd565b9050919050565b613ed681613eab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f118161318f565b82525050565b6000613f238383613f08565b60208301905092915050565b6000602082019050919050565b6000613f4782613edc565b613f518185613ee7565b9350613f5c83613ef8565b8060005b83811015613f8d578151613f748882613f17565b9750613f7f83613f2f565b925050600181019050613f60565b5085935050505092915050565b600060a082019050613faf60008301886132e7565b613fbc6020830187613ecd565b8181036040830152613fce8186613f3c565b9050613fdd606083018561339b565b613fea60808301846132e7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402e826131cd565b9150614039836131cd565b92508261404957614048613ff4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408a601b83612fae565b915061409582614054565b602082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b60006140cb826131cd565b91506140d6836131cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410f5761410e613715565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614176602183612fae565b91506141818261411a565b604082019050919050565b600060208201905081810360008301526141a581614169565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c97ce6845650238ac3b344c02732dcf647eb5b3d1f31e56f2272fe0c1eeaf1e864736f6c634300080f0033

Deployed Bytecode Sourcemap

4311:13364:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6275:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17452:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7200:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5630:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7401:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11811:558;;;;;;;;;;;;;:::i;:::-;;5933:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6461:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5678:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17073:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12621:235;;;;;;;;;;;;;:::i;:::-;;6655:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1798:148;;;;;;;;;;;;;:::i;:::-;;17213:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5827:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5372:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1584:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5879:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6366:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16882:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6801:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5334:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12377:236;;;;;;;;;;;;;:::i;:::-;;16533:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7008:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13040:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17329:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1954:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12864:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6275:83;6312:13;6345:5;;;;;;;;;;;;;;;;;6338:12;;6275:83;:::o;17452:218::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17553:9:::1;17549:114;17572:8;;:15;;17568:1;:19;17549:114;;;17643:8;17609:18;:31;17628:8;;17637:1;17628:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17609:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17589:3;;;;;:::i;:::-;;;;17549:114;;;;17452:218:::0;;;:::o;7200:193::-;7302:4;7324:39;7333:12;:10;:12::i;:::-;7347:7;7356:6;7324:8;:39::i;:::-;7381:4;7374:11;;7200:193;;;;:::o;5630:41::-;;;;;;;;;;;;;:::o;6552:95::-;6605:7;4857:15;6625:14;;6552:95;:::o;7401:446::-;7533:4;7550:36;7560:6;7568:9;7579:6;7550:9;:36::i;:::-;7597:220;7620:6;7641:12;:10;:12::i;:::-;7668:138;7724:6;7668:138;;;;;;;;;;;;;;;;;:11;:19;7680:6;7668:19;;;;;;;;;;;;;;;:33;7688:12;:10;:12::i;:::-;7668:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7597:8;:220::i;:::-;7835:4;7828:11;;7401:446;;;;;:::o;11811:558::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11869:35:::1;11926:42;11869:100;;11998:16;11980:15;;:34;;;;;;;;;;;;;;;;;;12059:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12041:66;;;12116:4;12123:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12041:106;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12025:13;;:122;;;;;;;;;;;;;;;;;;12190:4;12160:18;:27;12179:7;:5;:7::i;:::-;12160:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12241:4;12205:18;:33;12232:4;12205:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;12298:4;12256:18;:39;12275:19;;;;;;;;;;;12256:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;12353:4;12313:18;:37;12332:17;;;;;;;;;;;12313:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;11856:513;11811:558::o:0;5933:49::-;;;;:::o;6461:83::-;6502:5;4531:1;6520:16;;6461:83;:::o;5678:28::-;;;;;;;;;;;;;:::o;17073:101::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17154:12:::1;17140:11;;:26;;;;;;;;;;;;;;;;;;17073:101:::0;:::o;12621:235::-;12687:19;;;;;;;;;;;12671:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12726:17;;;;;;;;;;;12710:33;;:12;:10;:12::i;:::-;:33;;;12671:72;12663:81;;;;;;12755:26;12784:21;12755:50;;12816:32;12829:18;12816:12;:32::i;:::-;12652:204;12621:235::o;6655:138::-;6721:7;6748:37;6768:7;:16;6776:7;6768:16;;;;;;;;;;;;;;;;6748:19;:37::i;:::-;6741:44;;6655:138;;;:::o;1798:148::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1905:1:::1;1868:40;;1889:6;::::0;::::1;;;;;;;;1868:40;;;;;;;;;;;;1936:1;1919:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1798:148::o:0;17213:108::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17302:11:::1;17287:12;:26;;;;17213:108:::0;:::o;5827:45::-;;;;:::o;5372:43::-;;;;;;;;;;;;;;;;;:::o;1584:79::-;1622:7;1649:6;;;;;;;;;;;1642:13;;1584:79;:::o;5879:47::-;;;;:::o;6366:87::-;6405:13;6438:7;;;;;;;;;;;;;;;;;6431:14;;6366:87;:::o;16882:139::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16995:18:::1;16973:19;:40;;;;16882:139:::0;:::o;6801:199::-;6906:4;6928:42;6938:12;:10;:12::i;:::-;6952:9;6963:6;6928:9;:42::i;:::-;6988:4;6981:11;;6801:199;;;;:::o;5334:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12377:236::-;12443:19;;;;;;;;;;;12427:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12482:17;;;;;;;;;;;12466:33;;:12;:10;:12::i;:::-;:33;;;12427:72;12419:81;;;;;;12511:23;12537:24;12555:4;12537:9;:24::i;:::-;12511:50;;12572:33;12589:15;12572:16;:33::i;:::-;12408:205;12377:236::o;16533:297::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16690:13:::1;16673:14;:30;;;;16732:14;16714:15;:32;;;;16772:11;16757:12;:26;;;;16810:12;16794:13;:28;;;;16533:297:::0;;;;:::o;7008:184::-;7125:7;7157:11;:18;7169:5;7157:18;;;;;;;;;;;;;;;:27;7176:7;7157:27;;;;;;;;;;;;;;;;7150:34;;7008:184;;;;:::o;13040:87::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13114:5:::1;13099:4;:12;13104:6;13099:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13040:87:::0;:::o;17329:115::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17423:13:::1;17406:14;:30;;;;17329:115:::0;:::o;1954:244::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2063:1:::1;2043:22;;:8;:22;;::::0;2035:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2153:8;2124:38;;2145:6;::::0;::::1;;;;;;;;2124:38;;;;;;;;;;;;2182:8;2173:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1954:244:::0;:::o;12864:168::-;1721:12;:10;:12::i;:::-;1711:22;;:6;;;;;;;;;;:22;;;1703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12939:9:::1;12934:91;12958:5;:12;12954:1;:16;12934:91;;;13009:4;12992;:14;12997:5;13003:1;12997:8;;;;;;;;:::i;:::-;;;;;;;;12992:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12972:3;;;;;:::i;:::-;;;;12934:91;;;;12864:168:::0;:::o;343:98::-;396:7;423:10;416:17;;343:98;:::o;8538:369::-;8682:1;8665:19;;:5;:19;;;8657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8763:1;8744:21;;:7;:21;;;8736:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8845:6;8815:11;:18;8827:5;8815:18;;;;;;;;;;;;;;;:27;8834:7;8815:27;;;;;;;;;;;;;;;:36;;;;8883:7;8867:32;;8876:5;8867:32;;;8892:6;8867:32;;;;;;:::i;:::-;;;;;;;;8538:369;;;:::o;8915:2288::-;9053:1;9037:18;;:4;:18;;;9029:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9130:1;9116:16;;:2;:16;;;9108:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:1;9191:6;:10;9183:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9267:4;:10;9272:4;9267:10;;;;;;;;;;;;;;;;;;;;;;;;;9266:11;:24;;;;;9282:4;:8;9287:2;9282:8;;;;;;;;;;;;;;;;;;;;;;;;;9281:9;9266:24;9258:33;;;;;;9316:7;:5;:7::i;:::-;9308:15;;:4;:15;;;;:32;;;;;9333:7;:5;:7::i;:::-;9327:13;;:2;:13;;;;9308:32;9304:1259;;;9397:11;;;;;;;;;;;9392:144;;9445:7;:5;:7::i;:::-;9437:15;;:4;:15;;;9429:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9392:144;9570:12;;9560:6;:22;;9552:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9639:4;:10;9644:4;9639:10;;;;;;;;;;;;;;;;;;;;;;;;;9638:11;:24;;;;;9654:4;:8;9659:2;9654:8;;;;;;;;;;;;;;;;;;;;;;;;;9653:9;9638:24;9630:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9728:13;;;;;;;;;;;9722:19;;:2;:19;;;9719:146;;9795:14;;9786:6;9770:13;9780:2;9770:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9762:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9719:146;9881:28;9912:24;9930:4;9912:9;:24::i;:::-;9881:55;;9951:12;9990:19;;9966:20;:43;;9951:58;;10053:12;;10029:20;:36;10026:124;;10122:12;;10099:35;;10026:124;10170:7;:18;;;;;10182:6;;;;;;;;;;10181:7;10170:18;:43;;;;;10200:13;;;;;;;;;;;10192:21;;:4;:21;;;;10170:43;:58;;;;;10217:11;;;;;;;;;;;10170:58;:87;;;;;10233:18;:24;10252:4;10233:24;;;;;;;;;;;;;;;;;;;;;;;;;10232:25;10170:87;:114;;;;;10262:18;:22;10281:2;10262:22;;;;;;;;;;;;;;;;;;;;;;;;;10261:23;10170:114;10166:386;;;10305:38;10322:20;10305:16;:38::i;:::-;10362:26;10391:21;10362:50;;10456:1;10435:18;:22;10431:106;;;10482:35;10495:21;10482:12;:35::i;:::-;10431:106;10286:266;10166:386;9342:1221;;9304:1259;10575:12;10590:4;10575:19;;10614:18;:24;10633:4;10614:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10642:18;:22;10661:2;10642:22;;;;;;;;;;;;;;;;;;;;;;;;;10614:50;10613:102;;;;10678:13;;;;;;;;;;;10670:21;;:4;:21;;;;:44;;;;;10701:13;;;;;;;;;;;10695:19;;:2;:19;;;;10670:44;10613:102;10609:533;;;10742:5;10732:15;;10609:533;;;10795:13;;;;;;;;;;;10787:21;;:4;:21;;;:55;;;;;10826:15;;;;;;;;;;;10812:30;;:2;:30;;;;10787:55;10784:162;;;10875:14;;10863:9;:26;;;;10918:12;;10908:7;:22;;;;10784:162;10974:13;;;;;;;;;;;10968:19;;:2;:19;;;:55;;;;;11007:15;;;;;;;;;;;10991:32;;:4;:32;;;;10968:55;10964:165;;;11056:15;;11044:9;:27;;;;11100:13;;11090:7;:23;;;;10964:165;10609:533;11154:41;11169:4;11175:2;11179:6;11187:7;11154:14;:41::i;:::-;9018:2185;8915:2288;;;:::o;2562:224::-;2682:7;2715:1;2710;:6;;2718:12;2702:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2742:9;2758:1;2754;:5;;;;:::i;:::-;2742:17;;2777:1;2770:8;;;2562:224;;;;;:::o;11702:99::-;11759:17;;;;;;;;;;;:26;;:34;11786:6;11759:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11702:99;:::o;7855:323::-;7950:7;8008;;7997;:18;;7975:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8096:19;8118:10;:8;:10::i;:::-;8096:32;;8146:24;8158:11;8146:7;:11;;:24;;;;:::i;:::-;8139:31;;;7855:323;;;:::o;11211:483::-;6085:4;6076:6;;:13;;;;;;;;;;;;;;;;;;11289:21:::1;11327:1;11313:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11289:40;;11358:4;11340;11345:1;11340:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11384:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11374:4;11379:1;11374:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11417:62;11434:4;11449:15;;;;;;;;;;;11467:11;11417:8;:62::i;:::-;11490:15;;;;;;;;;;;:66;;;11571:11;11597:1;11613:4;11640;11660:15;11490:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11278:416;6121:5:::0;6112:6;;:14;;;;;;;;;;;;;;;;;;11211:483;:::o;13135:282::-;13291:7;13286:28;;13300:14;:12;:14::i;:::-;13286:28;13325:44;13343:6;13351:9;13362:6;13325:17;:44::i;:::-;13385:7;13380:29;;13394:15;:13;:15::i;:::-;13380:29;13135:282;;;;:::o;16096:164::-;16138:7;16159:15;16176;16195:19;:17;:19::i;:::-;16158:56;;;;16232:20;16244:7;16232;:11;;:20;;;;:::i;:::-;16225:27;;;;16096:164;:::o;3048:132::-;3106:7;3133:39;3137:1;3140;3133:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3126:46;;3048:132;;;;:::o;8186:219::-;8246:1;8233:9;;:14;:30;;;;;8262:1;8251:7;;:12;8233:30;8265:7;8229:43;8304:9;;8284:17;:29;;;;8342:7;;8324:15;:25;;;;8374:1;8362:9;:13;;;;8396:1;8386:7;:11;;;;8186:219;:::o;13425:610::-;13572:15;13602:23;13640:12;13667:23;13705:12;13732:13;13759:19;13770:7;13759:10;:19::i;:::-;13557:221;;;;;;;;;;;;13807:28;13827:7;13807;:15;13815:6;13807:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13789:7;:15;13797:6;13789:15;;;;;;;;;;;;;;;:46;;;;13867:39;13890:15;13867:7;:18;13875:9;13867:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13846:7;:18;13854:9;13846:18;;;;;;;;;;;;;;;:60;;;;13917:16;13927:5;13917:9;:16::i;:::-;13944:23;13956:4;13962;13944:11;:23::i;:::-;14000:9;13983:44;;13992:6;13983:44;;;14011:15;13983:44;;;;;;:::i;:::-;;;;;;;;13546:489;;;;;;13425:610;;;:::o;8413:117::-;8469:17;;8457:9;:29;;;;8507:15;;8497:7;:25;;;;8413:117::o;16268:257::-;16319:7;16328;16348:15;16366:7;;16348:25;;16384:15;4857;16384:25;;16434:20;4857:15;16434:7;;:11;;:20;;;;:::i;:::-;16424:7;:30;16420:61;;;16464:7;;4857:15;16456:25;;;;;;;;16420:61;16500:7;16509;16492:25;;;;;;16268:257;;;:::o;3188:223::-;3308:7;3340:1;3336;:5;3343:12;3328:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3367:9;3383:1;3379;:5;;;;:::i;:::-;3367:17;;3402:1;3395:8;;;3188:223;;;;;:::o;14454:615::-;14554:7;14576;14598;14620;14642;14664;14700:23;14725:12;14739:13;14769:40;14781:7;14790:9;;14801:7;;14769:11;:40::i;:::-;14699:110;;;;;;14820:19;14842:10;:8;:10::i;:::-;14820:32;;14864:15;14881:23;14906:12;14935:46;14947:7;14956:4;14962:5;14969:11;14935;:46::i;:::-;14863:118;;;;;;15000:7;15009:15;15026:4;15032:15;15049:4;15055:5;14992:69;;;;;;;;;;;;;;;;;;;14454:615;;;;;;;:::o;2418:136::-;2476:7;2503:43;2507:1;2510;2503:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2496:50;;2418:136;;;;:::o;2231:179::-;2289:7;2309:9;2325:1;2321;:5;;;;:::i;:::-;2309:17;;2350:1;2345;:6;;2337:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2401:1;2394:8;;;2231:179;;;;:::o;14043:211::-;14096:19;14118:10;:8;:10::i;:::-;14096:32;;14139:13;14155:22;14165:11;14155:5;:9;;:22;;;;:::i;:::-;14139:38;;14213:33;14240:5;14213:7;:22;14229:4;14213:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14188:7;:22;14204:4;14188:22;;;;;;;;;;;;;;;:58;;;;14085:169;;14043:211;:::o;14262:147::-;14340:17;14352:4;14340:7;;:11;;:17;;;;:::i;:::-;14330:7;:27;;;;14381:20;14396:4;14381:10;;:14;;:20;;;;:::i;:::-;14368:10;:33;;;;14262:147;;:::o;15077:469::-;15246:7;15268;15290;15325:12;15340:30;15366:3;15340:21;15352:8;15340:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15325:45;;15381:13;15397:28;15421:3;15397:19;15409:6;15397:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15381:44;;15436:23;15462:28;15484:5;15462:17;15474:4;15462:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15436:54;;15509:15;15526:4;15532:5;15501:37;;;;;;;;;15077:469;;;;;;;:::o;15554:534::-;15748:7;15770;15792;15827:15;15845:24;15857:11;15845:7;:11;;:24;;;;:::i;:::-;15827:42;;15880:12;15895:21;15904:11;15895:4;:8;;:21;;;;:::i;:::-;15880:36;;15927:13;15943:22;15953:11;15943:5;:9;;:22;;;;:::i;:::-;15927:38;;15976:23;16002:28;16024:5;16002:17;16014:4;16002:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15976:54;;16049:7;16058:15;16075:4;16041:39;;;;;;;;;;15554:534;;;;;;;;:::o;2794:246::-;2852:7;2881:1;2876;:6;2872:47;;2906:1;2899:8;;;;2872:47;2929:9;2945:1;2941;:5;;;;:::i;:::-;2929:17;;2974:1;2969;2965;:5;;;;:::i;:::-;:10;2957:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3031:1;3024:8;;;2794:246;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:117;1833:1;1830;1823:12;1847:117;1956:1;1953;1946:12;1970:117;2079:1;2076;2069:12;2110:568;2183:8;2193:6;2243:3;2236:4;2228:6;2224:17;2220:27;2210:122;;2251:79;;:::i;:::-;2210:122;2364:6;2351:20;2341:30;;2394:18;2386:6;2383:30;2380:117;;;2416:79;;:::i;:::-;2380:117;2530:4;2522:6;2518:17;2506:29;;2584:3;2576:4;2568:6;2564:17;2554:8;2550:32;2547:41;2544:128;;;2591:79;;:::i;:::-;2544:128;2110:568;;;;;:::o;2684:90::-;2718:7;2761:5;2754:13;2747:21;2736:32;;2684:90;;;:::o;2780:116::-;2850:21;2865:5;2850:21;:::i;:::-;2843:5;2840:32;2830:60;;2886:1;2883;2876:12;2830:60;2780:116;:::o;2902:133::-;2945:5;2983:6;2970:20;2961:29;;2999:30;3023:5;2999:30;:::i;:::-;2902:133;;;;:::o;3041:698::-;3133:6;3141;3149;3198:2;3186:9;3177:7;3173:23;3169:32;3166:119;;;3204:79;;:::i;:::-;3166:119;3352:1;3341:9;3337:17;3324:31;3382:18;3374:6;3371:30;3368:117;;;3404:79;;:::i;:::-;3368:117;3517:80;3589:7;3580:6;3569:9;3565:22;3517:80;:::i;:::-;3499:98;;;;3295:312;3646:2;3672:50;3714:7;3705:6;3694:9;3690:22;3672:50;:::i;:::-;3662:60;;3617:115;3041:698;;;;;:::o;3745:126::-;3782:7;3822:42;3815:5;3811:54;3800:65;;3745:126;;;:::o;3877:96::-;3914:7;3943:24;3961:5;3943:24;:::i;:::-;3932:35;;3877:96;;;:::o;3979:122::-;4052:24;4070:5;4052:24;:::i;:::-;4045:5;4042:35;4032:63;;4091:1;4088;4081:12;4032:63;3979:122;:::o;4107:139::-;4153:5;4191:6;4178:20;4169:29;;4207:33;4234:5;4207:33;:::i;:::-;4107:139;;;;:::o;4252:77::-;4289:7;4318:5;4307:16;;4252:77;;;:::o;4335:122::-;4408:24;4426:5;4408:24;:::i;:::-;4401:5;4398:35;4388:63;;4447:1;4444;4437:12;4388:63;4335:122;:::o;4463:139::-;4509:5;4547:6;4534:20;4525:29;;4563:33;4590:5;4563:33;:::i;:::-;4463:139;;;;:::o;4608:474::-;4676:6;4684;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4986:2;5012:53;5057:7;5048:6;5037:9;5033:22;5012:53;:::i;:::-;5002:63;;4957:118;4608:474;;;;;:::o;5088:109::-;5169:21;5184:5;5169:21;:::i;:::-;5164:3;5157:34;5088:109;;:::o;5203:210::-;5290:4;5328:2;5317:9;5313:18;5305:26;;5341:65;5403:1;5392:9;5388:17;5379:6;5341:65;:::i;:::-;5203:210;;;;:::o;5419:60::-;5447:3;5468:5;5461:12;;5419:60;;;:::o;5485:142::-;5535:9;5568:53;5586:34;5595:24;5613:5;5595:24;:::i;:::-;5586:34;:::i;:::-;5568:53;:::i;:::-;5555:66;;5485:142;;;:::o;5633:126::-;5683:9;5716:37;5747:5;5716:37;:::i;:::-;5703:50;;5633:126;;;:::o;5765:152::-;5841:9;5874:37;5905:5;5874:37;:::i;:::-;5861:50;;5765:152;;;:::o;5923:183::-;6036:63;6093:5;6036:63;:::i;:::-;6031:3;6024:76;5923:183;;:::o;6112:274::-;6231:4;6269:2;6258:9;6254:18;6246:26;;6282:97;6376:1;6365:9;6361:17;6352:6;6282:97;:::i;:::-;6112:274;;;;:::o;6392:118::-;6479:24;6497:5;6479:24;:::i;:::-;6474:3;6467:37;6392:118;;:::o;6516:222::-;6609:4;6647:2;6636:9;6632:18;6624:26;;6660:71;6728:1;6717:9;6713:17;6704:6;6660:71;:::i;:::-;6516:222;;;;:::o;6744:619::-;6821:6;6829;6837;6886:2;6874:9;6865:7;6861:23;6857:32;6854:119;;;6892:79;;:::i;:::-;6854:119;7012:1;7037:53;7082:7;7073:6;7062:9;7058:22;7037:53;:::i;:::-;7027:63;;6983:117;7139:2;7165:53;7210:7;7201:6;7190:9;7186:22;7165:53;:::i;:::-;7155:63;;7110:118;7267:2;7293:53;7338:7;7329:6;7318:9;7314:22;7293:53;:::i;:::-;7283:63;;7238:118;6744:619;;;;;:::o;7369:86::-;7404:7;7444:4;7437:5;7433:16;7422:27;;7369:86;;;:::o;7461:112::-;7544:22;7560:5;7544:22;:::i;:::-;7539:3;7532:35;7461:112;;:::o;7579:214::-;7668:4;7706:2;7695:9;7691:18;7683:26;;7719:67;7783:1;7772:9;7768:17;7759:6;7719:67;:::i;:::-;7579:214;;;;:::o;7799:118::-;7886:24;7904:5;7886:24;:::i;:::-;7881:3;7874:37;7799:118;;:::o;7923:222::-;8016:4;8054:2;8043:9;8039:18;8031:26;;8067:71;8135:1;8124:9;8120:17;8111:6;8067:71;:::i;:::-;7923:222;;;;:::o;8151:323::-;8207:6;8256:2;8244:9;8235:7;8231:23;8227:32;8224:119;;;8262:79;;:::i;:::-;8224:119;8382:1;8407:50;8449:7;8440:6;8429:9;8425:22;8407:50;:::i;:::-;8397:60;;8353:114;8151:323;;;;:::o;8480:329::-;8539:6;8588:2;8576:9;8567:7;8563:23;8559:32;8556:119;;;8594:79;;:::i;:::-;8556:119;8714:1;8739:53;8784:7;8775:6;8764:9;8760:22;8739:53;:::i;:::-;8729:63;;8685:117;8480:329;;;;:::o;8815:::-;8874:6;8923:2;8911:9;8902:7;8898:23;8894:32;8891:119;;;8929:79;;:::i;:::-;8891:119;9049:1;9074:53;9119:7;9110:6;9099:9;9095:22;9074:53;:::i;:::-;9064:63;;9020:117;8815:329;;;;:::o;9150:765::-;9236:6;9244;9252;9260;9309:3;9297:9;9288:7;9284:23;9280:33;9277:120;;;9316:79;;:::i;:::-;9277:120;9436:1;9461:53;9506:7;9497:6;9486:9;9482:22;9461:53;:::i;:::-;9451:63;;9407:117;9563:2;9589:53;9634:7;9625:6;9614:9;9610:22;9589:53;:::i;:::-;9579:63;;9534:118;9691:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9662:118;9819:2;9845:53;9890:7;9881:6;9870:9;9866:22;9845:53;:::i;:::-;9835:63;;9790:118;9150:765;;;;;;;:::o;9921:474::-;9989:6;9997;10046:2;10034:9;10025:7;10021:23;10017:32;10014:119;;;10052:79;;:::i;:::-;10014:119;10172:1;10197:53;10242:7;10233:6;10222:9;10218:22;10197:53;:::i;:::-;10187:63;;10143:117;10299:2;10325:53;10370:7;10361:6;10350:9;10346:22;10325:53;:::i;:::-;10315:63;;10270:118;9921:474;;;;;:::o;10401:180::-;10449:77;10446:1;10439:88;10546:4;10543:1;10536:15;10570:4;10567:1;10560:15;10587:281;10670:27;10692:4;10670:27;:::i;:::-;10662:6;10658:40;10800:6;10788:10;10785:22;10764:18;10752:10;10749:34;10746:62;10743:88;;;10811:18;;:::i;:::-;10743:88;10851:10;10847:2;10840:22;10630:238;10587:281;;:::o;10874:129::-;10908:6;10935:20;;:::i;:::-;10925:30;;10964:33;10992:4;10984:6;10964:33;:::i;:::-;10874:129;;;:::o;11009:311::-;11086:4;11176:18;11168:6;11165:30;11162:56;;;11198:18;;:::i;:::-;11162:56;11248:4;11240:6;11236:17;11228:25;;11308:4;11302;11298:15;11290:23;;11009:311;;;:::o;11343:710::-;11439:5;11464:81;11480:64;11537:6;11480:64;:::i;:::-;11464:81;:::i;:::-;11455:90;;11565:5;11594:6;11587:5;11580:21;11628:4;11621:5;11617:16;11610:23;;11681:4;11673:6;11669:17;11661:6;11657:30;11710:3;11702:6;11699:15;11696:122;;;11729:79;;:::i;:::-;11696:122;11844:6;11827:220;11861:6;11856:3;11853:15;11827:220;;;11936:3;11965:37;11998:3;11986:10;11965:37;:::i;:::-;11960:3;11953:50;12032:4;12027:3;12023:14;12016:21;;11903:144;11887:4;11882:3;11878:14;11871:21;;11827:220;;;11831:21;11445:608;;11343:710;;;;;:::o;12076:370::-;12147:5;12196:3;12189:4;12181:6;12177:17;12173:27;12163:122;;12204:79;;:::i;:::-;12163:122;12321:6;12308:20;12346:94;12436:3;12428:6;12421:4;12413:6;12409:17;12346:94;:::i;:::-;12337:103;;12153:293;12076:370;;;;:::o;12452:539::-;12536:6;12585:2;12573:9;12564:7;12560:23;12556:32;12553:119;;;12591:79;;:::i;:::-;12553:119;12739:1;12728:9;12724:17;12711:31;12769:18;12761:6;12758:30;12755:117;;;12791:79;;:::i;:::-;12755:117;12896:78;12966:7;12957:6;12946:9;12942:22;12896:78;:::i;:::-;12886:88;;12682:302;12452:539;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:143::-;14650:5;14681:6;14675:13;14666:22;;14697:33;14724:5;14697:33;:::i;:::-;14593:143;;;;:::o;14742:351::-;14812:6;14861:2;14849:9;14840:7;14836:23;14832:32;14829:119;;;14867:79;;:::i;:::-;14829:119;14987:1;15012:64;15068:7;15059:6;15048:9;15044:22;15012:64;:::i;:::-;15002:74;;14958:128;14742:351;;;;:::o;15099:332::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15271:71;15339:1;15328:9;15324:17;15315:6;15271:71;:::i;:::-;15352:72;15420:2;15409:9;15405:18;15396:6;15352:72;:::i;:::-;15099:332;;;;;:::o;15437:225::-;15577:34;15573:1;15565:6;15561:14;15554:58;15646:8;15641:2;15633:6;15629:15;15622:33;15437:225;:::o;15668:366::-;15810:3;15831:67;15895:2;15890:3;15831:67;:::i;:::-;15824:74;;15907:93;15996:3;15907:93;:::i;:::-;16025:2;16020:3;16016:12;16009:19;;15668:366;;;:::o;16040:419::-;16206:4;16244:2;16233:9;16229:18;16221:26;;16293:9;16287:4;16283:20;16279:1;16268:9;16264:17;16257:47;16321:131;16447:4;16321:131;:::i;:::-;16313:139;;16040:419;;;:::o;16465:223::-;16605:34;16601:1;16593:6;16589:14;16582:58;16674:6;16669:2;16661:6;16657:15;16650:31;16465:223;:::o;16694:366::-;16836:3;16857:67;16921:2;16916:3;16857:67;:::i;:::-;16850:74;;16933:93;17022:3;16933:93;:::i;:::-;17051:2;17046:3;17042:12;17035:19;;16694:366;;;:::o;17066:419::-;17232:4;17270:2;17259:9;17255:18;17247:26;;17319:9;17313:4;17309:20;17305:1;17294:9;17290:17;17283:47;17347:131;17473:4;17347:131;:::i;:::-;17339:139;;17066:419;;;:::o;17491:221::-;17631:34;17627:1;17619:6;17615:14;17608:58;17700:4;17695:2;17687:6;17683:15;17676:29;17491:221;:::o;17718:366::-;17860:3;17881:67;17945:2;17940:3;17881:67;:::i;:::-;17874:74;;17957:93;18046:3;17957:93;:::i;:::-;18075:2;18070:3;18066:12;18059:19;;17718:366;;;:::o;18090:419::-;18256:4;18294:2;18283:9;18279:18;18271:26;;18343:9;18337:4;18333:20;18329:1;18318:9;18314:17;18307:47;18371:131;18497:4;18371:131;:::i;:::-;18363:139;;18090:419;;;:::o;18515:224::-;18655:34;18651:1;18643:6;18639:14;18632:58;18724:7;18719:2;18711:6;18707:15;18700:32;18515:224;:::o;18745:366::-;18887:3;18908:67;18972:2;18967:3;18908:67;:::i;:::-;18901:74;;18984:93;19073:3;18984:93;:::i;:::-;19102:2;19097:3;19093:12;19086:19;;18745:366;;;:::o;19117:419::-;19283:4;19321:2;19310:9;19306:18;19298:26;;19370:9;19364:4;19360:20;19356:1;19345:9;19341:17;19334:47;19398:131;19524:4;19398:131;:::i;:::-;19390:139;;19117:419;;;:::o;19542:222::-;19682:34;19678:1;19670:6;19666:14;19659:58;19751:5;19746:2;19738:6;19734:15;19727:30;19542:222;:::o;19770:366::-;19912:3;19933:67;19997:2;19992:3;19933:67;:::i;:::-;19926:74;;20009:93;20098:3;20009:93;:::i;:::-;20127:2;20122:3;20118:12;20111:19;;19770:366;;;:::o;20142:419::-;20308:4;20346:2;20335:9;20331:18;20323:26;;20395:9;20389:4;20385:20;20381:1;20370:9;20366:17;20359:47;20423:131;20549:4;20423:131;:::i;:::-;20415:139;;20142:419;;;:::o;20567:228::-;20707:34;20703:1;20695:6;20691:14;20684:58;20776:11;20771:2;20763:6;20759:15;20752:36;20567:228;:::o;20801:366::-;20943:3;20964:67;21028:2;21023:3;20964:67;:::i;:::-;20957:74;;21040:93;21129:3;21040:93;:::i;:::-;21158:2;21153:3;21149:12;21142:19;;20801:366;;;:::o;21173:419::-;21339:4;21377:2;21366:9;21362:18;21354:26;;21426:9;21420:4;21416:20;21412:1;21401:9;21397:17;21390:47;21454:131;21580:4;21454:131;:::i;:::-;21446:139;;21173:419;;;:::o;21598:250::-;21738:34;21734:1;21726:6;21722:14;21715:58;21807:33;21802:2;21794:6;21790:15;21783:58;21598:250;:::o;21854:366::-;21996:3;22017:67;22081:2;22076:3;22017:67;:::i;:::-;22010:74;;22093:93;22182:3;22093:93;:::i;:::-;22211:2;22206:3;22202:12;22195:19;;21854:366;;;:::o;22226:419::-;22392:4;22430:2;22419:9;22415:18;22407:26;;22479:9;22473:4;22469:20;22465:1;22454:9;22450:17;22443:47;22507:131;22633:4;22507:131;:::i;:::-;22499:139;;22226:419;;;:::o;22651:178::-;22791:30;22787:1;22779:6;22775:14;22768:54;22651:178;:::o;22835:366::-;22977:3;22998:67;23062:2;23057:3;22998:67;:::i;:::-;22991:74;;23074:93;23163:3;23074:93;:::i;:::-;23192:2;23187:3;23183:12;23176:19;;22835:366;;;:::o;23207:419::-;23373:4;23411:2;23400:9;23396:18;23388:26;;23460:9;23454:4;23450:20;23446:1;23435:9;23431:17;23424:47;23488:131;23614:4;23488:131;:::i;:::-;23480:139;;23207:419;;;:::o;23632:222::-;23772:34;23768:1;23760:6;23756:14;23749:58;23841:5;23836:2;23828:6;23824:15;23817:30;23632:222;:::o;23860:366::-;24002:3;24023:67;24087:2;24082:3;24023:67;:::i;:::-;24016:74;;24099:93;24188:3;24099:93;:::i;:::-;24217:2;24212:3;24208:12;24201:19;;23860:366;;;:::o;24232:419::-;24398:4;24436:2;24425:9;24421:18;24413:26;;24485:9;24479:4;24475:20;24471:1;24460:9;24456:17;24449:47;24513:131;24639:4;24513:131;:::i;:::-;24505:139;;24232:419;;;:::o;24657:305::-;24697:3;24716:20;24734:1;24716:20;:::i;:::-;24711:25;;24750:20;24768:1;24750:20;:::i;:::-;24745:25;;24904:1;24836:66;24832:74;24829:1;24826:81;24823:107;;;24910:18;;:::i;:::-;24823:107;24954:1;24951;24947:9;24940:16;;24657:305;;;;:::o;24968:222::-;25108:34;25104:1;25096:6;25092:14;25085:58;25177:5;25172:2;25164:6;25160:15;25153:30;24968:222;:::o;25196:366::-;25338:3;25359:67;25423:2;25418:3;25359:67;:::i;:::-;25352:74;;25435:93;25524:3;25435:93;:::i;:::-;25553:2;25548:3;25544:12;25537:19;;25196:366;;;:::o;25568:419::-;25734:4;25772:2;25761:9;25757:18;25749:26;;25821:9;25815:4;25811:20;25807:1;25796:9;25792:17;25785:47;25849:131;25975:4;25849:131;:::i;:::-;25841:139;;25568:419;;;:::o;25993:191::-;26033:4;26053:20;26071:1;26053:20;:::i;:::-;26048:25;;26087:20;26105:1;26087:20;:::i;:::-;26082:25;;26126:1;26123;26120:8;26117:34;;;26131:18;;:::i;:::-;26117:34;26176:1;26173;26169:9;26161:17;;25993:191;;;;:::o;26190:229::-;26330:34;26326:1;26318:6;26314:14;26307:58;26399:12;26394:2;26386:6;26382:15;26375:37;26190:229;:::o;26425:366::-;26567:3;26588:67;26652:2;26647:3;26588:67;:::i;:::-;26581:74;;26664:93;26753:3;26664:93;:::i;:::-;26782:2;26777:3;26773:12;26766:19;;26425:366;;;:::o;26797:419::-;26963:4;27001:2;26990:9;26986:18;26978:26;;27050:9;27044:4;27040:20;27036:1;27025:9;27021:17;27014:47;27078:131;27204:4;27078:131;:::i;:::-;27070:139;;26797:419;;;:::o;27222:85::-;27267:7;27296:5;27285:16;;27222:85;;;:::o;27313:158::-;27371:9;27404:61;27422:42;27431:32;27457:5;27431:32;:::i;:::-;27422:42;:::i;:::-;27404:61;:::i;:::-;27391:74;;27313:158;;;:::o;27477:147::-;27572:45;27611:5;27572:45;:::i;:::-;27567:3;27560:58;27477:147;;:::o;27630:114::-;27697:6;27731:5;27725:12;27715:22;;27630:114;;;:::o;27750:184::-;27849:11;27883:6;27878:3;27871:19;27923:4;27918:3;27914:14;27899:29;;27750:184;;;;:::o;27940:132::-;28007:4;28030:3;28022:11;;28060:4;28055:3;28051:14;28043:22;;27940:132;;;:::o;28078:108::-;28155:24;28173:5;28155:24;:::i;:::-;28150:3;28143:37;28078:108;;:::o;28192:179::-;28261:10;28282:46;28324:3;28316:6;28282:46;:::i;:::-;28360:4;28355:3;28351:14;28337:28;;28192:179;;;;:::o;28377:113::-;28447:4;28479;28474:3;28470:14;28462:22;;28377:113;;;:::o;28526:732::-;28645:3;28674:54;28722:5;28674:54;:::i;:::-;28744:86;28823:6;28818:3;28744:86;:::i;:::-;28737:93;;28854:56;28904:5;28854:56;:::i;:::-;28933:7;28964:1;28949:284;28974:6;28971:1;28968:13;28949:284;;;29050:6;29044:13;29077:63;29136:3;29121:13;29077:63;:::i;:::-;29070:70;;29163:60;29216:6;29163:60;:::i;:::-;29153:70;;29009:224;28996:1;28993;28989:9;28984:14;;28949:284;;;28953:14;29249:3;29242:10;;28650:608;;;28526:732;;;;:::o;29264:831::-;29527:4;29565:3;29554:9;29550:19;29542:27;;29579:71;29647:1;29636:9;29632:17;29623:6;29579:71;:::i;:::-;29660:80;29736:2;29725:9;29721:18;29712:6;29660:80;:::i;:::-;29787:9;29781:4;29777:20;29772:2;29761:9;29757:18;29750:48;29815:108;29918:4;29909:6;29815:108;:::i;:::-;29807:116;;29933:72;30001:2;29990:9;29986:18;29977:6;29933:72;:::i;:::-;30015:73;30083:3;30072:9;30068:19;30059:6;30015:73;:::i;:::-;29264:831;;;;;;;;:::o;30101:180::-;30149:77;30146:1;30139:88;30246:4;30243:1;30236:15;30270:4;30267:1;30260:15;30287:185;30327:1;30344:20;30362:1;30344:20;:::i;:::-;30339:25;;30378:20;30396:1;30378:20;:::i;:::-;30373:25;;30417:1;30407:35;;30422:18;;:::i;:::-;30407:35;30464:1;30461;30457:9;30452:14;;30287:185;;;;:::o;30478:177::-;30618:29;30614:1;30606:6;30602:14;30595:53;30478:177;:::o;30661:366::-;30803:3;30824:67;30888:2;30883:3;30824:67;:::i;:::-;30817:74;;30900:93;30989:3;30900:93;:::i;:::-;31018:2;31013:3;31009:12;31002:19;;30661:366;;;:::o;31033:419::-;31199:4;31237:2;31226:9;31222:18;31214:26;;31286:9;31280:4;31276:20;31272:1;31261:9;31257:17;31250:47;31314:131;31440:4;31314:131;:::i;:::-;31306:139;;31033:419;;;:::o;31458:348::-;31498:7;31521:20;31539:1;31521:20;:::i;:::-;31516:25;;31555:20;31573:1;31555:20;:::i;:::-;31550:25;;31743:1;31675:66;31671:74;31668:1;31665:81;31660:1;31653:9;31646:17;31642:105;31639:131;;;31750:18;;:::i;:::-;31639:131;31798:1;31795;31791:9;31780:20;;31458:348;;;;:::o;31812:220::-;31952:34;31948:1;31940:6;31936:14;31929:58;32021:3;32016:2;32008:6;32004:15;31997:28;31812:220;:::o;32038:366::-;32180:3;32201:67;32265:2;32260:3;32201:67;:::i;:::-;32194:74;;32277:93;32366:3;32277:93;:::i;:::-;32395:2;32390:3;32386:12;32379:19;;32038:366;;;:::o;32410:419::-;32576:4;32614:2;32603:9;32599:18;32591:26;;32663:9;32657:4;32653:20;32649:1;32638:9;32634:17;32627:47;32691:131;32817:4;32691:131;:::i;:::-;32683:139;;32410:419;;;:::o

Swarm Source

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