ETH Price: $2,964.73 (+2.21%)
Gas: 1 Gwei

Token

Power Of Ethereum (POE)
 

Overview

Max Total Supply

7,000,000,000 POE

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
66,634,103.12905064 POE

Value
$0.00
0xBfC00962603eE0d2C36E8110B3fB1bF152A88687
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:
POE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
*/

        //  https://www.powerofethereum.com/
        //  https://t.me/PowerOfEthereumErc
        //  https://twitter.com/PowerOfEthERC20



// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 7000000000 * 10 ** _decimals;
    string private constant _name = unicode"Power Of Ethereum";
    string private constant _symbol = unicode"POE";
    uint256 public _maxTxAmount = 14000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 14000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 700000 * 10 ** _decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "Only one transfer per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _sellCount[block.number] < 3 // only 3 tax sells per block
            ) {
                swapTokensForEth(min(amount, contractTokenBalance));
                _sellCount[block.number] = _sellCount[block.number] + 1;
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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

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

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

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

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

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

    function reduceFee(
        uint256 _newBuyFee,
        uint256 _newSellFee
    ) external onlyOwner {
        require(
            _newBuyFee <= 30 && _newSellFee <= 30 && tradingOpen,
            "Invalid fee"
        );
        _finalBuyTax = _newBuyFee;
        _finalSellTax = _newSellFee;
    }

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

    receive() external payable {}

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60075f6101000a81548160ff021916908315150217905550601460085560196009555f600a555f600b556019600c556019600d556001600e555f600f556008600a620000529190620005e8565b62d59f8062000062919062000638565b6010556008600a620000759190620005e8565b62d59f8062000085919062000638565b6011556008600a620000989190620005e8565b620aae60620000a8919062000638565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000eb575f80fd5b505f620000fd6200042860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a96200042860201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620001f99190620005e8565b6401a13b86006200020b919062000638565b60015f6200021e6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002706200042f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200039b6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a620003f99190620005e8565b6401a13b86006200040b919062000638565b6040516200041a919062000693565b60405180910390a3620006ae565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e057808604811115620004b857620004b762000456565b5b6001851615620004c85780820291505b8081029050620004d88562000483565b945062000498565b94509492505050565b5f82620004fa5760019050620005cc565b8162000509575f9050620005cc565b81600181146200052257600281146200052d5762000563565b6001915050620005cc565b60ff84111562000542576200054162000456565b5b8360020a9150848211156200055c576200055b62000456565b5b50620005cc565b5060208310610133831016604e8410600b84101617156200059d5782820a90508381111562000597576200059662000456565b5b620005cc565b620005ac84848460016200048f565b92509050818404811115620005c657620005c562000456565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005f482620005d3565b91506200060183620005dc565b9250620006307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e9565b905092915050565b5f6200064482620005d3565b91506200065183620005d3565b92508282026200066181620005d3565b915082820484148315176200067b576200067a62000456565b5b5092915050565b6200068d81620005d3565b82525050565b5f602082019050620006a85f83018462000682565b92915050565b6135ad80620006bc5f395ff3fe60806040526004361061012d575f3560e01c806372333356116100aa57806395d89b411161006e57806395d89b41146103b6578063a9059cbb146103e0578063bf474bed1461041c578063c876d0b914610446578063c9567bf914610470578063dd62ed3e1461048657610134565b806372333356146102fa578063751039fc146103225780637d1db4a5146103385780638da5cb5b146103625780638f9a55c01461038c57610134565b80633bbac579116100f15780633bbac5791461022e57806351bc3c851461026a5780636de7bcbd1461028057806370a08231146102a8578063715018a6146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806323b872dd146101c8578063313ce5671461020457610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b60405161015991906124b8565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612576565b6104ff565b60405161019591906125ce565b60405180910390f35b3480156101a9575f80fd5b506101b261051c565b6040516101bf91906125f6565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e9919061260f565b610540565b6040516101fb91906125ce565b60405180910390f35b34801561020f575f80fd5b50610218610614565b604051610225919061267a565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190612693565b61061c565b60405161026191906125ce565b60405180910390f35b348015610275575f80fd5b5061027e61066e565b005b34801561028b575f80fd5b506102a660048036038101906102a191906127fe565b610706565b005b3480156102b3575f80fd5b506102ce60048036038101906102c99190612693565b61082b565b6040516102db91906125f6565b60405180910390f35b3480156102ef575f80fd5b506102f8610871565b005b348015610305575f80fd5b50610320600480360381019061031b9190612845565b6109bf565b005b34801561032d575f80fd5b50610336610acc565b005b348015610343575f80fd5b5061034c610c17565b60405161035991906125f6565b60405180910390f35b34801561036d575f80fd5b50610376610c1d565b6040516103839190612892565b60405180910390f35b348015610397575f80fd5b506103a0610c44565b6040516103ad91906125f6565b60405180910390f35b3480156103c1575f80fd5b506103ca610c4a565b6040516103d791906124b8565b60405180910390f35b3480156103eb575f80fd5b5061040660048036038101906104019190612576565b610c87565b60405161041391906125ce565b60405180910390f35b348015610427575f80fd5b50610430610ca4565b60405161043d91906125f6565b60405180910390f35b348015610451575f80fd5b5061045a610caa565b60405161046791906125ce565b60405180910390f35b34801561047b575f80fd5b50610484610cbc565b005b348015610491575f80fd5b506104ac60048036038101906104a791906128ab565b6111dc565b6040516104b991906125f6565b60405180910390f35b60606040518060400160405280601181526020017f506f776572204f6620457468657265756d000000000000000000000000000000815250905090565b5f61051261050b61125e565b8484611265565b6001905092915050565b5f6008600a61052b9190612a45565b6401a13b860061053b9190612a8f565b905090565b5f61054c848484611428565b6106098461055861125e565b610604856040518060600160405280602881526020016135506028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105bb61125e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eec9092919063ffffffff16565b611265565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106af61125e565b73ffffffffffffffffffffffffffffffffffffffff16146106ce575f80fd5b5f6106d83061082b565b90505f8111156106ec576106eb81611f4e565b5b5f4790505f81111561070257610701816121d5565b5b5050565b61070e61125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612b1a565b60405180910390fd5b5f5b815181101561082757600160045f8484815181106107bd576107bc612b38565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061081f90612b65565b91505061079c565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087961125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612b1a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c761125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90612b1a565b60405180910390fd5b601e8211158015610a655750601e8111155b8015610a7b575060148054906101000a900460ff165b610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612bf6565b60405180910390fd5b81600a8190555080600b819055505050565b610ad461125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612b1a565b60405180910390fd5b6008600a610b6e9190612a45565b6401a13b8600610b7e9190612a8f565b6010819055506008600a610b929190612a45565b6401a13b8600610ba29190612a8f565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bf09190612a45565b6401a13b8600610c009190612a8f565b604051610c0d91906125f6565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600381526020017f504f450000000000000000000000000000000000000000000000000000000000815250905090565b5f610c9a610c9361125e565b8484611428565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610cc461125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790612b1a565b60405180910390fd5b60148054906101000a900460ff1615610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612c5e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e269190612a45565b6401a13b8600610e369190612a8f565b611265565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec99190612c90565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f739190612c90565b6040518363ffffffff1660e01b8152600401610f90929190612cbb565b6020604051808303815f875af1158015610fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd09190612c90565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110573061082b565b5f80611061610c1d565b426040518863ffffffff1660e01b815260040161108396959493929190612d24565b60606040518083038185885af115801561109f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110c49190612d97565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611164929190612de7565b6020604051808303815f875af1158015611180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a49190612e38565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612ed3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612f61565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141b91906125f6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612fef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb9061307d565b60405180910390fd5b5f8111611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d9061310b565b60405180910390fd5b5f61154f610c1d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115bd575061158d610c1d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c3c5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611660575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611668575f80fd5b60075f9054906101000a900460ff16156117ee5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611726575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ed574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190613199565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611897575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ea575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119c357601054821115611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90613201565b60405180910390fd5b601154826119418561082b565b61194b919061321f565b111561198c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119839061329c565b60405180910390fd5b600e54600f5410156119ab576119a18361223e565b156119aa575f80fd5b5b600f5f8154809291906119bd90612b65565b91905055505b6119ff60646119f1600c54600f54116119de576008546119e2565b600a545b8561224f90919063ffffffff16565b6122c690919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b1257601054821115611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90613201565b60405180910390fd5b611b0f6064611b01600d54600f5411611aee57600954611af2565b600b545b8561224f90919063ffffffff16565b6122c690919063ffffffff16565b90505b5f611b1c3061082b565b9050601460159054906101000a900460ff16158015611b87575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9f5750601460169054906101000a900460ff165b8015611bac575060125481115b8015611bbb5750600e54600f54115b8015611bd85750600360065f4381526020019081526020015f2054105b15611c3a57611bef611bea848361230f565b611f4e565b600160065f4381526020019081526020015f2054611c0d919061321f565b60065f4381526020019081526020015f20819055505f4790505f811115611c3857611c37476121d5565b5b505b505b5f811115611d3b57611c948160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3291906125f6565b60405180910390a35b611d8b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e2e611de2828461238490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed1848661238490919063ffffffff16565b604051611ede91906125f6565b60405180910390a350505050565b5f838311158290611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a91906124b8565b60405180910390fd5b505f8385611f4191906132ba565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121b85760148054906101000a900460ff16156121b8575f600267ffffffffffffffff811115611fa057611f9f6126c2565b5b604051908082528060200260200182016040528015611fce5781602001602082028036833780820191505090505b50905030815f81518110611fe557611fe4612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612089573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ad9190612c90565b816001815181106120c1576120c0612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121273060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611265565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121899594939291906133a4565b5f604051808303815f87803b1580156121a0575f80fd5b505af11580156121b2573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223a573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f80830361225f575f90506122c0565b5f828461226c9190612a8f565b905082848261227b9190613429565b146122bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b2906134c9565b60405180910390fd5b809150505b92915050565b5f61230783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123cd565b905092915050565b5f81831161231d578261231f565b815b905092915050565b5f808284612335919061321f565b90508381101561237a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237190613531565b60405180910390fd5b8091505092915050565b5f6123c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eec565b905092915050565b5f8083118290612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a91906124b8565b60405180910390fd5b505f83856124219190613429565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246557808201518184015260208101905061244a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248a8261242e565b6124948185612438565b93506124a4818560208601612448565b6124ad81612470565b840191505092915050565b5f6020820190508181035f8301526124d08184612480565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612512826124e9565b9050919050565b61252281612508565b811461252c575f80fd5b50565b5f8135905061253d81612519565b92915050565b5f819050919050565b61255581612543565b811461255f575f80fd5b50565b5f813590506125708161254c565b92915050565b5f806040838503121561258c5761258b6124e1565b5b5f6125998582860161252f565b92505060206125aa85828601612562565b9150509250929050565b5f8115159050919050565b6125c8816125b4565b82525050565b5f6020820190506125e15f8301846125bf565b92915050565b6125f081612543565b82525050565b5f6020820190506126095f8301846125e7565b92915050565b5f805f60608486031215612626576126256124e1565b5b5f6126338682870161252f565b93505060206126448682870161252f565b925050604061265586828701612562565b9150509250925092565b5f60ff82169050919050565b6126748161265f565b82525050565b5f60208201905061268d5f83018461266b565b92915050565b5f602082840312156126a8576126a76124e1565b5b5f6126b58482850161252f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126f882612470565b810181811067ffffffffffffffff82111715612717576127166126c2565b5b80604052505050565b5f6127296124d8565b905061273582826126ef565b919050565b5f67ffffffffffffffff821115612754576127536126c2565b5b602082029050602081019050919050565b5f80fd5b5f61277b6127768461273a565b612720565b9050808382526020820190506020840283018581111561279e5761279d612765565b5b835b818110156127c757806127b3888261252f565b8452602084019350506020810190506127a0565b5050509392505050565b5f82601f8301126127e5576127e46126be565b5b81356127f5848260208601612769565b91505092915050565b5f60208284031215612813576128126124e1565b5b5f82013567ffffffffffffffff8111156128305761282f6124e5565b5b61283c848285016127d1565b91505092915050565b5f806040838503121561285b5761285a6124e1565b5b5f61286885828601612562565b925050602061287985828601612562565b9150509250929050565b61288c81612508565b82525050565b5f6020820190506128a55f830184612883565b92915050565b5f80604083850312156128c1576128c06124e1565b5b5f6128ce8582860161252f565b92505060206128df8582860161252f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296b57808604811115612947576129466128e9565b5b60018516156129565780820291505b808102905061296485612916565b945061292b565b94509492505050565b5f826129835760019050612a3e565b81612990575f9050612a3e565b81600181146129a657600281146129b0576129df565b6001915050612a3e565b60ff8411156129c2576129c16128e9565b5b8360020a9150848211156129d9576129d86128e9565b5b50612a3e565b5060208310610133831016604e8410600b8410161715612a145782820a905083811115612a0f57612a0e6128e9565b5b612a3e565b612a218484846001612922565b92509050818404811115612a3857612a376128e9565b5b81810290505b9392505050565b5f612a4f82612543565b9150612a5a8361265f565b9250612a877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612974565b905092915050565b5f612a9982612543565b9150612aa483612543565b9250828202612ab281612543565b91508282048414831517612ac957612ac86128e9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b04602083612438565b9150612b0f82612ad0565b602082019050919050565b5f6020820190508181035f830152612b3181612af8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612b6f82612543565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ba157612ba06128e9565b5b600182019050919050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f612be0600b83612438565b9150612beb82612bac565b602082019050919050565b5f6020820190508181035f830152612c0d81612bd4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c48601783612438565b9150612c5382612c14565b602082019050919050565b5f6020820190508181035f830152612c7581612c3c565b9050919050565b5f81519050612c8a81612519565b92915050565b5f60208284031215612ca557612ca46124e1565b5b5f612cb284828501612c7c565b91505092915050565b5f604082019050612cce5f830185612883565b612cdb6020830184612883565b9392505050565b5f819050919050565b5f819050919050565b5f612d0e612d09612d0484612ce2565b612ceb565b612543565b9050919050565b612d1e81612cf4565b82525050565b5f60c082019050612d375f830189612883565b612d4460208301886125e7565b612d516040830187612d15565b612d5e6060830186612d15565b612d6b6080830185612883565b612d7860a08301846125e7565b979650505050505050565b5f81519050612d918161254c565b92915050565b5f805f60608486031215612dae57612dad6124e1565b5b5f612dbb86828701612d83565b9350506020612dcc86828701612d83565b9250506040612ddd86828701612d83565b9150509250925092565b5f604082019050612dfa5f830185612883565b612e0760208301846125e7565b9392505050565b612e17816125b4565b8114612e21575f80fd5b50565b5f81519050612e3281612e0e565b92915050565b5f60208284031215612e4d57612e4c6124e1565b5b5f612e5a84828501612e24565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ebd602483612438565b9150612ec882612e63565b604082019050919050565b5f6020820190508181035f830152612eea81612eb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4b602283612438565b9150612f5682612ef1565b604082019050919050565b5f6020820190508181035f830152612f7881612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fd9602583612438565b9150612fe482612f7f565b604082019050919050565b5f6020820190508181035f83015261300681612fcd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613067602383612438565b91506130728261300d565b604082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130f5602983612438565b91506131008261309b565b604082019050919050565b5f6020820190508181035f830152613122816130e9565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613183602483612438565b915061318e82613129565b604082019050919050565b5f6020820190508181035f8301526131b081613177565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131eb601983612438565b91506131f6826131b7565b602082019050919050565b5f6020820190508181035f830152613218816131df565b9050919050565b5f61322982612543565b915061323483612543565b925082820190508082111561324c5761324b6128e9565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613286601a83612438565b915061329182613252565b602082019050919050565b5f6020820190508181035f8301526132b38161327a565b9050919050565b5f6132c482612543565b91506132cf83612543565b92508282039050818111156132e7576132e66128e9565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61331f81612508565b82525050565b5f6133308383613316565b60208301905092915050565b5f602082019050919050565b5f613352826132ed565b61335c81856132f7565b935061336783613307565b805f5b8381101561339757815161337e8882613325565b97506133898361333c565b92505060018101905061336a565b5085935050505092915050565b5f60a0820190506133b75f8301886125e7565b6133c46020830187612d15565b81810360408301526133d68186613348565b90506133e56060830185612883565b6133f260808301846125e7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343382612543565b915061343e83612543565b92508261344e5761344d6133fc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134b3602183612438565b91506134be82613459565b604082019050919050565b5f6020820190508181035f8301526134e0816134a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61351b601b83612438565b9150613526826134e7565b602082019050919050565b5f6020820190508181035f8301526135488161350f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b0f80e18ef7492eae2e7aafb9dcec1db4d091570974c70af437c8961b92bc1f764736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c806372333356116100aa57806395d89b411161006e57806395d89b41146103b6578063a9059cbb146103e0578063bf474bed1461041c578063c876d0b914610446578063c9567bf914610470578063dd62ed3e1461048657610134565b806372333356146102fa578063751039fc146103225780637d1db4a5146103385780638da5cb5b146103625780638f9a55c01461038c57610134565b80633bbac579116100f15780633bbac5791461022e57806351bc3c851461026a5780636de7bcbd1461028057806370a08231146102a8578063715018a6146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806323b872dd146101c8578063313ce5671461020457610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b60405161015991906124b8565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612576565b6104ff565b60405161019591906125ce565b60405180910390f35b3480156101a9575f80fd5b506101b261051c565b6040516101bf91906125f6565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e9919061260f565b610540565b6040516101fb91906125ce565b60405180910390f35b34801561020f575f80fd5b50610218610614565b604051610225919061267a565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190612693565b61061c565b60405161026191906125ce565b60405180910390f35b348015610275575f80fd5b5061027e61066e565b005b34801561028b575f80fd5b506102a660048036038101906102a191906127fe565b610706565b005b3480156102b3575f80fd5b506102ce60048036038101906102c99190612693565b61082b565b6040516102db91906125f6565b60405180910390f35b3480156102ef575f80fd5b506102f8610871565b005b348015610305575f80fd5b50610320600480360381019061031b9190612845565b6109bf565b005b34801561032d575f80fd5b50610336610acc565b005b348015610343575f80fd5b5061034c610c17565b60405161035991906125f6565b60405180910390f35b34801561036d575f80fd5b50610376610c1d565b6040516103839190612892565b60405180910390f35b348015610397575f80fd5b506103a0610c44565b6040516103ad91906125f6565b60405180910390f35b3480156103c1575f80fd5b506103ca610c4a565b6040516103d791906124b8565b60405180910390f35b3480156103eb575f80fd5b5061040660048036038101906104019190612576565b610c87565b60405161041391906125ce565b60405180910390f35b348015610427575f80fd5b50610430610ca4565b60405161043d91906125f6565b60405180910390f35b348015610451575f80fd5b5061045a610caa565b60405161046791906125ce565b60405180910390f35b34801561047b575f80fd5b50610484610cbc565b005b348015610491575f80fd5b506104ac60048036038101906104a791906128ab565b6111dc565b6040516104b991906125f6565b60405180910390f35b60606040518060400160405280601181526020017f506f776572204f6620457468657265756d000000000000000000000000000000815250905090565b5f61051261050b61125e565b8484611265565b6001905092915050565b5f6008600a61052b9190612a45565b6401a13b860061053b9190612a8f565b905090565b5f61054c848484611428565b6106098461055861125e565b610604856040518060600160405280602881526020016135506028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105bb61125e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eec9092919063ffffffff16565b611265565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106af61125e565b73ffffffffffffffffffffffffffffffffffffffff16146106ce575f80fd5b5f6106d83061082b565b90505f8111156106ec576106eb81611f4e565b5b5f4790505f81111561070257610701816121d5565b5b5050565b61070e61125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612b1a565b60405180910390fd5b5f5b815181101561082757600160045f8484815181106107bd576107bc612b38565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061081f90612b65565b91505061079c565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087961125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612b1a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c761125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90612b1a565b60405180910390fd5b601e8211158015610a655750601e8111155b8015610a7b575060148054906101000a900460ff165b610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612bf6565b60405180910390fd5b81600a8190555080600b819055505050565b610ad461125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612b1a565b60405180910390fd5b6008600a610b6e9190612a45565b6401a13b8600610b7e9190612a8f565b6010819055506008600a610b929190612a45565b6401a13b8600610ba29190612a8f565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bf09190612a45565b6401a13b8600610c009190612a8f565b604051610c0d91906125f6565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600381526020017f504f450000000000000000000000000000000000000000000000000000000000815250905090565b5f610c9a610c9361125e565b8484611428565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610cc461125e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790612b1a565b60405180910390fd5b60148054906101000a900460ff1615610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612c5e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e269190612a45565b6401a13b8600610e369190612a8f565b611265565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec99190612c90565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f739190612c90565b6040518363ffffffff1660e01b8152600401610f90929190612cbb565b6020604051808303815f875af1158015610fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd09190612c90565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110573061082b565b5f80611061610c1d565b426040518863ffffffff1660e01b815260040161108396959493929190612d24565b60606040518083038185885af115801561109f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110c49190612d97565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611164929190612de7565b6020604051808303815f875af1158015611180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a49190612e38565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612ed3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612f61565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141b91906125f6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612fef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb9061307d565b60405180910390fd5b5f8111611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d9061310b565b60405180910390fd5b5f61154f610c1d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115bd575061158d610c1d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c3c5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611660575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611668575f80fd5b60075f9054906101000a900460ff16156117ee5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611726575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ed574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190613199565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611897575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ea575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119c357601054821115611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90613201565b60405180910390fd5b601154826119418561082b565b61194b919061321f565b111561198c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119839061329c565b60405180910390fd5b600e54600f5410156119ab576119a18361223e565b156119aa575f80fd5b5b600f5f8154809291906119bd90612b65565b91905055505b6119ff60646119f1600c54600f54116119de576008546119e2565b600a545b8561224f90919063ffffffff16565b6122c690919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b1257601054821115611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90613201565b60405180910390fd5b611b0f6064611b01600d54600f5411611aee57600954611af2565b600b545b8561224f90919063ffffffff16565b6122c690919063ffffffff16565b90505b5f611b1c3061082b565b9050601460159054906101000a900460ff16158015611b87575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9f5750601460169054906101000a900460ff165b8015611bac575060125481115b8015611bbb5750600e54600f54115b8015611bd85750600360065f4381526020019081526020015f2054105b15611c3a57611bef611bea848361230f565b611f4e565b600160065f4381526020019081526020015f2054611c0d919061321f565b60065f4381526020019081526020015f20819055505f4790505f811115611c3857611c37476121d5565b5b505b505b5f811115611d3b57611c948160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3291906125f6565b60405180910390a35b611d8b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e2e611de2828461238490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed1848661238490919063ffffffff16565b604051611ede91906125f6565b60405180910390a350505050565b5f838311158290611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a91906124b8565b60405180910390fd5b505f8385611f4191906132ba565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121b85760148054906101000a900460ff16156121b8575f600267ffffffffffffffff811115611fa057611f9f6126c2565b5b604051908082528060200260200182016040528015611fce5781602001602082028036833780820191505090505b50905030815f81518110611fe557611fe4612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612089573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ad9190612c90565b816001815181106120c1576120c0612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121273060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611265565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121899594939291906133a4565b5f604051808303815f87803b1580156121a0575f80fd5b505af11580156121b2573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223a573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f80830361225f575f90506122c0565b5f828461226c9190612a8f565b905082848261227b9190613429565b146122bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b2906134c9565b60405180910390fd5b809150505b92915050565b5f61230783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123cd565b905092915050565b5f81831161231d578261231f565b815b905092915050565b5f808284612335919061321f565b90508381101561237a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237190613531565b60405180910390fd5b8091505092915050565b5f6123c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eec565b905092915050565b5f8083118290612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a91906124b8565b60405180910390fd5b505f83856124219190613429565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246557808201518184015260208101905061244a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248a8261242e565b6124948185612438565b93506124a4818560208601612448565b6124ad81612470565b840191505092915050565b5f6020820190508181035f8301526124d08184612480565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612512826124e9565b9050919050565b61252281612508565b811461252c575f80fd5b50565b5f8135905061253d81612519565b92915050565b5f819050919050565b61255581612543565b811461255f575f80fd5b50565b5f813590506125708161254c565b92915050565b5f806040838503121561258c5761258b6124e1565b5b5f6125998582860161252f565b92505060206125aa85828601612562565b9150509250929050565b5f8115159050919050565b6125c8816125b4565b82525050565b5f6020820190506125e15f8301846125bf565b92915050565b6125f081612543565b82525050565b5f6020820190506126095f8301846125e7565b92915050565b5f805f60608486031215612626576126256124e1565b5b5f6126338682870161252f565b93505060206126448682870161252f565b925050604061265586828701612562565b9150509250925092565b5f60ff82169050919050565b6126748161265f565b82525050565b5f60208201905061268d5f83018461266b565b92915050565b5f602082840312156126a8576126a76124e1565b5b5f6126b58482850161252f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126f882612470565b810181811067ffffffffffffffff82111715612717576127166126c2565b5b80604052505050565b5f6127296124d8565b905061273582826126ef565b919050565b5f67ffffffffffffffff821115612754576127536126c2565b5b602082029050602081019050919050565b5f80fd5b5f61277b6127768461273a565b612720565b9050808382526020820190506020840283018581111561279e5761279d612765565b5b835b818110156127c757806127b3888261252f565b8452602084019350506020810190506127a0565b5050509392505050565b5f82601f8301126127e5576127e46126be565b5b81356127f5848260208601612769565b91505092915050565b5f60208284031215612813576128126124e1565b5b5f82013567ffffffffffffffff8111156128305761282f6124e5565b5b61283c848285016127d1565b91505092915050565b5f806040838503121561285b5761285a6124e1565b5b5f61286885828601612562565b925050602061287985828601612562565b9150509250929050565b61288c81612508565b82525050565b5f6020820190506128a55f830184612883565b92915050565b5f80604083850312156128c1576128c06124e1565b5b5f6128ce8582860161252f565b92505060206128df8582860161252f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296b57808604811115612947576129466128e9565b5b60018516156129565780820291505b808102905061296485612916565b945061292b565b94509492505050565b5f826129835760019050612a3e565b81612990575f9050612a3e565b81600181146129a657600281146129b0576129df565b6001915050612a3e565b60ff8411156129c2576129c16128e9565b5b8360020a9150848211156129d9576129d86128e9565b5b50612a3e565b5060208310610133831016604e8410600b8410161715612a145782820a905083811115612a0f57612a0e6128e9565b5b612a3e565b612a218484846001612922565b92509050818404811115612a3857612a376128e9565b5b81810290505b9392505050565b5f612a4f82612543565b9150612a5a8361265f565b9250612a877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612974565b905092915050565b5f612a9982612543565b9150612aa483612543565b9250828202612ab281612543565b91508282048414831517612ac957612ac86128e9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b04602083612438565b9150612b0f82612ad0565b602082019050919050565b5f6020820190508181035f830152612b3181612af8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612b6f82612543565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ba157612ba06128e9565b5b600182019050919050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f612be0600b83612438565b9150612beb82612bac565b602082019050919050565b5f6020820190508181035f830152612c0d81612bd4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c48601783612438565b9150612c5382612c14565b602082019050919050565b5f6020820190508181035f830152612c7581612c3c565b9050919050565b5f81519050612c8a81612519565b92915050565b5f60208284031215612ca557612ca46124e1565b5b5f612cb284828501612c7c565b91505092915050565b5f604082019050612cce5f830185612883565b612cdb6020830184612883565b9392505050565b5f819050919050565b5f819050919050565b5f612d0e612d09612d0484612ce2565b612ceb565b612543565b9050919050565b612d1e81612cf4565b82525050565b5f60c082019050612d375f830189612883565b612d4460208301886125e7565b612d516040830187612d15565b612d5e6060830186612d15565b612d6b6080830185612883565b612d7860a08301846125e7565b979650505050505050565b5f81519050612d918161254c565b92915050565b5f805f60608486031215612dae57612dad6124e1565b5b5f612dbb86828701612d83565b9350506020612dcc86828701612d83565b9250506040612ddd86828701612d83565b9150509250925092565b5f604082019050612dfa5f830185612883565b612e0760208301846125e7565b9392505050565b612e17816125b4565b8114612e21575f80fd5b50565b5f81519050612e3281612e0e565b92915050565b5f60208284031215612e4d57612e4c6124e1565b5b5f612e5a84828501612e24565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ebd602483612438565b9150612ec882612e63565b604082019050919050565b5f6020820190508181035f830152612eea81612eb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4b602283612438565b9150612f5682612ef1565b604082019050919050565b5f6020820190508181035f830152612f7881612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fd9602583612438565b9150612fe482612f7f565b604082019050919050565b5f6020820190508181035f83015261300681612fcd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613067602383612438565b91506130728261300d565b604082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130f5602983612438565b91506131008261309b565b604082019050919050565b5f6020820190508181035f830152613122816130e9565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613183602483612438565b915061318e82613129565b604082019050919050565b5f6020820190508181035f8301526131b081613177565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131eb601983612438565b91506131f6826131b7565b602082019050919050565b5f6020820190508181035f830152613218816131df565b9050919050565b5f61322982612543565b915061323483612543565b925082820190508082111561324c5761324b6128e9565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613286601a83612438565b915061329182613252565b602082019050919050565b5f6020820190508181035f8301526132b38161327a565b9050919050565b5f6132c482612543565b91506132cf83612543565b92508282039050818111156132e7576132e66128e9565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61331f81612508565b82525050565b5f6133308383613316565b60208301905092915050565b5f602082019050919050565b5f613352826132ed565b61335c81856132f7565b935061336783613307565b805f5b8381101561339757815161337e8882613325565b97506133898361333c565b92505060018101905061336a565b5085935050505092915050565b5f60a0820190506133b75f8301886125e7565b6133c46020830187612d15565b81810360408301526133d68186613348565b90506133e56060830185612883565b6133f260808301846125e7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343382612543565b915061343e83612543565b92508261344e5761344d6133fc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134b3602183612438565b91506134be82613459565b604082019050919050565b5f6020820190508181035f8301526134e0816134a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61351b601b83612438565b9150613526826134e7565b602082019050919050565b5f6020820190508181035f8301526135488161350f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b0f80e18ef7492eae2e7aafb9dcec1db4d091570974c70af437c8961b92bc1f764736f6c63430008140033

Deployed Bytecode Sourcemap

3906:10212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5857:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6740:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6134:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6934:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6043:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12075:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13749:366;;;;;;;;;;;;;:::i;:::-;;12169:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6237:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2931:148;;;;;;;;;;;;;:::i;:::-;;12346:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11766:201;;;;;;;;;;;;;:::i;:::-;;4996:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2717:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5059:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5948:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6364:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5124:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4341:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12664:837;;;;;;;;;;;;;:::i;:::-;;6564:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5857:83;5894:13;5927:5;;;;;;;;;;;;;;;;;5920:12;;5857:83;:::o;6740:186::-;6840:4;6857:39;6866:12;:10;:12::i;:::-;6880:7;6889:6;6857:8;:39::i;:::-;6914:4;6907:11;;6740:186;;;;:::o;6134:95::-;6187:7;4800:1;4856:2;:15;;;;:::i;:::-;4843:10;:28;;;;:::i;:::-;6207:14;;6134:95;:::o;6934:446::-;7066:4;7083:36;7093:6;7101:9;7112:6;7083:9;:36::i;:::-;7130:220;7153:6;7174:12;:10;:12::i;:::-;7201:138;7257:6;7201:138;;;;;;;;;;;;;;;;;:11;:19;7213:6;7201:19;;;;;;;;;;;;;;;:33;7221:12;:10;:12::i;:::-;7201:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7130:8;:220::i;:::-;7368:4;7361:11;;6934:446;;;;;:::o;6043:83::-;6084:5;4800:1;6102:16;;6043:83;:::o;12075:86::-;12122:4;12146;:7;12151:1;12146:7;;;;;;;;;;;;;;;;;;;;;;;;;12139:14;;12075:86;;;:::o;13749:366::-;13815:10;;;;;;;;;;;13799:26;;:12;:10;:12::i;:::-;:26;;;13791:35;;;;;;13837:20;13860:24;13878:4;13860:9;:24::i;:::-;13837:47;;13914:1;13899:12;:16;13895:79;;;13932:30;13949:12;13932:16;:30::i;:::-;13895:79;13984:18;14005:21;13984:42;;14054:1;14041:10;:14;14037:71;;;14072:24;14085:10;14072:12;:24::i;:::-;14037:71;13780:335;;13749:366::o;12169:169::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12248:6:::1;12243:88;12264:5;:12;12260:1;:16;12243:88;;;12315:4;12298;:14;12303:5;12309:1;12303:8;;;;;;;;:::i;:::-;;;;;;;;12298:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12278:3;;;;;:::i;:::-;;;;12243:88;;;;12169:169:::0;:::o;6237:119::-;6303:7;6330:9;:18;6340:7;6330:18;;;;;;;;;;;;;;;;6323:25;;6237:119;;;:::o;2931:148::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3038:1:::1;3001:40;;3022:6;::::0;::::1;;;;;;;;3001:40;;;;;;;;;;;;3069:1;3052:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2931:148::o:0;12346:310::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12497:2:::1;12483:10;:16;;:37;;;;;12518:2;12503:11;:17;;12483:37;:52;;;;;12524:11;::::0;::::1;;;;;;;;12483:52;12461:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12600:10;12585:12;:25;;;;12637:11;12621:13;:27;;;;12346:310:::0;;:::o;11766:201::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4800:1:::1;4856:2;:15;;;;:::i;:::-;4843:10;:28;;;;:::i;:::-;11820:12;:22;;;;4800:1;4856:2;:15;;;;:::i;:::-;4843:10;:28;;;;:::i;:::-;11853:14;:24;;;;11911:5;11888:20;;:28;;;;;;;;;;;;;;;;;;11932:27;4800:1;4856:2;:15;;;;:::i;:::-;4843:10;:28;;;;:::i;:::-;11932:27;;;;;;:::i;:::-;;;;;;;;11766:201::o:0;4996:56::-;;;;:::o;2717:79::-;2755:7;2782:6;;;;;;;;;;;2775:13;;2717:79;:::o;5059:58::-;;;;:::o;5948:87::-;5987:13;6020:7;;;;;;;;;;;;;;;;;6013:14;;5948:87;:::o;6364:192::-;6467:4;6484:42;6494:12;:10;:12::i;:::-;6508:9;6519:6;6484:9;:42::i;:::-;6544:4;6537:11;;6364:192;;;;:::o;5124:59::-;;;;:::o;4341:40::-;;;;;;;;;;;;;:::o;12664:837::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12726:11:::1;::::0;::::1;;;;;;;;12725:12;12717:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12827:42;12776:15;;:104;;;;;;;;;;;;;;;;;;12891:58;12908:4;12923:15;;;;;;;;;;;4800:1;4856:2;:15;;;;:::i;:::-;4843:10;:28;;;;:::i;:::-;12891:8;:58::i;:::-;12994:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12976:55;;;13058:4;13082:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12976:143;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12960:13;;:159;;;;;;;;;;;;;;;;;;13130:15;;;;;;;;;;;:31;;;13169:21;13214:4;13234:24;13252:4;13234:9;:24::i;:::-;13273:1;13289::::0;13305:7:::1;:5;:7::i;:::-;13327:15;13130:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13371:13;;;;;;;;;;;13364:29;;;13402:15;;;;;;;;;;;13420:14;13364:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13460:4;13446:11;;:18;;;;;;;;;;;;;;;;;;13489:4;13475:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12664:837::o:0;6564:168::-;6670:7;6697:11;:18;6709:5;6697:18;;;;;;;;;;;;;;;:27;6716:7;6697:27;;;;;;;;;;;;;;;;6690:34;;6564:168;;;;:::o;252:98::-;305:7;332:10;325:17;;252:98;:::o;7388:335::-;7498:1;7481:19;;:5;:19;;;7473:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7579:1;7560:21;;:7;:21;;;7552:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7661:6;7631:11;:18;7643:5;7631:18;;;;;;;;;;;;;;;:27;7650:7;7631:27;;;;;;;;;;;;;;;:36;;;;7699:7;7683:32;;7692:5;7683:32;;;7708:6;7683:32;;;;;;:::i;:::-;;;;;;;;7388:335;;;:::o;7731:3295::-;7835:1;7819:18;;:4;:18;;;7811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7912:1;7898:16;;:2;:16;;;7890:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7982:1;7973:6;:10;7965:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8040:17;8084:7;:5;:7::i;:::-;8076:15;;:4;:15;;;;:32;;;;;8101:7;:5;:7::i;:::-;8095:13;;:2;:13;;;;8076:32;8072:2583;;;8134:4;:10;8139:4;8134:10;;;;;;;;;;;;;;;;;;;;;;;;;8133:11;:24;;;;;8149:4;:8;8154:2;8149:8;;;;;;;;;;;;;;;;;;;;;;;;;8148:9;8133:24;8125:33;;;;;;8179:20;;;;;;;;;;;8175:485;;;8260:15;;;;;;;;;;;8246:30;;:2;:30;;;;:83;;;;;8315:13;;;;;;;;;;;8301:28;;:2;:28;;;;8246:83;8220:425;;;8448:12;8406:28;:39;8435:9;8406:39;;;;;;;;;;;;;;;;:54;8372:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8613:12;8571:28;:39;8600:9;8571:39;;;;;;;;;;;;;;;:54;;;;8220:425;8175:485;8706:13;;;;;;;;;;;8698:21;;:4;:21;;;:72;;;;;8754:15;;;;;;;;;;;8740:30;;:2;:30;;;;8698:72;:116;;;;;8792:18;:22;8811:2;8792:22;;;;;;;;;;;;;;;;;;;;;;;;;8791:23;8698:116;8676:559;;;8867:12;;8857:6;:22;;8849:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8984:14;;8974:6;8958:13;8968:2;8958:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8928:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9103:18;;9091:9;;:30;9087:103;;;9155:14;9166:2;9155:10;:14::i;:::-;9154:15;9146:24;;;;;;9087:103;9208:9;;:11;;;;;;;;;:::i;:::-;;;;;;8676:559;9263:208;9467:3;9263:181;9327:15;;9315:9;;:27;9314:111;;9411:14;;9314:111;;;9371:12;;9314:111;9263:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;9251:220;;9496:13;;;;;;;;;;;9490:19;;:2;:19;;;:44;;;;;9529:4;9513:21;;:4;:21;;;;9490:44;9486:411;;;9573:12;;9563:6;:22;;9555:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9646:235;9877:3;9646:204;9718:16;;9706:9;;:28;9705:122;;9812:15;;9705:122;;;9767:13;;9705:122;9646:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9634:247;;9486:411;9913:28;9944:24;9962:4;9944:9;:24::i;:::-;9913:55;;10006:6;;;;;;;;;;;10005:7;:47;;;;;10039:13;;;;;;;;;;;10033:19;;:2;:19;;;10005:47;:79;;;;;10073:11;;;;;;;;;;;10005:79;:140;;;;;10128:17;;10105:20;:40;10005:140;:191;;;;;10178:18;;10166:9;;:30;10005:191;:240;;;;;10244:1;10217:10;:24;10228:12;10217:24;;;;;;;;;;;;:28;10005:240;9983:661;;;10310:51;10327:33;10331:6;10339:20;10327:3;:33::i;:::-;10310:16;:51::i;:::-;10434:1;10407:10;:24;10418:12;10407:24;;;;;;;;;;;;:28;;;;:::i;:::-;10380:10;:24;10391:12;10380:24;;;;;;;;;;;:55;;;;10454:26;10483:21;10454:50;;10548:1;10527:18;:22;10523:106;;;10574:35;10587:21;10574:12;:35::i;:::-;10523:106;10291:353;9983:661;8110:2545;8072:2583;10683:1;10671:9;:13;10667:172;;;10728:39;10757:9;10728;:24;10746:4;10728:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10701:9;:24;10719:4;10701:24;;;;;;;;;;;;;;;:66;;;;10810:4;10787:40;;10796:4;10787:40;;;10817:9;10787:40;;;;;;:::i;:::-;;;;;;;;10667:172;10867:27;10887:6;10867:9;:15;10877:4;10867:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10849:9;:15;10859:4;10849:15;;;;;;;;;;;;;;;:45;;;;10921:40;10939:21;10950:9;10939:6;:10;;:21;;;;:::i;:::-;10921:9;:13;10931:2;10921:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10905:9;:13;10915:2;10905:13;;;;;;;;;;;;;;;:56;;;;10992:2;10977:41;;10986:4;10977:41;;;10996:21;11007:9;10996:6;:10;;:21;;;;:::i;:::-;10977:41;;;;;;:::i;:::-;;;;;;;;7800:3226;7731:3295;;;:::o;1519:224::-;1639:7;1672:1;1667;:6;;1675:12;1659:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1699:9;1715:1;1711;:5;;;;:::i;:::-;1699:17;;1734:1;1727:8;;;1519:224;;;;;:::o;11149:609::-;5476:4;5467:6;;:13;;;;;;;;;;;;;;;;;;11246:1:::1;11231:11;:16:::0;11227:55;11264:7:::1;11227:55;11297:11;::::0;::::1;;;;;;;;11292:51:::0;11325:7:::1;11292:51;11353:21;11391:1;11377:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11353:40;;11422:4;11404;11409:1;11404:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11448:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11438:4;11443:1;11438:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11481:62;11498:4;11513:15;;;;;;;;;;;11531:11;11481:8;:62::i;:::-;11554:15;;;;;;;;;;;:66;;;11635:11;11661:1;11677:4;11704;11724:15;11554:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11216:542;5491:1;5512:5:::0;5503:6;;:14;;;;;;;;;;;;;;;;;;11149:609;:::o;11975:92::-;12032:10;;;;;;;;;;;:19;;:27;12052:6;12032:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11975:92;:::o;13546:195::-;13605:4;13622:12;13689:7;13677:20;13669:28;;13732:1;13725:4;:8;13718:15;;;13546:195;;;:::o;1751:246::-;1809:7;1838:1;1833;:6;1829:47;;1863:1;1856:8;;;;1829:47;1886:9;1902:1;1898;:5;;;;:::i;:::-;1886:17;;1931:1;1926;1922;:5;;;;:::i;:::-;:10;1914:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1988:1;1981:8;;;1751:246;;;;;:::o;2005:132::-;2063:7;2090:39;2094:1;2097;2090:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2083:46;;2005:132;;;;:::o;11034:107::-;11091:7;11123:1;11119;:5;11118:15;;11132:1;11118:15;;;11128:1;11118:15;11111:22;;11034:107;;;;:::o;1188:179::-;1246:7;1266:9;1282:1;1278;:5;;;;:::i;:::-;1266:17;;1307:1;1302;:6;;1294:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1358:1;1351:8;;;1188:179;;;;:::o;1375:136::-;1433:7;1460:43;1464:1;1467;1460:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1453:50;;1375:136;;;;:::o;2145:223::-;2265:7;2297:1;2293;:5;2300:12;2285:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2324:9;2340:1;2336;:5;;;;:::i;:::-;2324:17;;2359:1;2352:8;;;2145:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:118::-;8597:24;8615:5;8597:24;:::i;:::-;8592:3;8585:37;8510:118;;:::o;8634:222::-;8727:4;8765:2;8754:9;8750:18;8742:26;;8778:71;8846:1;8835:9;8831:17;8822:6;8778:71;:::i;:::-;8634:222;;;;:::o;8862:474::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:180::-;9390:77;9387:1;9380:88;9487:4;9484:1;9477:15;9511:4;9508:1;9501:15;9528:102;9570:8;9617:5;9614:1;9610:13;9589:34;;9528:102;;;:::o;9636:848::-;9697:5;9704:4;9728:6;9719:15;;9752:5;9743:14;;9766:712;9787:1;9777:8;9774:15;9766:712;;;9882:4;9877:3;9873:14;9867:4;9864:24;9861:50;;;9891:18;;:::i;:::-;9861:50;9941:1;9931:8;9927:16;9924:451;;;10356:4;10349:5;10345:16;10336:25;;9924:451;10406:4;10400;10396:15;10388:23;;10436:32;10459:8;10436:32;:::i;:::-;10424:44;;9766:712;;;9636:848;;;;;;;:::o;10490:1073::-;10544:5;10735:8;10725:40;;10756:1;10747:10;;10758:5;;10725:40;10784:4;10774:36;;10801:1;10792:10;;10803:5;;10774:36;10870:4;10918:1;10913:27;;;;10954:1;10949:191;;;;10863:277;;10913:27;10931:1;10922:10;;10933:5;;;10949:191;10994:3;10984:8;10981:17;10978:43;;;11001:18;;:::i;:::-;10978:43;11050:8;11047:1;11043:16;11034:25;;11085:3;11078:5;11075:14;11072:40;;;11092:18;;:::i;:::-;11072:40;11125:5;;;10863:277;;11249:2;11239:8;11236:16;11230:3;11224:4;11221:13;11217:36;11199:2;11189:8;11186:16;11181:2;11175:4;11172:12;11168:35;11152:111;11149:246;;;11305:8;11299:4;11295:19;11286:28;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;11149:246;11420:42;11458:3;11448:8;11442:4;11439:1;11420:42;:::i;:::-;11405:57;;;;11494:4;11489:3;11485:14;11478:5;11475:25;11472:51;;;11503:18;;:::i;:::-;11472:51;11552:4;11545:5;11541:16;11532:25;;10490:1073;;;;;;:::o;11569:281::-;11627:5;11651:23;11669:4;11651:23;:::i;:::-;11643:31;;11695:25;11711:8;11695:25;:::i;:::-;11683:37;;11739:104;11776:66;11766:8;11760:4;11739:104;:::i;:::-;11730:113;;11569:281;;;;:::o;11856:410::-;11896:7;11919:20;11937:1;11919:20;:::i;:::-;11914:25;;11953:20;11971:1;11953:20;:::i;:::-;11948:25;;12008:1;12005;12001:9;12030:30;12048:11;12030:30;:::i;:::-;12019:41;;12209:1;12200:7;12196:15;12193:1;12190:22;12170:1;12163:9;12143:83;12120:139;;12239:18;;:::i;:::-;12120:139;11904:362;11856:410;;;;:::o;12272:182::-;12412:34;12408:1;12400:6;12396:14;12389:58;12272:182;:::o;12460:366::-;12602:3;12623:67;12687:2;12682:3;12623:67;:::i;:::-;12616:74;;12699:93;12788:3;12699:93;:::i;:::-;12817:2;12812:3;12808:12;12801:19;;12460:366;;;:::o;12832:419::-;12998:4;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;12832:419;;;:::o;13257:180::-;13305:77;13302:1;13295:88;13402:4;13399:1;13392:15;13426:4;13423:1;13416:15;13443:233;13482:3;13505:24;13523:5;13505:24;:::i;:::-;13496:33;;13551:66;13544:5;13541:77;13538:103;;13621:18;;:::i;:::-;13538:103;13668:1;13661:5;13657:13;13650:20;;13443:233;;;:::o;13682:161::-;13822:13;13818:1;13810:6;13806:14;13799:37;13682:161;:::o;13849:366::-;13991:3;14012:67;14076:2;14071:3;14012:67;:::i;:::-;14005:74;;14088:93;14177:3;14088:93;:::i;:::-;14206:2;14201:3;14197:12;14190:19;;13849:366;;;:::o;14221:419::-;14387:4;14425:2;14414:9;14410:18;14402:26;;14474:9;14468:4;14464:20;14460:1;14449:9;14445:17;14438:47;14502:131;14628:4;14502:131;:::i;:::-;14494:139;;14221:419;;;:::o;14646:173::-;14786:25;14782:1;14774:6;14770:14;14763:49;14646:173;:::o;14825:366::-;14967:3;14988:67;15052:2;15047:3;14988:67;:::i;:::-;14981:74;;15064:93;15153:3;15064:93;:::i;:::-;15182:2;15177:3;15173:12;15166:19;;14825:366;;;:::o;15197:419::-;15363:4;15401:2;15390:9;15386:18;15378:26;;15450:9;15444:4;15440:20;15436:1;15425:9;15421:17;15414:47;15478:131;15604:4;15478:131;:::i;:::-;15470:139;;15197:419;;;:::o;15622:143::-;15679:5;15710:6;15704:13;15695:22;;15726:33;15753:5;15726:33;:::i;:::-;15622:143;;;;:::o;15771:351::-;15841:6;15890:2;15878:9;15869:7;15865:23;15861:32;15858:119;;;15896:79;;:::i;:::-;15858:119;16016:1;16041:64;16097:7;16088:6;16077:9;16073:22;16041:64;:::i;:::-;16031:74;;15987:128;15771:351;;;;:::o;16128:332::-;16249:4;16287:2;16276:9;16272:18;16264:26;;16300:71;16368:1;16357:9;16353:17;16344:6;16300:71;:::i;:::-;16381:72;16449:2;16438:9;16434:18;16425:6;16381:72;:::i;:::-;16128:332;;;;;:::o;16466:85::-;16511:7;16540:5;16529:16;;16466:85;;;:::o;16557:60::-;16585:3;16606:5;16599:12;;16557:60;;;:::o;16623:158::-;16681:9;16714:61;16732:42;16741:32;16767:5;16741:32;:::i;:::-;16732:42;:::i;:::-;16714:61;:::i;:::-;16701:74;;16623:158;;;:::o;16787:147::-;16882:45;16921:5;16882:45;:::i;:::-;16877:3;16870:58;16787:147;;:::o;16940:807::-;17189:4;17227:3;17216:9;17212:19;17204:27;;17241:71;17309:1;17298:9;17294:17;17285:6;17241:71;:::i;:::-;17322:72;17390:2;17379:9;17375:18;17366:6;17322:72;:::i;:::-;17404:80;17480:2;17469:9;17465:18;17456:6;17404:80;:::i;:::-;17494;17570:2;17559:9;17555:18;17546:6;17494:80;:::i;:::-;17584:73;17652:3;17641:9;17637:19;17628:6;17584:73;:::i;:::-;17667;17735:3;17724:9;17720:19;17711:6;17667:73;:::i;:::-;16940:807;;;;;;;;;:::o;17753:143::-;17810:5;17841:6;17835:13;17826:22;;17857:33;17884:5;17857:33;:::i;:::-;17753:143;;;;:::o;17902:663::-;17990:6;17998;18006;18055:2;18043:9;18034:7;18030:23;18026:32;18023:119;;;18061:79;;:::i;:::-;18023:119;18181:1;18206:64;18262:7;18253:6;18242:9;18238:22;18206:64;:::i;:::-;18196:74;;18152:128;18319:2;18345:64;18401:7;18392:6;18381:9;18377:22;18345:64;:::i;:::-;18335:74;;18290:129;18458:2;18484:64;18540:7;18531:6;18520:9;18516:22;18484:64;:::i;:::-;18474:74;;18429:129;17902:663;;;;;:::o;18571:332::-;18692:4;18730:2;18719:9;18715:18;18707:26;;18743:71;18811:1;18800:9;18796:17;18787:6;18743:71;:::i;:::-;18824:72;18892:2;18881:9;18877:18;18868:6;18824:72;:::i;:::-;18571:332;;;;;:::o;18909:116::-;18979:21;18994:5;18979:21;:::i;:::-;18972:5;18969:32;18959:60;;19015:1;19012;19005:12;18959:60;18909:116;:::o;19031:137::-;19085:5;19116:6;19110:13;19101:22;;19132:30;19156:5;19132:30;:::i;:::-;19031:137;;;;:::o;19174:345::-;19241:6;19290:2;19278:9;19269:7;19265:23;19261:32;19258:119;;;19296:79;;:::i;:::-;19258:119;19416:1;19441:61;19494:7;19485:6;19474:9;19470:22;19441:61;:::i;:::-;19431:71;;19387:125;19174:345;;;;:::o;19525:223::-;19665:34;19661:1;19653:6;19649:14;19642:58;19734:6;19729:2;19721:6;19717:15;19710:31;19525:223;:::o;19754:366::-;19896:3;19917:67;19981:2;19976:3;19917:67;:::i;:::-;19910:74;;19993:93;20082:3;19993:93;:::i;:::-;20111:2;20106:3;20102:12;20095:19;;19754:366;;;:::o;20126:419::-;20292:4;20330:2;20319:9;20315:18;20307:26;;20379:9;20373:4;20369:20;20365:1;20354:9;20350:17;20343:47;20407:131;20533:4;20407:131;:::i;:::-;20399:139;;20126:419;;;:::o;20551:221::-;20691:34;20687:1;20679:6;20675:14;20668:58;20760:4;20755:2;20747:6;20743:15;20736:29;20551:221;:::o;20778:366::-;20920:3;20941:67;21005:2;21000:3;20941:67;:::i;:::-;20934:74;;21017:93;21106:3;21017:93;:::i;:::-;21135:2;21130:3;21126:12;21119:19;;20778:366;;;:::o;21150:419::-;21316:4;21354:2;21343:9;21339:18;21331:26;;21403:9;21397:4;21393:20;21389:1;21378:9;21374:17;21367:47;21431:131;21557:4;21431:131;:::i;:::-;21423:139;;21150:419;;;:::o;21575:224::-;21715:34;21711:1;21703:6;21699:14;21692:58;21784:7;21779:2;21771:6;21767:15;21760:32;21575:224;:::o;21805:366::-;21947:3;21968:67;22032:2;22027:3;21968:67;:::i;:::-;21961:74;;22044:93;22133:3;22044:93;:::i;:::-;22162:2;22157:3;22153:12;22146:19;;21805:366;;;:::o;22177:419::-;22343:4;22381:2;22370:9;22366:18;22358:26;;22430:9;22424:4;22420:20;22416:1;22405:9;22401:17;22394:47;22458:131;22584:4;22458:131;:::i;:::-;22450:139;;22177:419;;;:::o;22602:222::-;22742:34;22738:1;22730:6;22726:14;22719:58;22811:5;22806:2;22798:6;22794:15;22787:30;22602:222;:::o;22830:366::-;22972:3;22993:67;23057:2;23052:3;22993:67;:::i;:::-;22986:74;;23069:93;23158:3;23069:93;:::i;:::-;23187:2;23182:3;23178:12;23171:19;;22830:366;;;:::o;23202:419::-;23368:4;23406:2;23395:9;23391:18;23383:26;;23455:9;23449:4;23445:20;23441:1;23430:9;23426:17;23419:47;23483:131;23609:4;23483:131;:::i;:::-;23475:139;;23202:419;;;:::o;23627:228::-;23767:34;23763:1;23755:6;23751:14;23744:58;23836:11;23831:2;23823:6;23819:15;23812:36;23627:228;:::o;23861:366::-;24003:3;24024:67;24088:2;24083:3;24024:67;:::i;:::-;24017:74;;24100:93;24189:3;24100:93;:::i;:::-;24218:2;24213:3;24209:12;24202:19;;23861:366;;;:::o;24233:419::-;24399:4;24437:2;24426:9;24422:18;24414:26;;24486:9;24480:4;24476:20;24472:1;24461:9;24457:17;24450:47;24514:131;24640:4;24514:131;:::i;:::-;24506:139;;24233:419;;;:::o;24658:223::-;24798:34;24794:1;24786:6;24782:14;24775:58;24867:6;24862:2;24854:6;24850:15;24843:31;24658:223;:::o;24887:366::-;25029:3;25050:67;25114:2;25109:3;25050:67;:::i;:::-;25043:74;;25126:93;25215:3;25126:93;:::i;:::-;25244:2;25239:3;25235:12;25228:19;;24887:366;;;:::o;25259:419::-;25425:4;25463:2;25452:9;25448:18;25440:26;;25512:9;25506:4;25502:20;25498:1;25487:9;25483:17;25476:47;25540:131;25666:4;25540:131;:::i;:::-;25532:139;;25259:419;;;:::o;25684:175::-;25824:27;25820:1;25812:6;25808:14;25801:51;25684:175;:::o;25865:366::-;26007:3;26028:67;26092:2;26087:3;26028:67;:::i;:::-;26021:74;;26104:93;26193:3;26104:93;:::i;:::-;26222:2;26217:3;26213:12;26206:19;;25865:366;;;:::o;26237:419::-;26403:4;26441:2;26430:9;26426:18;26418:26;;26490:9;26484:4;26480:20;26476:1;26465:9;26461:17;26454:47;26518:131;26644:4;26518:131;:::i;:::-;26510:139;;26237:419;;;:::o;26662:191::-;26702:3;26721:20;26739:1;26721:20;:::i;:::-;26716:25;;26755:20;26773:1;26755:20;:::i;:::-;26750:25;;26798:1;26795;26791:9;26784:16;;26819:3;26816:1;26813:10;26810:36;;;26826:18;;:::i;:::-;26810:36;26662:191;;;;:::o;26859:176::-;26999:28;26995:1;26987:6;26983:14;26976:52;26859:176;:::o;27041:366::-;27183:3;27204:67;27268:2;27263:3;27204:67;:::i;:::-;27197:74;;27280:93;27369:3;27280:93;:::i;:::-;27398:2;27393:3;27389:12;27382:19;;27041:366;;;:::o;27413:419::-;27579:4;27617:2;27606:9;27602:18;27594:26;;27666:9;27660:4;27656:20;27652:1;27641:9;27637:17;27630:47;27694:131;27820:4;27694:131;:::i;:::-;27686:139;;27413:419;;;:::o;27838:194::-;27878:4;27898:20;27916:1;27898:20;:::i;:::-;27893:25;;27932:20;27950:1;27932:20;:::i;:::-;27927:25;;27976:1;27973;27969:9;27961:17;;28000:1;27994:4;27991:11;27988:37;;;28005:18;;:::i;:::-;27988:37;27838:194;;;;:::o;28038:114::-;28105:6;28139:5;28133:12;28123:22;;28038:114;;;:::o;28158:184::-;28257:11;28291:6;28286:3;28279:19;28331:4;28326:3;28322:14;28307:29;;28158:184;;;;:::o;28348:132::-;28415:4;28438:3;28430:11;;28468:4;28463:3;28459:14;28451:22;;28348:132;;;:::o;28486:108::-;28563:24;28581:5;28563:24;:::i;:::-;28558:3;28551:37;28486:108;;:::o;28600:179::-;28669:10;28690:46;28732:3;28724:6;28690:46;:::i;:::-;28768:4;28763:3;28759:14;28745:28;;28600:179;;;;:::o;28785:113::-;28855:4;28887;28882:3;28878:14;28870:22;;28785:113;;;:::o;28934:732::-;29053:3;29082:54;29130:5;29082:54;:::i;:::-;29152:86;29231:6;29226:3;29152:86;:::i;:::-;29145:93;;29262:56;29312:5;29262:56;:::i;:::-;29341:7;29372:1;29357:284;29382:6;29379:1;29376:13;29357:284;;;29458:6;29452:13;29485:63;29544:3;29529:13;29485:63;:::i;:::-;29478:70;;29571:60;29624:6;29571:60;:::i;:::-;29561:70;;29417:224;29404:1;29401;29397:9;29392:14;;29357:284;;;29361:14;29657:3;29650:10;;29058:608;;;28934:732;;;;:::o;29672:831::-;29935:4;29973:3;29962:9;29958:19;29950:27;;29987:71;30055:1;30044:9;30040:17;30031:6;29987:71;:::i;:::-;30068:80;30144:2;30133:9;30129:18;30120:6;30068:80;:::i;:::-;30195:9;30189:4;30185:20;30180:2;30169:9;30165:18;30158:48;30223:108;30326:4;30317:6;30223:108;:::i;:::-;30215:116;;30341:72;30409:2;30398:9;30394:18;30385:6;30341:72;:::i;:::-;30423:73;30491:3;30480:9;30476:19;30467:6;30423:73;:::i;:::-;29672:831;;;;;;;;:::o;30509:180::-;30557:77;30554:1;30547:88;30654:4;30651:1;30644:15;30678:4;30675:1;30668:15;30695:185;30735:1;30752:20;30770:1;30752:20;:::i;:::-;30747:25;;30786:20;30804:1;30786:20;:::i;:::-;30781:25;;30825:1;30815:35;;30830:18;;:::i;:::-;30815:35;30872:1;30869;30865:9;30860:14;;30695:185;;;;:::o;30886:220::-;31026:34;31022:1;31014:6;31010:14;31003:58;31095:3;31090:2;31082:6;31078:15;31071:28;30886:220;:::o;31112:366::-;31254:3;31275:67;31339:2;31334:3;31275:67;:::i;:::-;31268:74;;31351:93;31440:3;31351:93;:::i;:::-;31469:2;31464:3;31460:12;31453:19;;31112:366;;;:::o;31484:419::-;31650:4;31688:2;31677:9;31673:18;31665:26;;31737:9;31731:4;31727:20;31723:1;31712:9;31708:17;31701:47;31765:131;31891:4;31765:131;:::i;:::-;31757:139;;31484:419;;;:::o;31909:177::-;32049:29;32045:1;32037:6;32033:14;32026:53;31909:177;:::o;32092:366::-;32234:3;32255:67;32319:2;32314:3;32255:67;:::i;:::-;32248:74;;32331:93;32420:3;32331:93;:::i;:::-;32449:2;32444:3;32440:12;32433:19;;32092:366;;;:::o;32464:419::-;32630:4;32668:2;32657:9;32653:18;32645:26;;32717:9;32711:4;32707:20;32703:1;32692:9;32688:17;32681:47;32745:131;32871:4;32745:131;:::i;:::-;32737:139;;32464:419;;;:::o

Swarm Source

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