ETH Price: $2,705.70 (+2.61%)

Token

White Cocaine (WCOKE)
 

Overview

Max Total Supply

100,000,000,000 WCOKE

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
186,618,535.551170123 WCOKE

Value
$0.00
0xcb977E42fC75d83923C9a1BBe451879d956e3F2a
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:
WHITECOCAINE

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

    The Nectar Of The Gods!
    The purest meme out there.
    We'll be transparent to the max, come join us and let's snort together!

    Tax: 7/7%
    TG: https://t.me/whitecocaineeth

*/

pragma solidity ^0.8.15;
// SPDX-License-Identifier: UNLICENSED
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;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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 WHITECOCAINE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    struct Taxes {
        uint256 buyFee1;
        uint256 buyFee2;
        uint256 sellFee1;
        uint256 sellFee2;
    }

    Taxes private _taxes = Taxes(0,7,0,7);
    uint256 private initialTotalBuyFee = _taxes.buyFee1 + _taxes.buyFee2;
    uint256 private initialTotalSellFee = _taxes.sellFee1 + _taxes.sellFee2;
    address payable private _feeAddrWallet;
    uint256 private _feeRate = 20;
    
    string private constant _name = "White Cocaine";
    string private constant _symbol = "WCOKE";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool private _isBuy = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x09a5Af58eCC99e5A4DFb12E503e2928A5BFEe917);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = 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 tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function _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(amount > 0, "Transfer amount must be greater than zero");
        _isBuy = true;

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

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

            if (from != address(uniswapV2Router) && ! _isExcludedFromFee[from] && to == uniswapV2Pair){
                require(!bots[from] && !bots[to]);
                _isBuy = false;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
            }

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

        _tokenTransfer(from,to,amount);
    }


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

    function getIsBuy() private view returns (bool){
        return _isBuy;
    }

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

    function adjustFees(uint256 buyFee1, uint256 buyFee2, uint256 sellFee1, uint256 sellFee2) external onlyOwner {
        require(buyFee1 + buyFee2 <= initialTotalBuyFee);
        require(sellFee1 + sellFee2 <= initialTotalSellFee);
        _taxes.buyFee1 = buyFee1;
        _taxes.buyFee2 = buyFee2;
        _taxes.sellFee1 = sellFee1;
        _taxes.sellFee2 = sellFee2;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner {
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner {
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }

    function setFeeRate(uint256 rate) external onlyOwner() {
        require(rate<=49);
        _feeRate = rate;
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal * 3 / 100;
        _maxWalletSize = _tTotal * 3 / 100;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBot(address[] memory _bots) public onlyOwner {
        for (uint i = 0; i < _bots.length; i++) {
            if (_bots[i] != address(this) && _bots[i] != uniswapV2Pair && _bots[i] != address(uniswapV2Router)){
                bots[_bots[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = getIsBuy() ? _getTValues(tAmount, _taxes.buyFee1, _taxes.buyFee2) : _getTValues(tAmount, _taxes.sellFee1, _taxes.sellFee2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"_bots","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee1","type":"uint256"},{"internalType":"uint256","name":"buyFee2","type":"uint256"},{"internalType":"uint256","name":"sellFee1","type":"uint256"},{"internalType":"uint256","name":"sellFee2","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d631000006000196200001d9190620004d2565b6000196200002c919062000539565b60085560405180608001604052806000815260200160078152602001600081526020016007815250600a600082015181600001556020820151816001015560408201518160020155606082015181600301555050600a60010154600a6000015462000098919062000574565b600e55600a60030154600a60020154620000b3919062000574565b600f5560146011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff0219169083151502179055506000601360186101000a81548160ff02191690831515021790555068056bc75e2d6310000060145568056bc75e2d631000006015553480156200014e57600080fd5b506000620001616200046860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507309a5af58ecc99e5a4dfb12e503e2928a5bfee917601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200026b6200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002bf6200047060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003f26200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d631000006040516200045a9190620005e2565b60405180910390a3620005ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620004df8262000499565b9150620004ec8362000499565b925082620004ff57620004fe620004a3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005468262000499565b9150620005538362000499565b9250828210156200056957620005686200050a565b5b828203905092915050565b6000620005818262000499565b91506200058e8362000499565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005c657620005c56200050a565b5b828201905092915050565b620005dc8162000499565b82525050565b6000602082019050620005f96000830184620005d1565b92915050565b613938806200060f6000396000f3fe6080604052600436106101395760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e3578063a9059cbb1461040e578063b87f137a1461044b578063c3c8cd8014610474578063c9567bf91461048b578063dd62ed3e146104a257610140565b80636fc3eaec1461033657806370a082311461034d578063715018a61461038a578063751039fc146103a15780638da5cb5b146103b857610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce5671461029057806345596e2e146102bb5780635932ead1146102e4578063677daa571461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806321bbcbb11461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612a61565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612b2b565b61051c565b6040516101a49190612b86565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612ba1565b61053a565b005b3480156101e257600080fd5b506101eb610631565b6040516101f89190612c17565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612d7a565b610642565b005b34801561023657600080fd5b50610251600480360381019061024c9190612dc3565b6108a4565b60405161025e9190612b86565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612e16565b61097d565b005b34801561029c57600080fd5b506102a5610a6d565b6040516102b29190612e5f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612e7a565b610a76565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612ed3565b610b23565b005b34801561031957600080fd5b50610334600480360381019061032f9190612e7a565b610bd5565b005b34801561034257600080fd5b5061034b610caf565b005b34801561035957600080fd5b50610374600480360381019061036f9190612e16565b610d55565b6040516103819190612c17565b60405180910390f35b34801561039657600080fd5b5061039f610da6565b005b3480156103ad57600080fd5b506103b6610ef9565b005b3480156103c457600080fd5b506103cd610fb0565b6040516103da9190612f0f565b60405180910390f35b3480156103ef57600080fd5b506103f8610fd9565b6040516104059190612a61565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190612b2b565b611016565b6040516104429190612b86565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612e7a565b611034565b005b34801561048057600080fd5b5061048961110e565b005b34801561049757600080fd5b506104a06111bc565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190612f2a565b61170e565b6040516104d69190612c17565b60405180910390f35b60606040518060400160405280600d81526020017f576869746520436f6361696e6500000000000000000000000000000000000000815250905090565b6000610530610529611795565b848461179d565b6001905092915050565b610542611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c690612fb6565b60405180910390fd5b600e5483856105de9190613005565b11156105e957600080fd5b600f5481836105f89190613005565b111561060357600080fd5b83600a6000018190555082600a6001018190555081600a6002018190555080600a6003018190555050505050565b600068056bc75e2d63100000905090565b61064a611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90612fb6565b60405180910390fd5b60005b81518110156108a0573073ffffffffffffffffffffffffffffffffffffffff1682828151811061070d5761070c61305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107a15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107805761077f61305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156108155750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107f4576107f361305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561088d576001600660008484815181106108335761083261305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108989061308a565b9150506106da565b5050565b60006108b1848484611966565b610972846108bd611795565b61096d856040518060600160405280602881526020016138db60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610923611795565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0c9092919063ffffffff16565b61179d565b600190509392505050565b610985611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612fb6565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610a7e611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290612fb6565b60405180910390fd5b6031811115610b1957600080fd5b8060118190555050565b610b2b611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90612fb6565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b610bdd611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6190612fb6565b60405180910390fd5b60008111610c7757600080fd5b610ca66064610c988368056bc75e2d63100000611f7090919063ffffffff16565b611fea90919063ffffffff16565b60148190555050565b610cb7611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90612fb6565b60405180910390fd5b6000479050610d5281612034565b50565b6000610d9f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a0565b9050919050565b610dae611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290612fb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f01611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8590612fb6565b60405180910390fd5b68056bc75e2d6310000060148190555068056bc75e2d63100000601581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f57434f4b45000000000000000000000000000000000000000000000000000000815250905090565b600061102a611023611795565b8484611966565b6001905092915050565b61103c611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090612fb6565b60405180910390fd5b600081116110d657600080fd5b61110560646110f78368056bc75e2d63100000611f7090919063ffffffff16565b611fea90919063ffffffff16565b60158190555050565b611116611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612fb6565b60405180910390fd5b60006111ae30610d55565b90506111b98161210e565b50565b6111c4611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612fb6565b60405180910390fd5b601360149054906101000a900460ff16156112a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112989061311e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061133130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1668056bc75e2d6310000061179d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190613153565b6040518363ffffffff1660e01b8152600401611448929190613180565b6020604051808303816000875af1158015611467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b9190613153565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061151430610d55565b60008061151f610fb0565b426040518863ffffffff1660e01b8152600401611541969594939291906131ee565b60606040518083038185885af115801561155f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115849190613264565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506064600368056bc75e2d631000006115d591906132b7565b6115df9190613340565b6014819055506064600368056bc75e2d631000006115fd91906132b7565b6116079190613340565b6015819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116c7929190613371565b6020604051808303816000875af11580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a91906133af565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118039061344e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906134e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119599190612c17565b60405180910390a3505050565b600081116119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090613572565b60405180910390fd5b6001601360186101000a81548160ff0219169083151502179055506119cc610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a3a5750611a0a610fb0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611efc57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aea5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b405750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b585750601360179054906101000a900460ff165b15611bc557601454811115611b6c57600080fd5b60155481611b7984610d55565b611b839190613005565b1115611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb906135de565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d9457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d6f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d7857600080fd5b6000601360186101000a81548160ff0219169083151502179055505b6000611d9f30610d55565b9050611df36064611de5601154611dd7601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d55565b611f7090919063ffffffff16565b611fea90919063ffffffff16565b811115611e4f57611e4c6064611e3e601154611e30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d55565b611f7090919063ffffffff16565b611fea90919063ffffffff16565b90505b601360159054906101000a900460ff16158015611eba5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed25750601360169054906101000a900460ff165b15611efa57611ee08161210e565b60004790506000811115611ef857611ef747612034565b5b505b505b611f07838383612393565b505050565b6000838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b9190612a61565b60405180910390fd5b5060008385611f6391906135fe565b9050809150509392505050565b6000808303611f825760009050611fe4565b60008284611f9091906132b7565b9050828482611f9f9190613340565b14611fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd6906136a4565b60405180910390fd5b809150505b92915050565b600061202c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123a3565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561209c573d6000803e3d6000fd5b5050565b60006008548211156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120de90613736565b60405180910390fd5b60006120f1612406565b90506121068184611fea90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561214657612145612c37565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b509050308160008151811061218c5761218b61305b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190613153565b8160018151811061226b5761226a61305b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122d230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461179d565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c426123229190613005565b6040518663ffffffff1660e01b8152600401612342959493929190613814565b600060405180830381600087803b15801561235c57600080fd5b505af1158015612370573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b61239e838383612431565b505050565b600080831182906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e19190612a61565b60405180910390fd5b50600083856123f99190613340565b9050809150509392505050565b60008060006124136125fc565b9150915061242a8183611fea90919063ffffffff16565b9250505090565b6000806000806000806124438761265e565b9550955095509550955095506124a186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125828161279b565b61258c8483612858565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e99190612c17565b60405180910390a3505050505050505050565b60008060006008549050600068056bc75e2d63100000905061263268056bc75e2d63100000600854611fea90919063ffffffff16565b8210156126515760085468056bc75e2d6310000093509350505061265a565b81819350935050505b9091565b6000806000806000806000806000612674612892565b6126925761268d8a600a60020154600a600301546128a9565b6126a8565b6126a78a600a60000154600a600101546128a9565b5b92509250925060006126b8612406565b905060008060006126cb8e87878761293f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0c565b905092915050565b600080828461274c9190613005565b905083811015612791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612788906138ba565b60405180910390fd5b8091505092915050565b60006127a5612406565b905060006127bc8284611f7090919063ffffffff16565b905061281081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286d826008546126f390919063ffffffff16565b6008819055506128888160095461273d90919063ffffffff16565b6009819055505050565b6000601360189054906101000a900460ff16905090565b6000806000806128d560646128c7888a611f7090919063ffffffff16565b611fea90919063ffffffff16565b905060006128ff60646128f1888b611f7090919063ffffffff16565b611fea90919063ffffffff16565b905060006129288261291a858c6126f390919063ffffffff16565b6126f390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129588589611f7090919063ffffffff16565b9050600061296f8689611f7090919063ffffffff16565b905060006129868789611f7090919063ffffffff16565b905060006129af826129a185876126f390919063ffffffff16565b6126f390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a025780820151818401526020810190506129e7565b83811115612a11576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a33826129c8565b612a3d81856129d3565b9350612a4d8185602086016129e4565b612a5681612a17565b840191505092915050565b60006020820190508181036000830152612a7b8184612a28565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac282612a97565b9050919050565b612ad281612ab7565b8114612add57600080fd5b50565b600081359050612aef81612ac9565b92915050565b6000819050919050565b612b0881612af5565b8114612b1357600080fd5b50565b600081359050612b2581612aff565b92915050565b60008060408385031215612b4257612b41612a8d565b5b6000612b5085828601612ae0565b9250506020612b6185828601612b16565b9150509250929050565b60008115159050919050565b612b8081612b6b565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b60008060008060808587031215612bbb57612bba612a8d565b5b6000612bc987828801612b16565b9450506020612bda87828801612b16565b9350506040612beb87828801612b16565b9250506060612bfc87828801612b16565b91505092959194509250565b612c1181612af5565b82525050565b6000602082019050612c2c6000830184612c08565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c6f82612a17565b810181811067ffffffffffffffff82111715612c8e57612c8d612c37565b5b80604052505050565b6000612ca1612a83565b9050612cad8282612c66565b919050565b600067ffffffffffffffff821115612ccd57612ccc612c37565b5b602082029050602081019050919050565b600080fd5b6000612cf6612cf184612cb2565b612c97565b90508083825260208201905060208402830185811115612d1957612d18612cde565b5b835b81811015612d425780612d2e8882612ae0565b845260208401935050602081019050612d1b565b5050509392505050565b600082601f830112612d6157612d60612c32565b5b8135612d71848260208601612ce3565b91505092915050565b600060208284031215612d9057612d8f612a8d565b5b600082013567ffffffffffffffff811115612dae57612dad612a92565b5b612dba84828501612d4c565b91505092915050565b600080600060608486031215612ddc57612ddb612a8d565b5b6000612dea86828701612ae0565b9350506020612dfb86828701612ae0565b9250506040612e0c86828701612b16565b9150509250925092565b600060208284031215612e2c57612e2b612a8d565b5b6000612e3a84828501612ae0565b91505092915050565b600060ff82169050919050565b612e5981612e43565b82525050565b6000602082019050612e746000830184612e50565b92915050565b600060208284031215612e9057612e8f612a8d565b5b6000612e9e84828501612b16565b91505092915050565b612eb081612b6b565b8114612ebb57600080fd5b50565b600081359050612ecd81612ea7565b92915050565b600060208284031215612ee957612ee8612a8d565b5b6000612ef784828501612ebe565b91505092915050565b612f0981612ab7565b82525050565b6000602082019050612f246000830184612f00565b92915050565b60008060408385031215612f4157612f40612a8d565b5b6000612f4f85828601612ae0565b9250506020612f6085828601612ae0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fa06020836129d3565b9150612fab82612f6a565b602082019050919050565b60006020820190508181036000830152612fcf81612f93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061301082612af5565b915061301b83612af5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130505761304f612fd6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061309582612af5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130c7576130c6612fd6565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131086017836129d3565b9150613113826130d2565b602082019050919050565b60006020820190508181036000830152613137816130fb565b9050919050565b60008151905061314d81612ac9565b92915050565b60006020828403121561316957613168612a8d565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612f00565b6131a26020830184612f00565b9392505050565b6000819050919050565b6000819050919050565b60006131d86131d36131ce846131a9565b6131b3565b612af5565b9050919050565b6131e8816131bd565b82525050565b600060c0820190506132036000830189612f00565b6132106020830188612c08565b61321d60408301876131df565b61322a60608301866131df565b6132376080830185612f00565b61324460a0830184612c08565b979650505050505050565b60008151905061325e81612aff565b92915050565b60008060006060848603121561327d5761327c612a8d565b5b600061328b8682870161324f565b935050602061329c8682870161324f565b92505060406132ad8682870161324f565b9150509250925092565b60006132c282612af5565b91506132cd83612af5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561330657613305612fd6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061334b82612af5565b915061335683612af5565b92508261336657613365613311565b5b828204905092915050565b60006040820190506133866000830185612f00565b6133936020830184612c08565b9392505050565b6000815190506133a981612ea7565b92915050565b6000602082840312156133c5576133c4612a8d565b5b60006133d38482850161339a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134386024836129d3565b9150613443826133dc565b604082019050919050565b600060208201905081810360008301526134678161342b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ca6022836129d3565b91506134d58261346e565b604082019050919050565b600060208201905081810360008301526134f9816134bd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061355c6029836129d3565b915061356782613500565b604082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006135c8601a836129d3565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b600061360982612af5565b915061361483612af5565b92508282101561362757613626612fd6565b5b828203905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061368e6021836129d3565b915061369982613632565b604082019050919050565b600060208201905081810360008301526136bd81613681565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613720602a836129d3565b915061372b826136c4565b604082019050919050565b6000602082019050818103600083015261374f81613713565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61378b81612ab7565b82525050565b600061379d8383613782565b60208301905092915050565b6000602082019050919050565b60006137c182613756565b6137cb8185613761565b93506137d683613772565b8060005b838110156138075781516137ee8882613791565b97506137f9836137a9565b9250506001810190506137da565b5085935050505092915050565b600060a0820190506138296000830188612c08565b61383660208301876131df565b818103604083015261384881866137b6565b90506138576060830185612f00565b6138646080830184612c08565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138a4601b836129d3565b91506138af8261386e565b602082019050919050565b600060208201905081810360008301526138d381613897565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206d7d74fab880716503a106489f3349ee401423243daca35c7300fcb88bc77a9164736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e3578063a9059cbb1461040e578063b87f137a1461044b578063c3c8cd8014610474578063c9567bf91461048b578063dd62ed3e146104a257610140565b80636fc3eaec1461033657806370a082311461034d578063715018a61461038a578063751039fc146103a15780638da5cb5b146103b857610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce5671461029057806345596e2e146102bb5780635932ead1146102e4578063677daa571461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806321bbcbb11461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612a61565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612b2b565b61051c565b6040516101a49190612b86565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612ba1565b61053a565b005b3480156101e257600080fd5b506101eb610631565b6040516101f89190612c17565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612d7a565b610642565b005b34801561023657600080fd5b50610251600480360381019061024c9190612dc3565b6108a4565b60405161025e9190612b86565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612e16565b61097d565b005b34801561029c57600080fd5b506102a5610a6d565b6040516102b29190612e5f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612e7a565b610a76565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612ed3565b610b23565b005b34801561031957600080fd5b50610334600480360381019061032f9190612e7a565b610bd5565b005b34801561034257600080fd5b5061034b610caf565b005b34801561035957600080fd5b50610374600480360381019061036f9190612e16565b610d55565b6040516103819190612c17565b60405180910390f35b34801561039657600080fd5b5061039f610da6565b005b3480156103ad57600080fd5b506103b6610ef9565b005b3480156103c457600080fd5b506103cd610fb0565b6040516103da9190612f0f565b60405180910390f35b3480156103ef57600080fd5b506103f8610fd9565b6040516104059190612a61565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190612b2b565b611016565b6040516104429190612b86565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612e7a565b611034565b005b34801561048057600080fd5b5061048961110e565b005b34801561049757600080fd5b506104a06111bc565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190612f2a565b61170e565b6040516104d69190612c17565b60405180910390f35b60606040518060400160405280600d81526020017f576869746520436f6361696e6500000000000000000000000000000000000000815250905090565b6000610530610529611795565b848461179d565b6001905092915050565b610542611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c690612fb6565b60405180910390fd5b600e5483856105de9190613005565b11156105e957600080fd5b600f5481836105f89190613005565b111561060357600080fd5b83600a6000018190555082600a6001018190555081600a6002018190555080600a6003018190555050505050565b600068056bc75e2d63100000905090565b61064a611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90612fb6565b60405180910390fd5b60005b81518110156108a0573073ffffffffffffffffffffffffffffffffffffffff1682828151811061070d5761070c61305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107a15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107805761077f61305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156108155750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107f4576107f361305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561088d576001600660008484815181106108335761083261305b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108989061308a565b9150506106da565b5050565b60006108b1848484611966565b610972846108bd611795565b61096d856040518060600160405280602881526020016138db60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610923611795565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0c9092919063ffffffff16565b61179d565b600190509392505050565b610985611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612fb6565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610a7e611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290612fb6565b60405180910390fd5b6031811115610b1957600080fd5b8060118190555050565b610b2b611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90612fb6565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b610bdd611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6190612fb6565b60405180910390fd5b60008111610c7757600080fd5b610ca66064610c988368056bc75e2d63100000611f7090919063ffffffff16565b611fea90919063ffffffff16565b60148190555050565b610cb7611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90612fb6565b60405180910390fd5b6000479050610d5281612034565b50565b6000610d9f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a0565b9050919050565b610dae611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290612fb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f01611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8590612fb6565b60405180910390fd5b68056bc75e2d6310000060148190555068056bc75e2d63100000601581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f57434f4b45000000000000000000000000000000000000000000000000000000815250905090565b600061102a611023611795565b8484611966565b6001905092915050565b61103c611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090612fb6565b60405180910390fd5b600081116110d657600080fd5b61110560646110f78368056bc75e2d63100000611f7090919063ffffffff16565b611fea90919063ffffffff16565b60158190555050565b611116611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612fb6565b60405180910390fd5b60006111ae30610d55565b90506111b98161210e565b50565b6111c4611795565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612fb6565b60405180910390fd5b601360149054906101000a900460ff16156112a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112989061311e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061133130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1668056bc75e2d6310000061179d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190613153565b6040518363ffffffff1660e01b8152600401611448929190613180565b6020604051808303816000875af1158015611467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b9190613153565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061151430610d55565b60008061151f610fb0565b426040518863ffffffff1660e01b8152600401611541969594939291906131ee565b60606040518083038185885af115801561155f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115849190613264565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506064600368056bc75e2d631000006115d591906132b7565b6115df9190613340565b6014819055506064600368056bc75e2d631000006115fd91906132b7565b6116079190613340565b6015819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116c7929190613371565b6020604051808303816000875af11580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a91906133af565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118039061344e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906134e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119599190612c17565b60405180910390a3505050565b600081116119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090613572565b60405180910390fd5b6001601360186101000a81548160ff0219169083151502179055506119cc610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a3a5750611a0a610fb0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611efc57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aea5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b405750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b585750601360179054906101000a900460ff165b15611bc557601454811115611b6c57600080fd5b60155481611b7984610d55565b611b839190613005565b1115611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb906135de565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d9457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d6f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d7857600080fd5b6000601360186101000a81548160ff0219169083151502179055505b6000611d9f30610d55565b9050611df36064611de5601154611dd7601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d55565b611f7090919063ffffffff16565b611fea90919063ffffffff16565b811115611e4f57611e4c6064611e3e601154611e30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d55565b611f7090919063ffffffff16565b611fea90919063ffffffff16565b90505b601360159054906101000a900460ff16158015611eba5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed25750601360169054906101000a900460ff165b15611efa57611ee08161210e565b60004790506000811115611ef857611ef747612034565b5b505b505b611f07838383612393565b505050565b6000838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b9190612a61565b60405180910390fd5b5060008385611f6391906135fe565b9050809150509392505050565b6000808303611f825760009050611fe4565b60008284611f9091906132b7565b9050828482611f9f9190613340565b14611fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd6906136a4565b60405180910390fd5b809150505b92915050565b600061202c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123a3565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561209c573d6000803e3d6000fd5b5050565b60006008548211156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120de90613736565b60405180910390fd5b60006120f1612406565b90506121068184611fea90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561214657612145612c37565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b509050308160008151811061218c5761218b61305b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190613153565b8160018151811061226b5761226a61305b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122d230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461179d565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c426123229190613005565b6040518663ffffffff1660e01b8152600401612342959493929190613814565b600060405180830381600087803b15801561235c57600080fd5b505af1158015612370573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b61239e838383612431565b505050565b600080831182906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e19190612a61565b60405180910390fd5b50600083856123f99190613340565b9050809150509392505050565b60008060006124136125fc565b9150915061242a8183611fea90919063ffffffff16565b9250505090565b6000806000806000806124438761265e565b9550955095509550955095506124a186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125828161279b565b61258c8483612858565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e99190612c17565b60405180910390a3505050505050505050565b60008060006008549050600068056bc75e2d63100000905061263268056bc75e2d63100000600854611fea90919063ffffffff16565b8210156126515760085468056bc75e2d6310000093509350505061265a565b81819350935050505b9091565b6000806000806000806000806000612674612892565b6126925761268d8a600a60020154600a600301546128a9565b6126a8565b6126a78a600a60000154600a600101546128a9565b5b92509250925060006126b8612406565b905060008060006126cb8e87878761293f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0c565b905092915050565b600080828461274c9190613005565b905083811015612791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612788906138ba565b60405180910390fd5b8091505092915050565b60006127a5612406565b905060006127bc8284611f7090919063ffffffff16565b905061281081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286d826008546126f390919063ffffffff16565b6008819055506128888160095461273d90919063ffffffff16565b6009819055505050565b6000601360189054906101000a900460ff16905090565b6000806000806128d560646128c7888a611f7090919063ffffffff16565b611fea90919063ffffffff16565b905060006128ff60646128f1888b611f7090919063ffffffff16565b611fea90919063ffffffff16565b905060006129288261291a858c6126f390919063ffffffff16565b6126f390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129588589611f7090919063ffffffff16565b9050600061296f8689611f7090919063ffffffff16565b905060006129868789611f7090919063ffffffff16565b905060006129af826129a185876126f390919063ffffffff16565b6126f390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a025780820151818401526020810190506129e7565b83811115612a11576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a33826129c8565b612a3d81856129d3565b9350612a4d8185602086016129e4565b612a5681612a17565b840191505092915050565b60006020820190508181036000830152612a7b8184612a28565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac282612a97565b9050919050565b612ad281612ab7565b8114612add57600080fd5b50565b600081359050612aef81612ac9565b92915050565b6000819050919050565b612b0881612af5565b8114612b1357600080fd5b50565b600081359050612b2581612aff565b92915050565b60008060408385031215612b4257612b41612a8d565b5b6000612b5085828601612ae0565b9250506020612b6185828601612b16565b9150509250929050565b60008115159050919050565b612b8081612b6b565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b60008060008060808587031215612bbb57612bba612a8d565b5b6000612bc987828801612b16565b9450506020612bda87828801612b16565b9350506040612beb87828801612b16565b9250506060612bfc87828801612b16565b91505092959194509250565b612c1181612af5565b82525050565b6000602082019050612c2c6000830184612c08565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c6f82612a17565b810181811067ffffffffffffffff82111715612c8e57612c8d612c37565b5b80604052505050565b6000612ca1612a83565b9050612cad8282612c66565b919050565b600067ffffffffffffffff821115612ccd57612ccc612c37565b5b602082029050602081019050919050565b600080fd5b6000612cf6612cf184612cb2565b612c97565b90508083825260208201905060208402830185811115612d1957612d18612cde565b5b835b81811015612d425780612d2e8882612ae0565b845260208401935050602081019050612d1b565b5050509392505050565b600082601f830112612d6157612d60612c32565b5b8135612d71848260208601612ce3565b91505092915050565b600060208284031215612d9057612d8f612a8d565b5b600082013567ffffffffffffffff811115612dae57612dad612a92565b5b612dba84828501612d4c565b91505092915050565b600080600060608486031215612ddc57612ddb612a8d565b5b6000612dea86828701612ae0565b9350506020612dfb86828701612ae0565b9250506040612e0c86828701612b16565b9150509250925092565b600060208284031215612e2c57612e2b612a8d565b5b6000612e3a84828501612ae0565b91505092915050565b600060ff82169050919050565b612e5981612e43565b82525050565b6000602082019050612e746000830184612e50565b92915050565b600060208284031215612e9057612e8f612a8d565b5b6000612e9e84828501612b16565b91505092915050565b612eb081612b6b565b8114612ebb57600080fd5b50565b600081359050612ecd81612ea7565b92915050565b600060208284031215612ee957612ee8612a8d565b5b6000612ef784828501612ebe565b91505092915050565b612f0981612ab7565b82525050565b6000602082019050612f246000830184612f00565b92915050565b60008060408385031215612f4157612f40612a8d565b5b6000612f4f85828601612ae0565b9250506020612f6085828601612ae0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fa06020836129d3565b9150612fab82612f6a565b602082019050919050565b60006020820190508181036000830152612fcf81612f93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061301082612af5565b915061301b83612af5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130505761304f612fd6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061309582612af5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130c7576130c6612fd6565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131086017836129d3565b9150613113826130d2565b602082019050919050565b60006020820190508181036000830152613137816130fb565b9050919050565b60008151905061314d81612ac9565b92915050565b60006020828403121561316957613168612a8d565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612f00565b6131a26020830184612f00565b9392505050565b6000819050919050565b6000819050919050565b60006131d86131d36131ce846131a9565b6131b3565b612af5565b9050919050565b6131e8816131bd565b82525050565b600060c0820190506132036000830189612f00565b6132106020830188612c08565b61321d60408301876131df565b61322a60608301866131df565b6132376080830185612f00565b61324460a0830184612c08565b979650505050505050565b60008151905061325e81612aff565b92915050565b60008060006060848603121561327d5761327c612a8d565b5b600061328b8682870161324f565b935050602061329c8682870161324f565b92505060406132ad8682870161324f565b9150509250925092565b60006132c282612af5565b91506132cd83612af5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561330657613305612fd6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061334b82612af5565b915061335683612af5565b92508261336657613365613311565b5b828204905092915050565b60006040820190506133866000830185612f00565b6133936020830184612c08565b9392505050565b6000815190506133a981612ea7565b92915050565b6000602082840312156133c5576133c4612a8d565b5b60006133d38482850161339a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134386024836129d3565b9150613443826133dc565b604082019050919050565b600060208201905081810360008301526134678161342b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ca6022836129d3565b91506134d58261346e565b604082019050919050565b600060208201905081810360008301526134f9816134bd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061355c6029836129d3565b915061356782613500565b604082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006135c8601a836129d3565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b600061360982612af5565b915061361483612af5565b92508282101561362757613626612fd6565b5b828203905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061368e6021836129d3565b915061369982613632565b604082019050919050565b600060208201905081810360008301526136bd81613681565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613720602a836129d3565b915061372b826136c4565b604082019050919050565b6000602082019050818103600083015261374f81613713565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61378b81612ab7565b82525050565b600061379d8383613782565b60208301905092915050565b6000602082019050919050565b60006137c182613756565b6137cb8185613761565b93506137d683613772565b8060005b838110156138075781516137ee8882613791565b97506137f9836137a9565b9250506001810190506137da565b5085935050505092915050565b600060a0820190506138296000830188612c08565b61383660208301876131df565b818103604083015261384881866137b6565b90506138576060830185612f00565b6138646080830184612c08565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138a4601b836129d3565b91506138af8261386e565b602082019050919050565b600060208201905081810360008301526138d381613897565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206d7d74fab880716503a106489f3349ee401423243daca35c7300fcb88bc77a9164736f6c634300080f0033

Deployed Bytecode Sourcemap

3724:11663:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6641:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9966:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6066:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11814:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6810:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12122:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5975:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10704:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7131:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10356:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13458:153;;;;;;;;;;;;;:::i;:::-;;6169:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:148;;;;;;;;;;;;;:::i;:::-;;9840:118;;;;;;;;;;;;;:::i;:::-;;2589:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5880:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6315:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10528:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13292:154;;;;;;;;;;;;;:::i;:::-;;10943:859;;;;;;;;;;;;;:::i;:::-;;6490:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5789:83;5826:13;5859:5;;;;;;;;;;;;;;;;;5852:12;;5789:83;:::o;6641:161::-;6716:4;6733:39;6742:12;:10;:12::i;:::-;6756:7;6765:6;6733:8;:39::i;:::-;6790:4;6783:11;;6641:161;;;;:::o;9966:382::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10115:18:::1;;10104:7;10094;:17;;;;:::i;:::-;:39;;10086:48;;;::::0;::::1;;10176:19;;10164:8;10153;:19;;;;:::i;:::-;:42;;10145:51;;;::::0;::::1;;10224:7;10207:6;:14;;:24;;;;10259:7;10242:6;:14;;:24;;;;10295:8;10277:6;:15;;:26;;;;10332:8;10314:6;:15;;:26;;;;9966:382:::0;;;;:::o;6066:95::-;6119:7;4229:23;6139:14;;6066:95;:::o;11814:296::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11887:6:::1;11882:221;11903:5;:12;11899:1;:16;11882:221;;;11961:4;11941:25;;:5;11947:1;11941:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:54;;;;;11982:13;;;;;;;;;;;11970:25;;:5;11976:1;11970:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;11941:54;:94;;;;;12019:15;;;;;;;;;;;11999:36;;:5;12005:1;11999:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;11941:94;11937:155;;;12072:4;12055;:14;12060:5;12066:1;12060:8;;;;;;;;:::i;:::-;;;;;;;;12055:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11937:155;11917:3;;;;;:::i;:::-;;;;11882:221;;;;11814:296:::0;:::o;6810:313::-;6908:4;6925:36;6935:6;6943:9;6954:6;6925:9;:36::i;:::-;6972:121;6981:6;6989:12;:10;:12::i;:::-;7003:89;7041:6;7003:89;;;;;;;;;;;;;;;;;:11;:19;7015:6;7003:19;;;;;;;;;;;;;;;:33;7023:12;:10;:12::i;:::-;7003:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6972:8;:121::i;:::-;7111:4;7104:11;;6810:313;;;;;:::o;12122:88::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12197:5:::1;12182:4;:12;12187:6;12182:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12122:88:::0;:::o;5975:83::-;6016:5;4910:1;6034:16;;5975:83;:::o;10704:117::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10784:2:::1;10778:4;:8;;10770:17;;;::::0;::::1;;10809:4;10798:8;:15;;;;10704:117:::0;:::o;7131:103::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7221:5:::1;7203:15;;:23;;;;;;;;;;;;;;;;;;7131:103:::0;:::o;10356:164::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10452:1:::1;10441:10;:12;10433:21;;;::::0;::::1;;10480:32;10508:3;10480:23;10492:10;4229:23;10480:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10465:12;:47;;;;10356:164:::0;:::o;13458:153::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13510:26:::1;13539:21;13510:50;;13571:32;13584:18;13571:12;:32::i;:::-;13499:112;13458:153::o:0;6169:138::-;6235:7;6262:37;6282:7;:16;6290:7;6282:16;;;;;;;;;;;;;;;;6262:19;:37::i;:::-;6255:44;;6169:138;;;:::o;2803:148::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1:::1;2873:40;;2894:6;::::0;::::1;;;;;;;;2873:40;;;;;;;;;;;;2941:1;2924:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2803:148::o:0;9840:118::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4229:23:::1;9893:12;:22;;;;4229:23;9926:14;:24;;;;9840:118::o:0;2589:79::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2589:79;:::o;5880:87::-;5919:13;5952:7;;;;;;;;;;;;;;;;;5945:14;;5880:87;:::o;6315:167::-;6393:4;6410:42;6420:12;:10;:12::i;:::-;6434:9;6445:6;6410:9;:42::i;:::-;6470:4;6463:11;;6315:167;;;;:::o;10528:168::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10626:1:::1;10615:10;:12;10607:21;;;::::0;::::1;;10656:32;10684:3;10656:23;10668:10;4229:23;10656:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10639:14;:49;;;;10528:168:::0;:::o;13292:154::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13344:23:::1;13370:24;13388:4;13370:9;:24::i;:::-;13344:50;;13405:33;13422:15;13405:16;:33::i;:::-;13333:113;13292:154::o:0;10943:859::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11007:11:::1;;;;;;;;;;;11006:12;10998:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11056:35;11113:42;11056:100;;11185:16;11167:15;;:34;;;;;;;;;;;;;;;;;;11212:58;11229:4;11244:15;;;;;;;;;;;4229:23;11212:8;:58::i;:::-;11315:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11297:56;;;11362:4;11369:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11297:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11281:13;;:112;;;;;;;;;;;;;;;;;;11404:15;;;;;;;;;;;:31;;;11443:21;11474:4;11480:24;11498:4;11480:9;:24::i;:::-;11505:1;11507::::0;11509:7:::1;:5;:7::i;:::-;11517:15;11404:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11558:4;11544:11;;:18;;;;;;;;;;;;;;;;;;11591:4;11573:15;;:22;;;;;;;;;;;;;;;;;;11635:3;11631:1;4229:23;11621:11;;;;:::i;:::-;:17;;;;:::i;:::-;11606:12;:32;;;;11680:3;11676:1;4229:23;11666:11;;;;:::i;:::-;:17;;;;:::i;:::-;11649:14;:34;;;;11708:4;11694:11;;:18;;;;;;;;;;;;;;;;;;11730:13;;;;;;;;;;;11723:29;;;11761:15;;;;;;;;;;;11779:14;11723:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10987:815;10943:859::o:0;6490:143::-;6571:7;6598:11;:18;6610:5;6598:18;;;;;;;;;;;;;;;:27;6617:7;6598:27;;;;;;;;;;;;;;;;6591:34;;6490:143;;;;:::o;307:98::-;360:7;387:10;380:17;;307:98;:::o;7504:335::-;7614:1;7597:19;;:5;:19;;;7589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7695:1;7676:21;;:7;:21;;;7668:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7777:6;7747:11;:18;7759:5;7747:18;;;;;;;;;;;;;;;:27;7766:7;7747:27;;;;;;;;;;;;;;;:36;;;;7815:7;7799:32;;7808:5;7799:32;;;7824:6;7799:32;;;;;;:::i;:::-;;;;;;;;7504:335;;;:::o;7847:1400::-;7944:1;7935:6;:10;7927:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:4;8002:6;;:13;;;;;;;;;;;;;;;;;;8040:7;:5;:7::i;:::-;8032:15;;:4;:15;;;;:32;;;;;8057:7;:5;:7::i;:::-;8051:13;;:2;:13;;;;8032:32;8028:1169;;;8095:13;;;;;;;;;;;8087:21;;:4;:21;;;:55;;;;;8126:15;;;;;;;;;;;8112:30;;:2;:30;;;;8087:55;:83;;;;;8148:18;:22;8167:2;8148:22;;;;;;;;;;;;;;;;;;;;;;;;;8146:24;8087:83;:102;;;;;8174:15;;;;;;;;;;;8087:102;8083:296;;;8252:12;;8242:6;:22;;8234:31;;;;;;8318:14;;8308:6;8292:13;8302:2;8292:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8284:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8083:296;8415:15;;;;;;;;;;;8399:32;;:4;:32;;;;:62;;;;;8437:18;:24;8456:4;8437:24;;;;;;;;;;;;;;;;;;;;;;;;;8435:26;8399:62;:85;;;;;8471:13;;;;;;;;;;;8465:19;;:2;:19;;;8399:85;8395:191;;;8513:4;:10;8518:4;8513:10;;;;;;;;;;;;;;;;;;;;;;;;;8512:11;:24;;;;;8528:4;:8;8533:2;8528:8;;;;;;;;;;;;;;;;;;;;;;;;;8527:9;8512:24;8504:33;;;;;;8565:5;8556:6;;:14;;;;;;;;;;;;;;;;;;8395:191;8602:28;8633:24;8651:4;8633:9;:24::i;:::-;8602:55;;8698:47;8741:3;8698:38;8727:8;;8698:24;8708:13;;;;;;;;;;;8698:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;8675:20;:70;8672:180;;;8789:47;8832:3;8789:38;8818:8;;8789:24;8799:13;;;;;;;;;;;8789:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;8766:70;;8672:180;8873:6;;;;;;;;;;;8872:7;:32;;;;;8891:13;;;;;;;;;;;8883:21;;:4;:21;;;;8872:32;:47;;;;;8908:11;;;;;;;;;;;8872:47;8868:318;;;8940:38;8957:20;8940:16;:38::i;:::-;8997:26;9026:21;8997:50;;9090:1;9069:18;:22;9066:105;;;9116:35;9129:21;9116:12;:35::i;:::-;9066:105;8921:265;8868:318;8066:1131;8028:1169;9209:30;9224:4;9229:2;9232:6;9209:14;:30::i;:::-;7847:1400;;;:::o;1444:190::-;1530:7;1563:1;1558;:6;;1566:12;1550:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1590:9;1606:1;1602;:5;;;;:::i;:::-;1590:17;;1625:1;1618:8;;;1444:190;;;;;:::o;1642:246::-;1700:7;1729:1;1724;:6;1720:47;;1754:1;1747:8;;;;1720:47;1777:9;1793:1;1789;:5;;;;:::i;:::-;1777:17;;1822:1;1817;1813;:5;;;;:::i;:::-;:10;1805:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1879:1;1872:8;;;1642:246;;;;;:::o;1896:132::-;1954:7;1981:39;1985:1;1988;1981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1974:46;;1896:132;;;;:::o;10837:96::-;10894:14;;;;;;;;;;;:23;;:31;10918:6;10894:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10837:96;:::o;7242:254::-;7309:7;7348;;7337;:18;;7329:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7413:19;7436:10;:8;:10::i;:::-;7413:33;;7464:24;7476:11;7464:7;:11;;:24;;;;:::i;:::-;7457:31;;;7242:254;;;:::o;9257:488::-;5373:4;5364:6;;:13;;;;;;;;;;;;;;;;;;9335:21:::1;9373:1;9359:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9335:40;;9404:4;9386;9391:1;9386:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9430:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9420:4;9425:1;9420:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9463:62;9480:4;9495:15;;;;;;;;;;;9513:11;9463:8;:62::i;:::-;9536:15;;;;;;;;;;;:66;;;9617:11;9643:1;9659:4;9686;9724:2;9706:15;:20;;;;:::i;:::-;9536:201;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9324:421;5409:5:::0;5400:6;;:14;;;;;;;;;;;;;;;;;;9257:488;:::o;12226:146::-;12320:44;12338:6;12346:9;12357:6;12320:17;:44::i;:::-;12226:146;;;:::o;2036:189::-;2122:7;2154:1;2150;:5;2157:12;2142:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2181:9;2197:1;2193;:5;;;;:::i;:::-;2181:17;;2216:1;2209:8;;;2036:189;;;;;:::o;14951:163::-;14992:7;15013:15;15030;15049:19;:17;:19::i;:::-;15012:56;;;;15086:20;15098:7;15086;:11;;:20;;;;:::i;:::-;15079:27;;;;14951:163;:::o;12380:488::-;12479:15;12496:23;12521:12;12535:23;12560:12;12574:13;12591:19;12602:7;12591:10;:19::i;:::-;12478:132;;;;;;;;;;;;12639:28;12659:7;12639;:15;12647:6;12639:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12621:7;:15;12629:6;12621:15;;;;;;;;;;;;;;;:46;;;;12699:39;12722:15;12699:7;:18;12707:9;12699:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12678:7;:18;12686:9;12678:18;;;;;;;;;;;;;;;:60;;;;12750:16;12760:5;12750:9;:16::i;:::-;12777:23;12789:4;12795;12777:11;:23::i;:::-;12833:9;12816:44;;12825:6;12816:44;;;12844:15;12816:44;;;;;;:::i;:::-;;;;;;;;12467:401;;;;;;12380:488;;;:::o;15122:262::-;15172:7;15181;15201:15;15219:7;;15201:25;;15237:15;4229:23;15237:25;;15293:20;4229:23;15293:7;;:11;;:20;;;;:::i;:::-;15283:7;:30;15279:61;;;15323:7;;4229:23;15315:25;;;;;;;;15279:61;15359:7;15368;15351:25;;;;;;15122:262;;;:::o;13619:551::-;13678:7;13687;13696;13705;13714;13723;13744:23;13769:12;13783:13;13800:10;:8;:10::i;:::-;:122;;13868:54;13880:7;13889:6;:15;;;13906:6;:15;;;13868:11;:54::i;:::-;13800:122;;;13813:52;13825:7;13834:6;:14;;;13850:6;:14;;;13813:11;:52::i;:::-;13800:122;13743:179;;;;;;13933:19;13956:10;:8;:10::i;:::-;13933:33;;13978:15;13995:23;14020:12;14036:46;14048:7;14057:4;14063:5;14070:11;14036;:46::i;:::-;13977:105;;;;;;14101:7;14110:15;14127:4;14133:15;14150:4;14156:5;14093:69;;;;;;;;;;;;;;;;;;;13619:551;;;;;;;:::o;1300:136::-;1358:7;1385:43;1389:1;1392;1385:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1378:50;;1300:136;;;;:::o;1113:179::-;1171:7;1191:9;1207:1;1203;:5;;;;:::i;:::-;1191:17;;1232:1;1227;:6;;1219:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1283:1;1276:8;;;1113:179;;;;:::o;12876:212::-;12929:19;12952:10;:8;:10::i;:::-;12929:33;;12973:13;12989:22;12999:11;12989:5;:9;;:22;;;;:::i;:::-;12973:38;;13047:33;13074:5;13047:7;:22;13063:4;13047:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13022:7;:22;13038:4;13022:22;;;;;;;;;;;;;;;:58;;;;12918:170;;12876:212;:::o;13096:147::-;13174:17;13186:4;13174:7;;:11;;:17;;;;:::i;:::-;13164:7;:27;;;;13215:20;13230:4;13215:10;;:14;;:20;;;;:::i;:::-;13202:10;:33;;;;13096:147;;:::o;9753:79::-;9795:4;9818:6;;;;;;;;;;;9811:13;;9753:79;:::o;14178:351::-;14271:7;14280;14289;14309:12;14324:28;14348:3;14324:19;14336:6;14324:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14309:43;;14363:13;14379:29;14404:3;14379:20;14391:7;14379;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14363:45;;14419:23;14445:28;14467:5;14445:17;14457:4;14445:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14419:54;;14492:15;14509:4;14515:5;14484:37;;;;;;;;;14178:351;;;;;;;:::o;14537:409::-;14647:7;14656;14665;14685:15;14703:24;14715:11;14703:7;:11;;:24;;;;:::i;:::-;14685:42;;14738:12;14753:21;14762:11;14753:4;:8;;:21;;;;:::i;:::-;14738:36;;14785:13;14801:22;14811:11;14801:5;:9;;:22;;;;:::i;:::-;14785:38;;14834:23;14860:28;14882:5;14860:17;14872:4;14860:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14834:54;;14907:7;14916:15;14933:4;14899:39;;;;;;;;;;14537:409;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:765::-;3580:6;3588;3596;3604;3653:3;3641:9;3632:7;3628:23;3624:33;3621:120;;;3660:79;;:::i;:::-;3621:120;3780:1;3805:53;3850:7;3841:6;3830:9;3826:22;3805:53;:::i;:::-;3795:63;;3751:117;3907:2;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3878:118;4035:2;4061:53;4106:7;4097:6;4086:9;4082:22;4061:53;:::i;:::-;4051:63;;4006:118;4163:2;4189:53;4234:7;4225:6;4214:9;4210:22;4189:53;:::i;:::-;4179:63;;4134:118;3494:765;;;;;;;:::o;4265:118::-;4352:24;4370:5;4352:24;:::i;:::-;4347:3;4340:37;4265:118;;:::o;4389:222::-;4482:4;4520:2;4509:9;4505:18;4497:26;;4533:71;4601:1;4590:9;4586:17;4577:6;4533:71;:::i;:::-;4389:222;;;;:::o;4617:117::-;4726:1;4723;4716:12;4740:180;4788:77;4785:1;4778:88;4885:4;4882:1;4875:15;4909:4;4906:1;4899:15;4926:281;5009:27;5031:4;5009:27;:::i;:::-;5001:6;4997:40;5139:6;5127:10;5124:22;5103:18;5091:10;5088:34;5085:62;5082:88;;;5150:18;;:::i;:::-;5082:88;5190:10;5186:2;5179:22;4969:238;4926:281;;:::o;5213:129::-;5247:6;5274:20;;:::i;:::-;5264:30;;5303:33;5331:4;5323:6;5303:33;:::i;:::-;5213:129;;;:::o;5348:311::-;5425:4;5515:18;5507:6;5504:30;5501:56;;;5537:18;;:::i;:::-;5501:56;5587:4;5579:6;5575:17;5567:25;;5647:4;5641;5637:15;5629:23;;5348:311;;;:::o;5665:117::-;5774:1;5771;5764:12;5805:710;5901:5;5926:81;5942:64;5999:6;5942:64;:::i;:::-;5926:81;:::i;:::-;5917:90;;6027:5;6056:6;6049:5;6042:21;6090:4;6083:5;6079:16;6072:23;;6143:4;6135:6;6131:17;6123:6;6119:30;6172:3;6164:6;6161:15;6158:122;;;6191:79;;:::i;:::-;6158:122;6306:6;6289:220;6323:6;6318:3;6315:15;6289:220;;;6398:3;6427:37;6460:3;6448:10;6427:37;:::i;:::-;6422:3;6415:50;6494:4;6489:3;6485:14;6478:21;;6365:144;6349:4;6344:3;6340:14;6333:21;;6289:220;;;6293:21;5907:608;;5805:710;;;;;:::o;6538:370::-;6609:5;6658:3;6651:4;6643:6;6639:17;6635:27;6625:122;;6666:79;;:::i;:::-;6625:122;6783:6;6770:20;6808:94;6898:3;6890:6;6883:4;6875:6;6871:17;6808:94;:::i;:::-;6799:103;;6615:293;6538:370;;;;:::o;6914:539::-;6998:6;7047:2;7035:9;7026:7;7022:23;7018:32;7015:119;;;7053:79;;:::i;:::-;7015:119;7201:1;7190:9;7186:17;7173:31;7231:18;7223:6;7220:30;7217:117;;;7253:79;;:::i;:::-;7217:117;7358:78;7428:7;7419:6;7408:9;7404:22;7358:78;:::i;:::-;7348:88;;7144:302;6914:539;;;;:::o;7459:619::-;7536:6;7544;7552;7601:2;7589:9;7580:7;7576:23;7572:32;7569:119;;;7607:79;;:::i;:::-;7569:119;7727:1;7752:53;7797:7;7788:6;7777:9;7773:22;7752:53;:::i;:::-;7742:63;;7698:117;7854:2;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7825:118;7982:2;8008:53;8053:7;8044:6;8033:9;8029:22;8008:53;:::i;:::-;7998:63;;7953:118;7459:619;;;;;:::o;8084:329::-;8143:6;8192:2;8180:9;8171:7;8167:23;8163:32;8160:119;;;8198:79;;:::i;:::-;8160:119;8318:1;8343:53;8388:7;8379:6;8368:9;8364:22;8343:53;:::i;:::-;8333:63;;8289:117;8084:329;;;;:::o;8419:86::-;8454:7;8494:4;8487:5;8483:16;8472:27;;8419:86;;;:::o;8511:112::-;8594:22;8610:5;8594:22;:::i;:::-;8589:3;8582:35;8511:112;;:::o;8629:214::-;8718:4;8756:2;8745:9;8741:18;8733:26;;8769:67;8833:1;8822:9;8818:17;8809:6;8769:67;:::i;:::-;8629:214;;;;:::o;8849:329::-;8908:6;8957:2;8945:9;8936:7;8932:23;8928:32;8925:119;;;8963:79;;:::i;:::-;8925:119;9083:1;9108:53;9153:7;9144:6;9133:9;9129:22;9108:53;:::i;:::-;9098:63;;9054:117;8849:329;;;;:::o;9184:116::-;9254:21;9269:5;9254:21;:::i;:::-;9247:5;9244:32;9234:60;;9290:1;9287;9280:12;9234:60;9184:116;:::o;9306:133::-;9349:5;9387:6;9374:20;9365:29;;9403:30;9427:5;9403:30;:::i;:::-;9306:133;;;;:::o;9445:323::-;9501:6;9550:2;9538:9;9529:7;9525:23;9521:32;9518:119;;;9556:79;;:::i;:::-;9518:119;9676:1;9701:50;9743:7;9734:6;9723:9;9719:22;9701:50;:::i;:::-;9691:60;;9647:114;9445:323;;;;:::o;9774:118::-;9861:24;9879:5;9861:24;:::i;:::-;9856:3;9849:37;9774:118;;:::o;9898:222::-;9991:4;10029:2;10018:9;10014:18;10006:26;;10042:71;10110:1;10099:9;10095:17;10086:6;10042:71;:::i;:::-;9898:222;;;;:::o;10126:474::-;10194:6;10202;10251:2;10239:9;10230:7;10226:23;10222:32;10219:119;;;10257:79;;:::i;:::-;10219:119;10377:1;10402:53;10447:7;10438:6;10427:9;10423:22;10402:53;:::i;:::-;10392:63;;10348:117;10504:2;10530:53;10575:7;10566:6;10555:9;10551:22;10530:53;:::i;:::-;10520:63;;10475:118;10126:474;;;;;:::o;10606:182::-;10746:34;10742:1;10734:6;10730:14;10723:58;10606:182;:::o;10794:366::-;10936:3;10957:67;11021:2;11016:3;10957:67;:::i;:::-;10950:74;;11033:93;11122:3;11033:93;:::i;:::-;11151:2;11146:3;11142:12;11135:19;;10794:366;;;:::o;11166:419::-;11332:4;11370:2;11359:9;11355:18;11347:26;;11419:9;11413:4;11409:20;11405:1;11394:9;11390:17;11383:47;11447:131;11573:4;11447:131;:::i;:::-;11439:139;;11166:419;;;:::o;11591:180::-;11639:77;11636:1;11629:88;11736:4;11733:1;11726:15;11760:4;11757:1;11750:15;11777:305;11817:3;11836:20;11854:1;11836:20;:::i;:::-;11831:25;;11870:20;11888:1;11870:20;:::i;:::-;11865:25;;12024:1;11956:66;11952:74;11949:1;11946:81;11943:107;;;12030:18;;:::i;:::-;11943:107;12074:1;12071;12067:9;12060:16;;11777:305;;;;:::o;12088:180::-;12136:77;12133:1;12126:88;12233:4;12230:1;12223:15;12257:4;12254:1;12247:15;12274:233;12313:3;12336:24;12354:5;12336:24;:::i;:::-;12327:33;;12382:66;12375:5;12372:77;12369:103;;12452:18;;:::i;:::-;12369:103;12499:1;12492:5;12488:13;12481:20;;12274:233;;;:::o;12513:173::-;12653:25;12649:1;12641:6;12637:14;12630:49;12513:173;:::o;12692:366::-;12834:3;12855:67;12919:2;12914:3;12855:67;:::i;:::-;12848:74;;12931:93;13020:3;12931:93;:::i;:::-;13049:2;13044:3;13040:12;13033:19;;12692:366;;;:::o;13064:419::-;13230:4;13268:2;13257:9;13253:18;13245:26;;13317:9;13311:4;13307:20;13303:1;13292:9;13288:17;13281:47;13345:131;13471:4;13345:131;:::i;:::-;13337:139;;13064:419;;;:::o;13489:143::-;13546:5;13577:6;13571:13;13562:22;;13593:33;13620:5;13593:33;:::i;:::-;13489:143;;;;:::o;13638:351::-;13708:6;13757:2;13745:9;13736:7;13732:23;13728:32;13725:119;;;13763:79;;:::i;:::-;13725:119;13883:1;13908:64;13964:7;13955:6;13944:9;13940:22;13908:64;:::i;:::-;13898:74;;13854:128;13638:351;;;;:::o;13995:332::-;14116:4;14154:2;14143:9;14139:18;14131:26;;14167:71;14235:1;14224:9;14220:17;14211:6;14167:71;:::i;:::-;14248:72;14316:2;14305:9;14301:18;14292:6;14248:72;:::i;:::-;13995:332;;;;;:::o;14333:85::-;14378:7;14407:5;14396:16;;14333:85;;;:::o;14424:60::-;14452:3;14473:5;14466:12;;14424:60;;;:::o;14490:158::-;14548:9;14581:61;14599:42;14608:32;14634:5;14608:32;:::i;:::-;14599:42;:::i;:::-;14581:61;:::i;:::-;14568:74;;14490:158;;;:::o;14654:147::-;14749:45;14788:5;14749:45;:::i;:::-;14744:3;14737:58;14654:147;;:::o;14807:807::-;15056:4;15094:3;15083:9;15079:19;15071:27;;15108:71;15176:1;15165:9;15161:17;15152:6;15108:71;:::i;:::-;15189:72;15257:2;15246:9;15242:18;15233:6;15189:72;:::i;:::-;15271:80;15347:2;15336:9;15332:18;15323:6;15271:80;:::i;:::-;15361;15437:2;15426:9;15422:18;15413:6;15361:80;:::i;:::-;15451:73;15519:3;15508:9;15504:19;15495:6;15451:73;:::i;:::-;15534;15602:3;15591:9;15587:19;15578:6;15534:73;:::i;:::-;14807:807;;;;;;;;;:::o;15620:143::-;15677:5;15708:6;15702:13;15693:22;;15724:33;15751:5;15724:33;:::i;:::-;15620:143;;;;:::o;15769:663::-;15857:6;15865;15873;15922:2;15910:9;15901:7;15897:23;15893:32;15890:119;;;15928:79;;:::i;:::-;15890:119;16048:1;16073:64;16129:7;16120:6;16109:9;16105:22;16073:64;:::i;:::-;16063:74;;16019:128;16186:2;16212:64;16268:7;16259:6;16248:9;16244:22;16212:64;:::i;:::-;16202:74;;16157:129;16325:2;16351:64;16407:7;16398:6;16387:9;16383:22;16351:64;:::i;:::-;16341:74;;16296:129;15769:663;;;;;:::o;16438:348::-;16478:7;16501:20;16519:1;16501:20;:::i;:::-;16496:25;;16535:20;16553:1;16535:20;:::i;:::-;16530:25;;16723:1;16655:66;16651:74;16648:1;16645:81;16640:1;16633:9;16626:17;16622:105;16619:131;;;16730:18;;:::i;:::-;16619:131;16778:1;16775;16771:9;16760:20;;16438:348;;;;:::o;16792:180::-;16840:77;16837:1;16830:88;16937:4;16934:1;16927:15;16961:4;16958:1;16951:15;16978:185;17018:1;17035:20;17053:1;17035:20;:::i;:::-;17030:25;;17069:20;17087:1;17069:20;:::i;:::-;17064:25;;17108:1;17098:35;;17113:18;;:::i;:::-;17098:35;17155:1;17152;17148:9;17143:14;;16978:185;;;;:::o;17169:332::-;17290:4;17328:2;17317:9;17313:18;17305:26;;17341:71;17409:1;17398:9;17394:17;17385:6;17341:71;:::i;:::-;17422:72;17490:2;17479:9;17475:18;17466:6;17422:72;:::i;:::-;17169:332;;;;;:::o;17507:137::-;17561:5;17592:6;17586:13;17577:22;;17608:30;17632:5;17608:30;:::i;:::-;17507:137;;;;:::o;17650:345::-;17717:6;17766:2;17754:9;17745:7;17741:23;17737:32;17734:119;;;17772:79;;:::i;:::-;17734:119;17892:1;17917:61;17970:7;17961:6;17950:9;17946:22;17917:61;:::i;:::-;17907:71;;17863:125;17650:345;;;;:::o;18001:223::-;18141:34;18137:1;18129:6;18125:14;18118:58;18210:6;18205:2;18197:6;18193:15;18186:31;18001:223;:::o;18230:366::-;18372:3;18393:67;18457:2;18452:3;18393:67;:::i;:::-;18386:74;;18469:93;18558:3;18469:93;:::i;:::-;18587:2;18582:3;18578:12;18571:19;;18230:366;;;:::o;18602:419::-;18768:4;18806:2;18795:9;18791:18;18783:26;;18855:9;18849:4;18845:20;18841:1;18830:9;18826:17;18819:47;18883:131;19009:4;18883:131;:::i;:::-;18875:139;;18602:419;;;:::o;19027:221::-;19167:34;19163:1;19155:6;19151:14;19144:58;19236:4;19231:2;19223:6;19219:15;19212:29;19027:221;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o;20051:228::-;20191:34;20187:1;20179:6;20175:14;20168:58;20260:11;20255:2;20247:6;20243:15;20236:36;20051:228;:::o;20285:366::-;20427:3;20448:67;20512:2;20507:3;20448:67;:::i;:::-;20441:74;;20524:93;20613:3;20524:93;:::i;:::-;20642:2;20637:3;20633:12;20626:19;;20285:366;;;:::o;20657:419::-;20823:4;20861:2;20850:9;20846:18;20838:26;;20910:9;20904:4;20900:20;20896:1;20885:9;20881:17;20874:47;20938:131;21064:4;20938:131;:::i;:::-;20930:139;;20657:419;;;:::o;21082:176::-;21222:28;21218:1;21210:6;21206:14;21199:52;21082:176;:::o;21264:366::-;21406:3;21427:67;21491:2;21486:3;21427:67;:::i;:::-;21420:74;;21503:93;21592:3;21503:93;:::i;:::-;21621:2;21616:3;21612:12;21605:19;;21264:366;;;:::o;21636:419::-;21802:4;21840:2;21829:9;21825:18;21817:26;;21889:9;21883:4;21879:20;21875:1;21864:9;21860:17;21853:47;21917:131;22043:4;21917:131;:::i;:::-;21909:139;;21636:419;;;:::o;22061:191::-;22101:4;22121:20;22139:1;22121:20;:::i;:::-;22116:25;;22155:20;22173:1;22155:20;:::i;:::-;22150:25;;22194:1;22191;22188:8;22185:34;;;22199:18;;:::i;:::-;22185:34;22244:1;22241;22237:9;22229:17;;22061:191;;;;:::o;22258:220::-;22398:34;22394:1;22386:6;22382:14;22375:58;22467:3;22462:2;22454:6;22450:15;22443:28;22258:220;:::o;22484:366::-;22626:3;22647:67;22711:2;22706:3;22647:67;:::i;:::-;22640:74;;22723:93;22812:3;22723:93;:::i;:::-;22841:2;22836:3;22832:12;22825:19;;22484:366;;;:::o;22856:419::-;23022:4;23060:2;23049:9;23045:18;23037:26;;23109:9;23103:4;23099:20;23095:1;23084:9;23080:17;23073:47;23137:131;23263:4;23137:131;:::i;:::-;23129:139;;22856:419;;;:::o;23281:229::-;23421:34;23417:1;23409:6;23405:14;23398:58;23490:12;23485:2;23477:6;23473:15;23466:37;23281:229;:::o;23516:366::-;23658:3;23679:67;23743:2;23738:3;23679:67;:::i;:::-;23672:74;;23755:93;23844:3;23755:93;:::i;:::-;23873:2;23868:3;23864:12;23857:19;;23516:366;;;:::o;23888:419::-;24054:4;24092:2;24081:9;24077:18;24069:26;;24141:9;24135:4;24131:20;24127:1;24116:9;24112:17;24105:47;24169:131;24295:4;24169:131;:::i;:::-;24161:139;;23888:419;;;:::o;24313:114::-;24380:6;24414:5;24408:12;24398:22;;24313:114;;;:::o;24433:184::-;24532:11;24566:6;24561:3;24554:19;24606:4;24601:3;24597:14;24582:29;;24433:184;;;;:::o;24623:132::-;24690:4;24713:3;24705:11;;24743:4;24738:3;24734:14;24726:22;;24623:132;;;:::o;24761:108::-;24838:24;24856:5;24838:24;:::i;:::-;24833:3;24826:37;24761:108;;:::o;24875:179::-;24944:10;24965:46;25007:3;24999:6;24965:46;:::i;:::-;25043:4;25038:3;25034:14;25020:28;;24875:179;;;;:::o;25060:113::-;25130:4;25162;25157:3;25153:14;25145:22;;25060:113;;;:::o;25209:732::-;25328:3;25357:54;25405:5;25357:54;:::i;:::-;25427:86;25506:6;25501:3;25427:86;:::i;:::-;25420:93;;25537:56;25587:5;25537:56;:::i;:::-;25616:7;25647:1;25632:284;25657:6;25654:1;25651:13;25632:284;;;25733:6;25727:13;25760:63;25819:3;25804:13;25760:63;:::i;:::-;25753:70;;25846:60;25899:6;25846:60;:::i;:::-;25836:70;;25692:224;25679:1;25676;25672:9;25667:14;;25632:284;;;25636:14;25932:3;25925:10;;25333:608;;;25209:732;;;;:::o;25947:831::-;26210:4;26248:3;26237:9;26233:19;26225:27;;26262:71;26330:1;26319:9;26315:17;26306:6;26262:71;:::i;:::-;26343:80;26419:2;26408:9;26404:18;26395:6;26343:80;:::i;:::-;26470:9;26464:4;26460:20;26455:2;26444:9;26440:18;26433:48;26498:108;26601:4;26592:6;26498:108;:::i;:::-;26490:116;;26616:72;26684:2;26673:9;26669:18;26660:6;26616:72;:::i;:::-;26698:73;26766:3;26755:9;26751:19;26742:6;26698:73;:::i;:::-;25947:831;;;;;;;;:::o;26784:177::-;26924:29;26920:1;26912:6;26908:14;26901:53;26784:177;:::o;26967:366::-;27109:3;27130:67;27194:2;27189:3;27130:67;:::i;:::-;27123:74;;27206:93;27295:3;27206:93;:::i;:::-;27324:2;27319:3;27315:12;27308:19;;26967:366;;;:::o;27339:419::-;27505:4;27543:2;27532:9;27528:18;27520:26;;27592:9;27586:4;27582:20;27578:1;27567:9;27563:17;27556:47;27620:131;27746:4;27620:131;:::i;:::-;27612:139;;27339:419;;;:::o

Swarm Source

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