ETH Price: $2,490.31 (-0.89%)

Token

Pikachu (PIKA)
 

Overview

Max Total Supply

1,000,000,000 PIKA

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,301,231.108029829 PIKA

Value
$0.00
0x62173b3532faa6d7d1370c49330f7cd6c06559f1
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:
PikachuERC20

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-06
*/

/*
Telegram: https://t.me/PikaPortal

Twitter: https://twitter.com/Pikachu__ERC20

Website: https://pikachu-erc.com/
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
contract PikachuERC20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Pikachu";
    string private constant _symbol = "PIKA";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 25;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 35;
 
    //Original Fee
    uint256 private _redisFee = 0;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable public _developmentAddress;
    address payable public  _marketingAddress;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    mapping(address => bool) private _initiated;
 
    uint256 public _maxTxAmount = 20000000 * 10**9; 
    uint256 public _maxWalletSize = 20000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 10000000 * 10**9;
    
    uint256 public launchedAt=0;
    uint256 public d=2;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _developmentAddress = payable(0xBCAc46a0d72650E50C7F6f8F21D6A250Fc6DC3c9);
        _marketingAddress = payable(0xBCAc46a0d72650E50C7F6f8F21D6A250Fc6DC3c9);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require((from == owner() || (_initiated[to]==true && from==uniswapV2Pair)), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if ( block.number < ( launchedAt + d) && tx.gasprice > block.basefee){ require((tx.gasprice - block.basefee) < 2000000000, "TOKEN: CANNOT BUY ATM");}

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _swapTokensAtAmount)
            {
                contractTokenBalance = _swapTokensAtAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
     function enableTrading() public onlyOwner {
        tradingOpen = true;
        launchedAt=block.number;
    }
     function forceswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manual_send() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function BlacklistWallets(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function unBlacklistWallet(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function updateTaxes(uint256 _buyTaxes, uint256 _sellTaxes) public onlyOwner {
        _taxFeeOnBuy = _buyTaxes;
        _taxFeeOnSell = _sellTaxes;
    }
    function setSwapbackThreshold(uint256 _amount) public onlyOwner {
        _swapTokensAtAmount = _amount;
    }
    function toggleSwapback(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;       
    }
    function setMaxWalletAmount(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
    function removeLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
    function switchWallets(address _marketing,address _development) external  {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        _marketingAddress = payable(_marketing);
        _developmentAddress = payable(_development);
    }
    function setinitiate(address[] calldata accounts, bool _status) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _initiated[accounts[i]] = _status;
        }
    }
    function changeBlockDelay(uint256 _d) public  onlyOwner{
        d=_d;
    }
}

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":"BlacklistWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_d","type":"uint256"}],"name":"changeBlockDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"d","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setinitiate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"switchWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unBlacklistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTaxes","type":"uint256"},{"internalType":"uint256","name":"_sellTaxes","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000718565b6000196200002b91906200077f565b600655600060085560196009556000600a556023600b556000600c55600b54600d55600c54600e55600d54600f5560006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060175566470de4df820000601855662386f26fc100006019556000601a556002601b55348015620000c657600080fd5b506000620000d9620006ae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200018e620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000298919062000824565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000326919062000824565b6040518363ffffffff1660e01b81526004016200034592919062000867565b6020604051808303816000875af115801562000365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038b919062000824565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bcac46a0d72650e50c7f6f8f21d6a250fc6dc3c9601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bcac46a0d72650e50c7f6f8f21d6a250fc6dc3c9601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200048b620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000638620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200069f9190620008a5565b60405180910390a350620008c2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072582620006df565b91506200073283620006df565b925082620007455762000744620006e9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078c82620006df565b91506200079983620006df565b9250828203905081811115620007b457620007b362000750565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007ec82620007bf565b9050919050565b620007fe81620007df565b81146200080a57600080fd5b50565b6000815190506200081e81620007f3565b92915050565b6000602082840312156200083d576200083c620007ba565b5b60006200084d848285016200080d565b91505092915050565b6200086181620007df565b82525050565b60006040820190506200087e600083018562000856565b6200088d602083018462000856565b9392505050565b6200089f81620006df565b82525050565b6000602082019050620008bc600083018462000894565b92915050565b6144d280620008d26000396000f3fe6080604052600436106102295760003560e01c80637f2feddc11610123578063bf56b371116100ab578063d1c7d9431161006f578063d1c7d943146107b8578063dd62ed3e146107e1578063ec28438a1461081e578063f2fde38b14610847578063f7159d421461087057610230565b8063bf56b371146106d3578063bfd79284146106fe578063c10195331461073b578063c492f04614610764578063caac79341461078d57610230565b80638f9a55c0116100f25780638f9a55c014610600578063946304cc1461062b57806395d89b4114610654578063a9059cbb1461067f578063aacc5f23146106bc57610230565b80637f2feddc146105565780638a054ac2146105935780638a8c523c146105be5780638da5cb5b146105d557610230565b80632d7ec163116101b1578063522bed1111610175578063522bed111461049757806370a08231146104c0578063715018a6146104fd578063751039fc146105145780637d1db4a51461052b57610230565b80632d7ec163146103d45780632fd689e3146103eb578063313ce567146104165780633d6a9afe1461044157806349bd5a5e1461046c57610230565b80631694505e116101f85780631694505e146102ef57806318160ddd1461031a57806322958a871461034557806323b872dd1461036e57806327a14fc2146103ab57610230565b806306fdde031461023557806308e5ca9514610260578063095ea7b3146102895780631006ee0c146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610899565b60405161025791906132e6565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613352565b6108d6565b005b34801561029557600080fd5b506102b060048036038101906102ab91906133dd565b610975565b6040516102bd9190613438565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190613453565b610993565b005b3480156102fb57600080fd5b50610304610a3a565b60405161031191906134f2565b60405180910390f35b34801561032657600080fd5b5061032f610a60565b60405161033c919061351c565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906135c8565b610a70565b005b34801561037a57600080fd5b5061039560048036038101906103909190613628565b610baa565b6040516103a29190613438565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190613352565b610c83565b005b3480156103e057600080fd5b506103e9610d22565b005b3480156103f757600080fd5b50610400610df3565b60405161040d919061351c565b60405180910390f35b34801561042257600080fd5b5061042b610df9565b6040516104389190613697565b60405180910390f35b34801561044d57600080fd5b50610456610e02565b60405161046391906136d3565b60405180910390f35b34801561047857600080fd5b50610481610e28565b60405161048e91906136fd565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613718565b610e4e565b005b3480156104cc57600080fd5b506104e760048036038101906104e29190613718565b610f3e565b6040516104f4919061351c565b60405180910390f35b34801561050957600080fd5b50610512610f8f565b005b34801561052057600080fd5b506105296110e2565b005b34801561053757600080fd5b50610540611197565b60405161054d919061351c565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190613718565b61119d565b60405161058a919061351c565b60405180910390f35b34801561059f57600080fd5b506105a86111b5565b6040516105b5919061351c565b60405180910390f35b3480156105ca57600080fd5b506105d36111bb565b005b3480156105e157600080fd5b506105ea611274565b6040516105f791906136fd565b60405180910390f35b34801561060c57600080fd5b5061061561129d565b604051610622919061351c565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d9190613745565b6112a3565b005b34801561066057600080fd5b506106696113e9565b60405161067691906132e6565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a191906133dd565b611426565b6040516106b39190613438565b60405180910390f35b3480156106c857600080fd5b506106d1611444565b005b3480156106df57600080fd5b506106e861151d565b6040516106f5919061351c565b60405180910390f35b34801561070a57600080fd5b5061072560048036038101906107209190613718565b611523565b6040516107329190613438565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190613785565b611543565b005b34801561077057600080fd5b5061078b600480360381019061078691906135c8565b6115f5565b005b34801561079957600080fd5b506107a261172f565b6040516107af91906136d3565b60405180910390f35b3480156107c457600080fd5b506107df60048036038101906107da9190613352565b611755565b005b3480156107ed57600080fd5b5061080860048036038101906108039190613745565b6117f4565b604051610815919061351c565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613352565b61187b565b005b34801561085357600080fd5b5061086e60048036038101906108699190613718565b61191a565b005b34801561087c57600080fd5b50610897600480360381019061089291906138f0565b611adb565b005b60606040518060400160405280600781526020017f50696b6163687500000000000000000000000000000000000000000000000000815250905090565b6108de611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290613985565b60405180910390fd5b80601b8190555050565b6000610989610982611c05565b8484611c0d565b6001905092915050565b61099b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90613985565b60405180910390fd5b8160098190555080600b819055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b610a78611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90613985565b60405180910390fd5b60005b83839050811015610ba4578160166000868685818110610b2b57610b2a6139a5565b5b9050602002016020810190610b409190613718565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b9c90613a03565b915050610b08565b50505050565b6000610bb7848484611dd6565b610c7884610bc3611c05565b610c738560405180606001604052806028815260200161447560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c29611c05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127819092919063ffffffff16565b611c0d565b600190509392505050565b610c8b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613985565b60405180910390fd5b8060188190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d63611c05565b73ffffffffffffffffffffffffffffffffffffffff161480610dd95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dc1611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b610de257600080fd5b6000479050610df0816127e5565b50565b60195481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e56611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613985565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610f88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612851565b9050919050565b610f97611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613985565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110ea611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613985565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b60175481565b60116020528060005260406000206000915090505481565b601b5481565b6111c3611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613985565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e4611c05565b73ffffffffffffffffffffffffffffffffffffffff16148061135a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611342611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b61136357600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600481526020017f50494b4100000000000000000000000000000000000000000000000000000000815250905090565b600061143a611433611c05565b8484611dd6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611485611c05565b73ffffffffffffffffffffffffffffffffffffffff1614806114fb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e3611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b61150457600080fd5b600061150f30610f3e565b905061151a816128bf565b50565b601a5481565b60106020528060005260406000206000915054906101000a900460ff1681565b61154b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90613985565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6115fd611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613985565b60405180910390fd5b60005b838390508110156117295781600560008686858181106116b0576116af6139a5565b5b90506020020160208101906116c59190613718565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061172190613a03565b91505061168d565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61175d611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190613985565b60405180910390fd5b8060198190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611883611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613985565b60405180910390fd5b8060178190555050565b611922611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a690613985565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613abd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ae3611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613985565b60405180910390fd5b60005b8151811015611c0157600160106000848481518110611b9557611b946139a5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bf990613a03565b915050611b73565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613b4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290613be1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dc9919061351c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90613c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab90613d05565b60405180910390fd5b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613d97565b60405180910390fd5b611eff611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f6d5750611f3d611274565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561248057601560149054906101000a900460ff166120b057611f8e611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612070575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561206f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a690613e29565b60405180910390fd5b5b601b54601a546120c09190613e49565b431080156120cd5750483a115b15612124576377359400483a6120e39190613e7d565b10612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211a90613efd565b60405180910390fd5b5b601754811115612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090613f69565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561220d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61224c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224390613ffb565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122f957601854816122ae84610f3e565b6122b89190613e49565b106122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef9061408d565b60405180910390fd5b5b600061230430610f3e565b905060006019548210159050601954821061231f5760195491505b808015612337575060158054906101000a900460ff16155b80156123915750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123a95750601560169054906101000a900460ff165b80156123ff5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124555750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247d57612463826128bf565b6000479050600081111561247b5761247a476127e5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125275750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125da5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125d95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125e8576000905061276f565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126ab57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127565750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561276e57600a54600c81905550600b54600d819055505b5b61277b84848484612b36565b50505050565b60008383111582906127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c091906132e6565b60405180910390fd5b50600083856127d89190613e7d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561284d573d6000803e3d6000fd5b5050565b6000600654821115612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f9061411f565b60405180910390fd5b60006128a2612b63565b90506128b78184612b8e90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128f6576128f56137b2565b5b6040519080825280602002602001820160405280156129245781602001602082028036833780820191505090505b509050308160008151811061293c5761293b6139a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a079190614154565b81600181518110612a1b57612a1a6139a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c0d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae695949392919061427a565b600060405180830381600087803b158015612b0057600080fd5b505af1158015612b14573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b4457612b43612bd8565b5b612b4f848484612c15565b80612b5d57612b5c612de0565b5b50505050565b6000806000612b70612df4565b91509150612b878183612b8e90919063ffffffff16565b9250505090565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e53565b905092915050565b6000600c54148015612bec57506000600d54145b612c1357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2787612eb6565b955095509550955095509550612c8586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6681612fc6565b612d708483613083565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dcd919061351c565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612e28670de0b6b3a7640000600654612b8e90919063ffffffff16565b821015612e4657600654670de0b6b3a7640000935093505050612e4f565b81819350935050505b9091565b60008083118290612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9191906132e6565b60405180910390fd5b5060008385612ea99190614303565b9050809150509392505050565b6000806000806000806000806000612ed38a600c54600d546130bd565b9250925092506000612ee3612b63565b90506000806000612ef68e878787613153565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612781565b905092915050565b6000808284612f779190613e49565b905083811015612fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb390614380565b60405180910390fd5b8091505092915050565b6000612fd0612b63565b90506000612fe782846131dc90919063ffffffff16565b905061303b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309882600654612f1e90919063ffffffff16565b6006819055506130b381600754612f6890919063ffffffff16565b6007819055505050565b6000806000806130e960646130db888a6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b905060006131136064613105888b6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b9050600061313c8261312e858c612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061316c85896131dc90919063ffffffff16565b9050600061318386896131dc90919063ffffffff16565b9050600061319a87896131dc90919063ffffffff16565b905060006131c3826131b58587612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131ee5760009050613250565b600082846131fc91906143a0565b905082848261320b9190614303565b1461324b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324290614454565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613290578082015181840152602081019050613275565b60008484015250505050565b6000601f19601f8301169050919050565b60006132b882613256565b6132c28185613261565b93506132d2818560208601613272565b6132db8161329c565b840191505092915050565b6000602082019050818103600083015261330081846132ad565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61332f8161331c565b811461333a57600080fd5b50565b60008135905061334c81613326565b92915050565b60006020828403121561336857613367613312565b5b60006133768482850161333d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133aa8261337f565b9050919050565b6133ba8161339f565b81146133c557600080fd5b50565b6000813590506133d7816133b1565b92915050565b600080604083850312156133f4576133f3613312565b5b6000613402858286016133c8565b92505060206134138582860161333d565b9150509250929050565b60008115159050919050565b6134328161341d565b82525050565b600060208201905061344d6000830184613429565b92915050565b6000806040838503121561346a57613469613312565b5b60006134788582860161333d565b92505060206134898582860161333d565b9150509250929050565b6000819050919050565b60006134b86134b36134ae8461337f565b613493565b61337f565b9050919050565b60006134ca8261349d565b9050919050565b60006134dc826134bf565b9050919050565b6134ec816134d1565b82525050565b600060208201905061350760008301846134e3565b92915050565b6135168161331c565b82525050565b6000602082019050613531600083018461350d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261355c5761355b613537565b5b8235905067ffffffffffffffff8111156135795761357861353c565b5b60208301915083602082028301111561359557613594613541565b5b9250929050565b6135a58161341d565b81146135b057600080fd5b50565b6000813590506135c28161359c565b92915050565b6000806000604084860312156135e1576135e0613312565b5b600084013567ffffffffffffffff8111156135ff576135fe613317565b5b61360b86828701613546565b9350935050602061361e868287016135b3565b9150509250925092565b60008060006060848603121561364157613640613312565b5b600061364f868287016133c8565b9350506020613660868287016133c8565b92505060406136718682870161333d565b9150509250925092565b600060ff82169050919050565b6136918161367b565b82525050565b60006020820190506136ac6000830184613688565b92915050565b60006136bd8261337f565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6136f78161339f565b82525050565b600060208201905061371260008301846136ee565b92915050565b60006020828403121561372e5761372d613312565b5b600061373c848285016133c8565b91505092915050565b6000806040838503121561375c5761375b613312565b5b600061376a858286016133c8565b925050602061377b858286016133c8565b9150509250929050565b60006020828403121561379b5761379a613312565b5b60006137a9848285016135b3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137ea8261329c565b810181811067ffffffffffffffff82111715613809576138086137b2565b5b80604052505050565b600061381c613308565b905061382882826137e1565b919050565b600067ffffffffffffffff821115613848576138476137b2565b5b602082029050602081019050919050565b600061386c6138678461382d565b613812565b9050808382526020820190506020840283018581111561388f5761388e613541565b5b835b818110156138b857806138a488826133c8565b845260208401935050602081019050613891565b5050509392505050565b600082601f8301126138d7576138d6613537565b5b81356138e7848260208601613859565b91505092915050565b60006020828403121561390657613905613312565b5b600082013567ffffffffffffffff81111561392457613923613317565b5b613930848285016138c2565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061396f602083613261565b915061397a82613939565b602082019050919050565b6000602082019050818103600083015261399e81613962565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a0e8261331c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4057613a3f6139d4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aa7602683613261565b9150613ab282613a4b565b604082019050919050565b60006020820190508181036000830152613ad681613a9a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b39602483613261565b9150613b4482613add565b604082019050919050565b60006020820190508181036000830152613b6881613b2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcb602283613261565b9150613bd682613b6f565b604082019050919050565b60006020820190508181036000830152613bfa81613bbe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c5d602583613261565b9150613c6882613c01565b604082019050919050565b60006020820190508181036000830152613c8c81613c50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cef602383613261565b9150613cfa82613c93565b604082019050919050565b60006020820190508181036000830152613d1e81613ce2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d81602983613261565b9150613d8c82613d25565b604082019050919050565b60006020820190508181036000830152613db081613d74565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e13603f83613261565b9150613e1e82613db7565b604082019050919050565b60006020820190508181036000830152613e4281613e06565b9050919050565b6000613e548261331c565b9150613e5f8361331c565b9250828201905080821115613e7757613e766139d4565b5b92915050565b6000613e888261331c565b9150613e938361331c565b9250828203905081811115613eab57613eaa6139d4565b5b92915050565b7f544f4b454e3a2043414e4e4f54204255592041544d0000000000000000000000600082015250565b6000613ee7601583613261565b9150613ef282613eb1565b602082019050919050565b60006020820190508181036000830152613f1681613eda565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f53601c83613261565b9150613f5e82613f1d565b602082019050919050565b60006020820190508181036000830152613f8281613f46565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe5602383613261565b9150613ff082613f89565b604082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614077602383613261565b91506140828261401b565b604082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614109602a83613261565b9150614114826140ad565b604082019050919050565b60006020820190508181036000830152614138816140fc565b9050919050565b60008151905061414e816133b1565b92915050565b60006020828403121561416a57614169613312565b5b60006141788482850161413f565b91505092915050565b6000819050919050565b60006141a66141a161419c84614181565b613493565b61331c565b9050919050565b6141b68161418b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141f18161339f565b82525050565b600061420383836141e8565b60208301905092915050565b6000602082019050919050565b6000614227826141bc565b61423181856141c7565b935061423c836141d8565b8060005b8381101561426d57815161425488826141f7565b975061425f8361420f565b925050600181019050614240565b5085935050505092915050565b600060a08201905061428f600083018861350d565b61429c60208301876141ad565b81810360408301526142ae818661421c565b90506142bd60608301856136ee565b6142ca608083018461350d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061430e8261331c565b91506143198361331c565b925082614329576143286142d4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061436a601b83613261565b915061437582614334565b602082019050919050565b600060208201905081810360008301526143998161435d565b9050919050565b60006143ab8261331c565b91506143b68361331c565b92508282026143c48161331c565b915082820484148315176143db576143da6139d4565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061443e602183613261565b9150614449826143e2565b604082019050919050565b6000602082019050818103600083015261446d81614431565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f44352a19aa7d1e364809adeec295ddeae0ee240698069d8264554ff950fec364736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80637f2feddc11610123578063bf56b371116100ab578063d1c7d9431161006f578063d1c7d943146107b8578063dd62ed3e146107e1578063ec28438a1461081e578063f2fde38b14610847578063f7159d421461087057610230565b8063bf56b371146106d3578063bfd79284146106fe578063c10195331461073b578063c492f04614610764578063caac79341461078d57610230565b80638f9a55c0116100f25780638f9a55c014610600578063946304cc1461062b57806395d89b4114610654578063a9059cbb1461067f578063aacc5f23146106bc57610230565b80637f2feddc146105565780638a054ac2146105935780638a8c523c146105be5780638da5cb5b146105d557610230565b80632d7ec163116101b1578063522bed1111610175578063522bed111461049757806370a08231146104c0578063715018a6146104fd578063751039fc146105145780637d1db4a51461052b57610230565b80632d7ec163146103d45780632fd689e3146103eb578063313ce567146104165780633d6a9afe1461044157806349bd5a5e1461046c57610230565b80631694505e116101f85780631694505e146102ef57806318160ddd1461031a57806322958a871461034557806323b872dd1461036e57806327a14fc2146103ab57610230565b806306fdde031461023557806308e5ca9514610260578063095ea7b3146102895780631006ee0c146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610899565b60405161025791906132e6565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613352565b6108d6565b005b34801561029557600080fd5b506102b060048036038101906102ab91906133dd565b610975565b6040516102bd9190613438565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190613453565b610993565b005b3480156102fb57600080fd5b50610304610a3a565b60405161031191906134f2565b60405180910390f35b34801561032657600080fd5b5061032f610a60565b60405161033c919061351c565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906135c8565b610a70565b005b34801561037a57600080fd5b5061039560048036038101906103909190613628565b610baa565b6040516103a29190613438565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190613352565b610c83565b005b3480156103e057600080fd5b506103e9610d22565b005b3480156103f757600080fd5b50610400610df3565b60405161040d919061351c565b60405180910390f35b34801561042257600080fd5b5061042b610df9565b6040516104389190613697565b60405180910390f35b34801561044d57600080fd5b50610456610e02565b60405161046391906136d3565b60405180910390f35b34801561047857600080fd5b50610481610e28565b60405161048e91906136fd565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613718565b610e4e565b005b3480156104cc57600080fd5b506104e760048036038101906104e29190613718565b610f3e565b6040516104f4919061351c565b60405180910390f35b34801561050957600080fd5b50610512610f8f565b005b34801561052057600080fd5b506105296110e2565b005b34801561053757600080fd5b50610540611197565b60405161054d919061351c565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190613718565b61119d565b60405161058a919061351c565b60405180910390f35b34801561059f57600080fd5b506105a86111b5565b6040516105b5919061351c565b60405180910390f35b3480156105ca57600080fd5b506105d36111bb565b005b3480156105e157600080fd5b506105ea611274565b6040516105f791906136fd565b60405180910390f35b34801561060c57600080fd5b5061061561129d565b604051610622919061351c565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d9190613745565b6112a3565b005b34801561066057600080fd5b506106696113e9565b60405161067691906132e6565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a191906133dd565b611426565b6040516106b39190613438565b60405180910390f35b3480156106c857600080fd5b506106d1611444565b005b3480156106df57600080fd5b506106e861151d565b6040516106f5919061351c565b60405180910390f35b34801561070a57600080fd5b5061072560048036038101906107209190613718565b611523565b6040516107329190613438565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190613785565b611543565b005b34801561077057600080fd5b5061078b600480360381019061078691906135c8565b6115f5565b005b34801561079957600080fd5b506107a261172f565b6040516107af91906136d3565b60405180910390f35b3480156107c457600080fd5b506107df60048036038101906107da9190613352565b611755565b005b3480156107ed57600080fd5b5061080860048036038101906108039190613745565b6117f4565b604051610815919061351c565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613352565b61187b565b005b34801561085357600080fd5b5061086e60048036038101906108699190613718565b61191a565b005b34801561087c57600080fd5b50610897600480360381019061089291906138f0565b611adb565b005b60606040518060400160405280600781526020017f50696b6163687500000000000000000000000000000000000000000000000000815250905090565b6108de611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290613985565b60405180910390fd5b80601b8190555050565b6000610989610982611c05565b8484611c0d565b6001905092915050565b61099b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90613985565b60405180910390fd5b8160098190555080600b819055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b610a78611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90613985565b60405180910390fd5b60005b83839050811015610ba4578160166000868685818110610b2b57610b2a6139a5565b5b9050602002016020810190610b409190613718565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b9c90613a03565b915050610b08565b50505050565b6000610bb7848484611dd6565b610c7884610bc3611c05565b610c738560405180606001604052806028815260200161447560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c29611c05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127819092919063ffffffff16565b611c0d565b600190509392505050565b610c8b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613985565b60405180910390fd5b8060188190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d63611c05565b73ffffffffffffffffffffffffffffffffffffffff161480610dd95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dc1611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b610de257600080fd5b6000479050610df0816127e5565b50565b60195481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e56611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613985565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610f88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612851565b9050919050565b610f97611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613985565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110ea611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613985565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b60175481565b60116020528060005260406000206000915090505481565b601b5481565b6111c3611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613985565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e4611c05565b73ffffffffffffffffffffffffffffffffffffffff16148061135a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611342611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b61136357600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600481526020017f50494b4100000000000000000000000000000000000000000000000000000000815250905090565b600061143a611433611c05565b8484611dd6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611485611c05565b73ffffffffffffffffffffffffffffffffffffffff1614806114fb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e3611c05565b73ffffffffffffffffffffffffffffffffffffffff16145b61150457600080fd5b600061150f30610f3e565b905061151a816128bf565b50565b601a5481565b60106020528060005260406000206000915054906101000a900460ff1681565b61154b611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90613985565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6115fd611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613985565b60405180910390fd5b60005b838390508110156117295781600560008686858181106116b0576116af6139a5565b5b90506020020160208101906116c59190613718565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061172190613a03565b91505061168d565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61175d611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190613985565b60405180910390fd5b8060198190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611883611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613985565b60405180910390fd5b8060178190555050565b611922611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a690613985565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613abd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ae3611c05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613985565b60405180910390fd5b60005b8151811015611c0157600160106000848481518110611b9557611b946139a5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bf990613a03565b915050611b73565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613b4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290613be1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dc9919061351c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90613c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab90613d05565b60405180910390fd5b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613d97565b60405180910390fd5b611eff611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f6d5750611f3d611274565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561248057601560149054906101000a900460ff166120b057611f8e611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612070575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561206f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a690613e29565b60405180910390fd5b5b601b54601a546120c09190613e49565b431080156120cd5750483a115b15612124576377359400483a6120e39190613e7d565b10612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211a90613efd565b60405180910390fd5b5b601754811115612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090613f69565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561220d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61224c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224390613ffb565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122f957601854816122ae84610f3e565b6122b89190613e49565b106122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef9061408d565b60405180910390fd5b5b600061230430610f3e565b905060006019548210159050601954821061231f5760195491505b808015612337575060158054906101000a900460ff16155b80156123915750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123a95750601560169054906101000a900460ff165b80156123ff5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124555750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247d57612463826128bf565b6000479050600081111561247b5761247a476127e5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125275750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125da5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125d95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125e8576000905061276f565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126ab57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127565750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561276e57600a54600c81905550600b54600d819055505b5b61277b84848484612b36565b50505050565b60008383111582906127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c091906132e6565b60405180910390fd5b50600083856127d89190613e7d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561284d573d6000803e3d6000fd5b5050565b6000600654821115612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f9061411f565b60405180910390fd5b60006128a2612b63565b90506128b78184612b8e90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128f6576128f56137b2565b5b6040519080825280602002602001820160405280156129245781602001602082028036833780820191505090505b509050308160008151811061293c5761293b6139a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a079190614154565b81600181518110612a1b57612a1a6139a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c0d565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae695949392919061427a565b600060405180830381600087803b158015612b0057600080fd5b505af1158015612b14573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b4457612b43612bd8565b5b612b4f848484612c15565b80612b5d57612b5c612de0565b5b50505050565b6000806000612b70612df4565b91509150612b878183612b8e90919063ffffffff16565b9250505090565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e53565b905092915050565b6000600c54148015612bec57506000600d54145b612c1357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2787612eb6565b955095509550955095509550612c8586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6681612fc6565b612d708483613083565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dcd919061351c565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612e28670de0b6b3a7640000600654612b8e90919063ffffffff16565b821015612e4657600654670de0b6b3a7640000935093505050612e4f565b81819350935050505b9091565b60008083118290612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9191906132e6565b60405180910390fd5b5060008385612ea99190614303565b9050809150509392505050565b6000806000806000806000806000612ed38a600c54600d546130bd565b9250925092506000612ee3612b63565b90506000806000612ef68e878787613153565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612781565b905092915050565b6000808284612f779190613e49565b905083811015612fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb390614380565b60405180910390fd5b8091505092915050565b6000612fd0612b63565b90506000612fe782846131dc90919063ffffffff16565b905061303b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309882600654612f1e90919063ffffffff16565b6006819055506130b381600754612f6890919063ffffffff16565b6007819055505050565b6000806000806130e960646130db888a6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b905060006131136064613105888b6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b9050600061313c8261312e858c612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061316c85896131dc90919063ffffffff16565b9050600061318386896131dc90919063ffffffff16565b9050600061319a87896131dc90919063ffffffff16565b905060006131c3826131b58587612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131ee5760009050613250565b600082846131fc91906143a0565b905082848261320b9190614303565b1461324b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324290614454565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613290578082015181840152602081019050613275565b60008484015250505050565b6000601f19601f8301169050919050565b60006132b882613256565b6132c28185613261565b93506132d2818560208601613272565b6132db8161329c565b840191505092915050565b6000602082019050818103600083015261330081846132ad565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61332f8161331c565b811461333a57600080fd5b50565b60008135905061334c81613326565b92915050565b60006020828403121561336857613367613312565b5b60006133768482850161333d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133aa8261337f565b9050919050565b6133ba8161339f565b81146133c557600080fd5b50565b6000813590506133d7816133b1565b92915050565b600080604083850312156133f4576133f3613312565b5b6000613402858286016133c8565b92505060206134138582860161333d565b9150509250929050565b60008115159050919050565b6134328161341d565b82525050565b600060208201905061344d6000830184613429565b92915050565b6000806040838503121561346a57613469613312565b5b60006134788582860161333d565b92505060206134898582860161333d565b9150509250929050565b6000819050919050565b60006134b86134b36134ae8461337f565b613493565b61337f565b9050919050565b60006134ca8261349d565b9050919050565b60006134dc826134bf565b9050919050565b6134ec816134d1565b82525050565b600060208201905061350760008301846134e3565b92915050565b6135168161331c565b82525050565b6000602082019050613531600083018461350d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261355c5761355b613537565b5b8235905067ffffffffffffffff8111156135795761357861353c565b5b60208301915083602082028301111561359557613594613541565b5b9250929050565b6135a58161341d565b81146135b057600080fd5b50565b6000813590506135c28161359c565b92915050565b6000806000604084860312156135e1576135e0613312565b5b600084013567ffffffffffffffff8111156135ff576135fe613317565b5b61360b86828701613546565b9350935050602061361e868287016135b3565b9150509250925092565b60008060006060848603121561364157613640613312565b5b600061364f868287016133c8565b9350506020613660868287016133c8565b92505060406136718682870161333d565b9150509250925092565b600060ff82169050919050565b6136918161367b565b82525050565b60006020820190506136ac6000830184613688565b92915050565b60006136bd8261337f565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6136f78161339f565b82525050565b600060208201905061371260008301846136ee565b92915050565b60006020828403121561372e5761372d613312565b5b600061373c848285016133c8565b91505092915050565b6000806040838503121561375c5761375b613312565b5b600061376a858286016133c8565b925050602061377b858286016133c8565b9150509250929050565b60006020828403121561379b5761379a613312565b5b60006137a9848285016135b3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137ea8261329c565b810181811067ffffffffffffffff82111715613809576138086137b2565b5b80604052505050565b600061381c613308565b905061382882826137e1565b919050565b600067ffffffffffffffff821115613848576138476137b2565b5b602082029050602081019050919050565b600061386c6138678461382d565b613812565b9050808382526020820190506020840283018581111561388f5761388e613541565b5b835b818110156138b857806138a488826133c8565b845260208401935050602081019050613891565b5050509392505050565b600082601f8301126138d7576138d6613537565b5b81356138e7848260208601613859565b91505092915050565b60006020828403121561390657613905613312565b5b600082013567ffffffffffffffff81111561392457613923613317565b5b613930848285016138c2565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061396f602083613261565b915061397a82613939565b602082019050919050565b6000602082019050818103600083015261399e81613962565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a0e8261331c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4057613a3f6139d4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aa7602683613261565b9150613ab282613a4b565b604082019050919050565b60006020820190508181036000830152613ad681613a9a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b39602483613261565b9150613b4482613add565b604082019050919050565b60006020820190508181036000830152613b6881613b2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcb602283613261565b9150613bd682613b6f565b604082019050919050565b60006020820190508181036000830152613bfa81613bbe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c5d602583613261565b9150613c6882613c01565b604082019050919050565b60006020820190508181036000830152613c8c81613c50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cef602383613261565b9150613cfa82613c93565b604082019050919050565b60006020820190508181036000830152613d1e81613ce2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d81602983613261565b9150613d8c82613d25565b604082019050919050565b60006020820190508181036000830152613db081613d74565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e13603f83613261565b9150613e1e82613db7565b604082019050919050565b60006020820190508181036000830152613e4281613e06565b9050919050565b6000613e548261331c565b9150613e5f8361331c565b9250828201905080821115613e7757613e766139d4565b5b92915050565b6000613e888261331c565b9150613e938361331c565b9250828203905081811115613eab57613eaa6139d4565b5b92915050565b7f544f4b454e3a2043414e4e4f54204255592041544d0000000000000000000000600082015250565b6000613ee7601583613261565b9150613ef282613eb1565b602082019050919050565b60006020820190508181036000830152613f1681613eda565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f53601c83613261565b9150613f5e82613f1d565b602082019050919050565b60006020820190508181036000830152613f8281613f46565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe5602383613261565b9150613ff082613f89565b604082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614077602383613261565b91506140828261401b565b604082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614109602a83613261565b9150614114826140ad565b604082019050919050565b60006020820190508181036000830152614138816140fc565b9050919050565b60008151905061414e816133b1565b92915050565b60006020828403121561416a57614169613312565b5b60006141788482850161413f565b91505092915050565b6000819050919050565b60006141a66141a161419c84614181565b613493565b61331c565b9050919050565b6141b68161418b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141f18161339f565b82525050565b600061420383836141e8565b60208301905092915050565b6000602082019050919050565b6000614227826141bc565b61423181856141c7565b935061423c836141d8565b8060005b8381101561426d57815161425488826141f7565b975061425f8361420f565b925050600181019050614240565b5085935050505092915050565b600060a08201905061428f600083018861350d565b61429c60208301876141ad565b81810360408301526142ae818661421c565b90506142bd60608301856136ee565b6142ca608083018461350d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061430e8261331c565b91506143198361331c565b925082614329576143286142d4565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061436a601b83613261565b915061437582614334565b602082019050919050565b600060208201905081810360008301526143998161435d565b9050919050565b60006143ab8261331c565b91506143b68361331c565b92508282026143c48161331c565b915082820484148315176143db576143da6139d4565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061443e602183613261565b9150614449826143e2565b604082019050919050565b6000602082019050818103600083015261446d81614431565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f44352a19aa7d1e364809adeec295ddeae0ee240698069d8264554ff950fec364736f6c63430008120033

Deployed Bytecode Sourcemap

4145:14378:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6809:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18442:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7741:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16947:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5373:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7089:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18232:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7943:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17702:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13007:236;;;;;;;;;;;;;:::i;:::-;;5725:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6997:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5273:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5421:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13434:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7193:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1657:148;;;;;;;;;;;;;:::i;:::-;;17825:117;;;;;;;;;;;;;:::i;:::-;;5615:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5222:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5825:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12643:113;;;;;;;;;;;;;:::i;:::-;;1447:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5669:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17948:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6901:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7340:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12763:235;;;;;;;;;;;;;:::i;:::-;;5791:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5184:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17228:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17339:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5322:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17110:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7548:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17579:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1814:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13252:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6809:83;6846:13;6879:5;;;;;;;;;;;;;;;;;6872:12;;6809:83;:::o;18442:78::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18510:2:::1;18508:1;:4;;;;18442:78:::0;:::o;7741:193::-;7843:4;7865:39;7874:12;:10;:12::i;:::-;7888:7;7897:6;7865:8;:39::i;:::-;7922:4;7915:11;;7741:193;;;;:::o;16947:157::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17050:9:::1;17035:12;:24;;;;17086:10;17070:13;:26;;;;16947:157:::0;;:::o;5373:41::-;;;;;;;;;;;;;:::o;7089:95::-;7142:7;4689:18;7162:14;;7089:95;:::o;18232:204::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18328:9:::1;18324:105;18347:8;;:15;;18343:1;:19;18324:105;;;18410:7;18384:10;:23;18395:8;;18404:1;18395:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18384:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18364:3;;;;;:::i;:::-;;;;18324:105;;;;18232:204:::0;;;:::o;7943:446::-;8075:4;8092:36;8102:6;8110:9;8121:6;8092:9;:36::i;:::-;8139:220;8162:6;8183:12;:10;:12::i;:::-;8210:138;8266:6;8210:138;;;;;;;;;;;;;;;;;:11;:19;8222:6;8210:19;;;;;;;;;;;;;;;:33;8230:12;:10;:12::i;:::-;8210:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8139:8;:220::i;:::-;8377:4;8370:11;;7943:446;;;;;:::o;17702:117::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17798:13:::1;17781:14;:30;;;;17702:117:::0;:::o;13007:236::-;13074:19;;;;;;;;;;;13058:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13113:17;;;;;;;;;;;13097:33;;:12;:10;:12::i;:::-;:33;;;13058:72;13050:81;;;;;;13142:26;13171:21;13142:50;;13203:32;13216:18;13203:12;:32::i;:::-;13039:204;13007:236::o;5725:53::-;;;;:::o;6997:83::-;7038:5;4365:1;7056:16;;6997:83;:::o;5273:42::-;;;;;;;;;;;;;:::o;5421:28::-;;;;;;;;;;;;;:::o;13434:99::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13520:5:::1;13505:4;:12;13510:6;13505:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13434:99:::0;:::o;7193:138::-;7259:7;7286:37;7306:7;:16;7314:7;7306:16;;;;;;;;;;;;;;;;7286:19;:37::i;:::-;7279:44;;7193:138;;;:::o;1657:148::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1764:1:::1;1727:40;;1748:6;::::0;::::1;;;;;;;;1727:40;;;;;;;;;;;;1795:1;1778:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1657:148::o:0;17825:117::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4689:18:::1;17877:12;:22;;;;4689:18;17910:14;:24;;;;17825:117::o:0;5615:46::-;;;;:::o;5222:43::-;;;;;;;;;;;;;;;;;:::o;5825:18::-;;;;:::o;12643:113::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12710:4:::1;12696:11;;:18;;;;;;;;;;;;;;;;;;12736:12;12725:10;:23;;;;12643:113::o:0;1447:79::-;1485:7;1512:6;;;;;;;;;;;1505:13;;1447:79;:::o;5669:48::-;;;;:::o;17948:278::-;18057:19;;;;;;;;;;;18041:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;18096:17;;;;;;;;;;;18080:33;;:12;:10;:12::i;:::-;:33;;;18041:72;18033:81;;;;;;18153:10;18125:17;;:39;;;;;;;;;;;;;;;;;;18205:12;18175:19;;:43;;;;;;;;;;;;;;;;;;17948:278;;:::o;6901:87::-;6940:13;6973:7;;;;;;;;;;;;;;;;;6966:14;;6901:87;:::o;7340:199::-;7445:4;7467:42;7477:12;:10;:12::i;:::-;7491:9;7502:6;7467:9;:42::i;:::-;7527:4;7520:11;;7340:199;;;;:::o;12763:235::-;12828:19;;;;;;;;;;;12812:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12867:17;;;;;;;;;;;12851:33;;:12;:10;:12::i;:::-;:33;;;12812:72;12804:81;;;;;;12896:23;12922:24;12940:4;12922:9;:24::i;:::-;12896:50;;12957:33;12974:15;12957:16;:33::i;:::-;12793:205;12763:235::o;5791:27::-;;;;:::o;5184:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;17228:105::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17313:12:::1;17299:11;;:26;;;;;;;;;;;;;;;;;;17228:105:::0;:::o;17339:234::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17456:9:::1;17452:114;17475:8;;:15;;17471:1;:19;17452:114;;;17546:8;17512:18;:31;17531:8;;17540:1;17531:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17512:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17492:3;;;;;:::i;:::-;;;;17452:114;;;;17339:234:::0;;;:::o;5322:41::-;;;;;;;;;;;;;:::o;17110:112::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17207:7:::1;17185:19;:29;;;;17110:112:::0;:::o;7548:184::-;7665:7;7697:11;:18;7709:5;7697:18;;;;;;;;;;;;;;;:27;7716:7;7697:27;;;;;;;;;;;;;;;;7690:34;;7548:184;;;;:::o;17579:117::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17670:11:::1;17655:12;:26;;;;17579:117:::0;:::o;1814:244::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1923:1:::1;1903:22;;:8;:22;;::::0;1895:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2013:8;1984:38;;2005:6;::::0;::::1;;;;;;;;1984:38;;;;;;;;;;;;2042:8;2033:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1814:244:::0;:::o;13252:176::-;1582:12;:10;:12::i;:::-;1572:22;;:6;;;;;;;;;;:22;;;1564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13335:9:::1;13330:91;13354:5;:12;13350:1;:16;13330:91;;;13405:4;13388;:14;13393:5;13399:1;13393:8;;;;;;;;:::i;:::-;;;;;;;;13388:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13368:3;;;;;:::i;:::-;;;;13330:91;;;;13252:176:::0;:::o;226:98::-;279:7;306:10;299:17;;226:98;:::o;9086:369::-;9230:1;9213:19;;:5;:19;;;9205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9311:1;9292:21;;:7;:21;;;9284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9393:6;9363:11;:18;9375:5;9363:18;;;;;;;;;;;;;;;:27;9382:7;9363:27;;;;;;;;;;;;;;;:36;;;;9431:7;9415:32;;9424:5;9415:32;;;9440:6;9415:32;;;;;;:::i;:::-;;;;;;;;9086:369;;;:::o;9464:2572::-;9602:1;9586:18;;:4;:18;;;9578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:1;9665:16;;:2;:16;;;9657:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9749:1;9740:6;:10;9732:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9822:7;:5;:7::i;:::-;9814:15;;:4;:15;;;;:32;;;;;9839:7;:5;:7::i;:::-;9833:13;;:2;:13;;;;9814:32;9810:1494;;;9904:11;;;;;;;;;;;9899:195;;9953:7;:5;:7::i;:::-;9945:15;;:4;:15;;;:64;;;;9981:4;9965:20;;:10;:14;9976:2;9965:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;:43;;;;;9995:13;;;;;;;;;;;9989:19;;:4;:19;;;9965:43;9945:64;9936:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;9899:195;10145:1;;10132:10;;:14;;;;:::i;:::-;10115:12;:32;:63;;;;;10165:13;10151:11;:27;10115:63;10110:149;;;10221:10;10204:13;10190:11;:27;;;;:::i;:::-;10189:42;10181:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10110:149;10293:12;;10283:6;:22;;10275:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10362:4;:10;10367:4;10362:10;;;;;;;;;;;;;;;;;;;;;;;;;10361:11;:24;;;;;10377:4;:8;10382:2;10377:8;;;;;;;;;;;;;;;;;;;;;;;;;10376:9;10361:24;10353:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10452:13;;;;;;;;;;;10446:19;;:2;:19;;;10443:146;;10519:14;;10510:6;10494:13;10504:2;10494:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10486:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10443:146;10606:28;10637:24;10655:4;10637:9;:24::i;:::-;10606:55;;10676:12;10715:19;;10691:20;:43;;10676:58;;10779:19;;10755:20;:43;10752:138;;10855:19;;10832:42;;10752:138;10911:7;:18;;;;;10923:6;;;;;;;;;;10922:7;10911:18;:43;;;;;10941:13;;;;;;;;;;;10933:21;;:4;:21;;;;10911:43;:58;;;;;10958:11;;;;;;;;;;;10911:58;:87;;;;;10974:18;:24;10993:4;10974:24;;;;;;;;;;;;;;;;;;;;;;;;;10973:25;10911:87;:114;;;;;11003:18;:22;11022:2;11003:22;;;;;;;;;;;;;;;;;;;;;;;;;11002:23;10911:114;10907:386;;;11046:38;11063:20;11046:16;:38::i;:::-;11103:26;11132:21;11103:50;;11197:1;11176:18;:22;11172:106;;;11223:35;11236:21;11223:12;:35::i;:::-;11172:106;11027:266;10907:386;9848:1456;;9810:1494;11317:12;11332:4;11317:19;;11382:18;:24;11401:4;11382:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11410:18;:22;11429:2;11410:22;;;;;;;;;;;;;;;;;;;;;;;;;11382:50;11381:102;;;;11446:13;;;;;;;;;;;11438:21;;:4;:21;;;;:44;;;;;11469:13;;;;;;;;;;;11463:19;;:2;:19;;;;11438:44;11381:102;11377:597;;;11510:5;11500:15;;11377:597;;;11594:13;;;;;;;;;;;11586:21;;:4;:21;;;:55;;;;;11625:15;;;;;;;;;;;11611:30;;:2;:30;;;;11586:55;11583:162;;;11674:14;;11662:9;:26;;;;11717:12;;11707:7;:22;;;;11583:162;11805:13;;;;;;;;;;;11799:19;;:2;:19;;;:55;;;;;11838:15;;;;;;;;;;;11822:32;;:4;:32;;;;11799:55;11795:165;;;11887:15;;11875:9;:27;;;;11931:13;;11921:7;:23;;;;11795:165;11377:597;11987:41;12002:4;12008:2;12012:6;12020:7;11987:14;:41::i;:::-;9567:2469;9464:2572;;;:::o;2414:224::-;2534:7;2567:1;2562;:6;;2570:12;2554:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2594:9;2610:1;2606;:5;;;;:::i;:::-;2594:17;;2629:1;2622:8;;;2414:224;;;;;:::o;12537:99::-;12594:17;;;;;;;;;;;:26;;:34;12621:6;12594:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12537:99;:::o;8398:323::-;8493:7;8551;;8540;:18;;8518:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8639:19;8661:10;:8;:10::i;:::-;8639:32;;8689:24;8701:11;8689:7;:11;;:24;;;;:::i;:::-;8682:31;;;8398:323;;;:::o;12045:483::-;5944:4;5935:6;;:13;;;;;;;;;;;;;;;;;;12123:21:::1;12161:1;12147:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12123:40;;12192:4;12174;12179:1;12174:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12218:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12208:4;12213:1;12208:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12251:62;12268:4;12283:15;;;;;;;;;;;12301:11;12251:8;:62::i;:::-;12324:15;;;;;;;;;;;:66;;;12405:11;12431:1;12447:4;12474;12494:15;12324:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12112:416;5980:5:::0;5971:6;;:14;;;;;;;;;;;;;;;;;;12045:483;:::o;13539:282::-;13695:7;13690:28;;13704:14;:12;:14::i;:::-;13690:28;13729:44;13747:6;13755:9;13766:6;13729:17;:44::i;:::-;13789:7;13784:29;;13798:15;:13;:15::i;:::-;13784:29;13539:282;;;;:::o;16508:164::-;16550:7;16571:15;16588;16607:19;:17;:19::i;:::-;16570:56;;;;16644:20;16656:7;16644;:11;;:20;;;;:::i;:::-;16637:27;;;;16508:164;:::o;2896:132::-;2954:7;2981:39;2985:1;2988;2981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2974:46;;2896:132;;;;:::o;8730:221::-;8790:1;8777:9;;:14;:30;;;;;8806:1;8795:7;;:12;8777:30;8809:7;8773:43;8849:9;;8829:17;:29;;;;8887:7;;8869:15;:25;;;;8920:1;8908:9;:13;;;;8942:1;8932:7;:11;;;;8730:221;:::o;13830:610::-;13977:15;14007:23;14045:12;14072:23;14110:12;14137:13;14164:19;14175:7;14164:10;:19::i;:::-;13962:221;;;;;;;;;;;;14212:28;14232:7;14212;:15;14220:6;14212:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14194:7;:15;14202:6;14194:15;;;;;;;;;;;;;;;:46;;;;14272:39;14295:15;14272:7;:18;14280:9;14272:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14251:7;:18;14259:9;14251:18;;;;;;;;;;;;;;;:60;;;;14322:16;14332:5;14322:9;:16::i;:::-;14349:23;14361:4;14367;14349:11;:23::i;:::-;14405:9;14388:44;;14397:6;14388:44;;;14416:15;14388:44;;;;;;:::i;:::-;;;;;;;;13951:489;;;;;;13830:610;;;:::o;8960:117::-;9016:17;;9004:9;:29;;;;9054:15;;9044:7;:25;;;;8960:117::o;16681:257::-;16732:7;16741;16761:15;16779:7;;16761:25;;16797:15;4689:18;16797:25;;16847:20;4689:18;16847:7;;:11;;:20;;;;:::i;:::-;16837:7;:30;16833:61;;;16877:7;;4689:18;16869:25;;;;;;;;16833:61;16913:7;16922;16905:25;;;;;;16681:257;;;:::o;3034:223::-;3154:7;3186:1;3182;:5;3189:12;3174:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3213:9;3229:1;3225;:5;;;;:::i;:::-;3213:17;;3248:1;3241:8;;;3034:223;;;;;:::o;14863:615::-;14963:7;14985;15007;15029;15051;15073;15109:23;15134:12;15148:13;15178:40;15190:7;15199:9;;15210:7;;15178:11;:40::i;:::-;15108:110;;;;;;15229:19;15251:10;:8;:10::i;:::-;15229:32;;15273:15;15290:23;15315:12;15344:46;15356:7;15365:4;15371:5;15378:11;15344;:46::i;:::-;15272:118;;;;;;15409:7;15418:15;15435:4;15441:15;15458:4;15464:5;15401:69;;;;;;;;;;;;;;;;;;;14863:615;;;;;;;:::o;2272:136::-;2330:7;2357:43;2361:1;2364;2357:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2350:50;;2272:136;;;;:::o;2087:179::-;2145:7;2165:9;2181:1;2177;:5;;;;:::i;:::-;2165:17;;2206:1;2201;:6;;2193:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2257:1;2250:8;;;2087:179;;;;:::o;14449:211::-;14502:19;14524:10;:8;:10::i;:::-;14502:32;;14545:13;14561:22;14571:11;14561:5;:9;;:22;;;;:::i;:::-;14545:38;;14619:33;14646:5;14619:7;:22;14635:4;14619:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14594:7;:22;14610:4;14594:22;;;;;;;;;;;;;;;:58;;;;14491:169;;14449:211;:::o;14669:147::-;14747:17;14759:4;14747:7;;:11;;:17;;;;:::i;:::-;14737:7;:27;;;;14788:20;14803:4;14788:10;;:14;;:20;;;;:::i;:::-;14775:10;:33;;;;14669:147;;:::o;15487:469::-;15656:7;15678;15700;15735:12;15750:30;15776:3;15750:21;15762:8;15750:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15735:45;;15791:13;15807:28;15831:3;15807:19;15819:6;15807:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15791:44;;15846:23;15872:28;15894:5;15872:17;15884:4;15872:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15846:54;;15919:15;15936:4;15942:5;15911:37;;;;;;;;;15487:469;;;;;;;:::o;15965:534::-;16159:7;16181;16203;16238:15;16256:24;16268:11;16256:7;:11;;:24;;;;:::i;:::-;16238:42;;16291:12;16306:21;16315:11;16306:4;:8;;:21;;;;:::i;:::-;16291:36;;16338:13;16354:22;16364:11;16354:5;:9;;:22;;;;:::i;:::-;16338:38;;16387:23;16413:28;16435:5;16413:17;16425:4;16413:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16387:54;;16460:7;16469:15;16486:4;16452:39;;;;;;;;;;15965:534;;;;;;;;:::o;2644:246::-;2702:7;2731:1;2726;:6;2722:47;;2756:1;2749:8;;;;2722:47;2779:9;2795:1;2791;:5;;;;:::i;:::-;2779:17;;2824:1;2819;2815;:5;;;;:::i;:::-;:10;2807:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2881:1;2874:8;;;2644:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:77;1713:7;1742:5;1731:16;;1676:77;;;:::o;1759:122::-;1832:24;1850:5;1832:24;:::i;:::-;1825:5;1822:35;1812:63;;1871:1;1868;1861:12;1812:63;1759:122;:::o;1887:139::-;1933:5;1971:6;1958:20;1949:29;;1987:33;2014:5;1987:33;:::i;:::-;1887:139;;;;:::o;2032:329::-;2091:6;2140:2;2128:9;2119:7;2115:23;2111:32;2108:119;;;2146:79;;:::i;:::-;2108:119;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2032:329;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:474::-;3849:6;3857;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;4159:2;4185:53;4230:7;4221:6;4210:9;4206:22;4185:53;:::i;:::-;4175:63;;4130:118;3781:474;;;;;:::o;4261:60::-;4289:3;4310:5;4303:12;;4261:60;;;:::o;4327:142::-;4377:9;4410:53;4428:34;4437:24;4455:5;4437:24;:::i;:::-;4428:34;:::i;:::-;4410:53;:::i;:::-;4397:66;;4327:142;;;:::o;4475:126::-;4525:9;4558:37;4589:5;4558:37;:::i;:::-;4545:50;;4475:126;;;:::o;4607:152::-;4683:9;4716:37;4747:5;4716:37;:::i;:::-;4703:50;;4607:152;;;:::o;4765:183::-;4878:63;4935:5;4878:63;:::i;:::-;4873:3;4866:76;4765:183;;:::o;4954:274::-;5073:4;5111:2;5100:9;5096:18;5088:26;;5124:97;5218:1;5207:9;5203:17;5194:6;5124:97;:::i;:::-;4954:274;;;;:::o;5234:118::-;5321:24;5339:5;5321:24;:::i;:::-;5316:3;5309:37;5234:118;;:::o;5358:222::-;5451:4;5489:2;5478:9;5474:18;5466:26;;5502:71;5570:1;5559:9;5555:17;5546:6;5502:71;:::i;:::-;5358:222;;;;:::o;5586:117::-;5695:1;5692;5685:12;5709:117;5818:1;5815;5808:12;5832:117;5941:1;5938;5931:12;5972:568;6045:8;6055:6;6105:3;6098:4;6090:6;6086:17;6082:27;6072:122;;6113:79;;:::i;:::-;6072:122;6226:6;6213:20;6203:30;;6256:18;6248:6;6245:30;6242:117;;;6278:79;;:::i;:::-;6242:117;6392:4;6384:6;6380:17;6368:29;;6446:3;6438:4;6430:6;6426:17;6416:8;6412:32;6409:41;6406:128;;;6453:79;;:::i;:::-;6406:128;5972:568;;;;;:::o;6546:116::-;6616:21;6631:5;6616:21;:::i;:::-;6609:5;6606:32;6596:60;;6652:1;6649;6642:12;6596:60;6546:116;:::o;6668:133::-;6711:5;6749:6;6736:20;6727:29;;6765:30;6789:5;6765:30;:::i;:::-;6668:133;;;;:::o;6807:698::-;6899:6;6907;6915;6964:2;6952:9;6943:7;6939:23;6935:32;6932:119;;;6970:79;;:::i;:::-;6932:119;7118:1;7107:9;7103:17;7090:31;7148:18;7140:6;7137:30;7134:117;;;7170:79;;:::i;:::-;7134:117;7283:80;7355:7;7346:6;7335:9;7331:22;7283:80;:::i;:::-;7265:98;;;;7061:312;7412:2;7438:50;7480:7;7471:6;7460:9;7456:22;7438:50;:::i;:::-;7428:60;;7383:115;6807:698;;;;;:::o;7511:619::-;7588:6;7596;7604;7653:2;7641:9;7632:7;7628:23;7624:32;7621:119;;;7659:79;;:::i;:::-;7621:119;7779:1;7804:53;7849:7;7840:6;7829:9;7825:22;7804:53;:::i;:::-;7794:63;;7750:117;7906:2;7932:53;7977:7;7968:6;7957:9;7953:22;7932:53;:::i;:::-;7922:63;;7877:118;8034:2;8060:53;8105:7;8096:6;8085:9;8081:22;8060:53;:::i;:::-;8050:63;;8005:118;7511:619;;;;;:::o;8136:86::-;8171:7;8211:4;8204:5;8200:16;8189:27;;8136:86;;;:::o;8228:112::-;8311:22;8327:5;8311:22;:::i;:::-;8306:3;8299:35;8228:112;;:::o;8346:214::-;8435:4;8473:2;8462:9;8458:18;8450:26;;8486:67;8550:1;8539:9;8535:17;8526:6;8486:67;:::i;:::-;8346:214;;;;:::o;8566:104::-;8611:7;8640:24;8658:5;8640:24;:::i;:::-;8629:35;;8566:104;;;:::o;8676:142::-;8779:32;8805:5;8779:32;:::i;:::-;8774:3;8767:45;8676:142;;:::o;8824:254::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:87;9068:1;9057:9;9053:17;9044:6;8984:87;:::i;:::-;8824:254;;;;:::o;9084:118::-;9171:24;9189:5;9171:24;:::i;:::-;9166:3;9159:37;9084:118;;:::o;9208:222::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9208:222;;;;:::o;9436:329::-;9495:6;9544:2;9532:9;9523:7;9519:23;9515:32;9512:119;;;9550:79;;:::i;:::-;9512:119;9670:1;9695:53;9740:7;9731:6;9720:9;9716:22;9695:53;:::i;:::-;9685:63;;9641:117;9436:329;;;;:::o;9771:474::-;9839:6;9847;9896:2;9884:9;9875:7;9871:23;9867:32;9864:119;;;9902:79;;:::i;:::-;9864:119;10022:1;10047:53;10092:7;10083:6;10072:9;10068:22;10047:53;:::i;:::-;10037:63;;9993:117;10149:2;10175:53;10220:7;10211:6;10200:9;10196:22;10175:53;:::i;:::-;10165:63;;10120:118;9771:474;;;;;:::o;10251:323::-;10307:6;10356:2;10344:9;10335:7;10331:23;10327:32;10324:119;;;10362:79;;:::i;:::-;10324:119;10482:1;10507:50;10549:7;10540:6;10529:9;10525:22;10507:50;:::i;:::-;10497:60;;10453:114;10251:323;;;;:::o;10580:180::-;10628:77;10625:1;10618:88;10725:4;10722:1;10715:15;10749:4;10746:1;10739:15;10766:281;10849:27;10871:4;10849:27;:::i;:::-;10841:6;10837:40;10979:6;10967:10;10964:22;10943:18;10931:10;10928:34;10925:62;10922:88;;;10990:18;;:::i;:::-;10922:88;11030:10;11026:2;11019:22;10809:238;10766:281;;:::o;11053:129::-;11087:6;11114:20;;:::i;:::-;11104:30;;11143:33;11171:4;11163:6;11143:33;:::i;:::-;11053:129;;;:::o;11188:311::-;11265:4;11355:18;11347:6;11344:30;11341:56;;;11377:18;;:::i;:::-;11341:56;11427:4;11419:6;11415:17;11407:25;;11487:4;11481;11477:15;11469:23;;11188:311;;;:::o;11522:710::-;11618:5;11643:81;11659:64;11716:6;11659:64;:::i;:::-;11643:81;:::i;:::-;11634:90;;11744:5;11773:6;11766:5;11759:21;11807:4;11800:5;11796:16;11789:23;;11860:4;11852:6;11848:17;11840:6;11836:30;11889:3;11881:6;11878:15;11875:122;;;11908:79;;:::i;:::-;11875:122;12023:6;12006:220;12040:6;12035:3;12032:15;12006:220;;;12115:3;12144:37;12177:3;12165:10;12144:37;:::i;:::-;12139:3;12132:50;12211:4;12206:3;12202:14;12195:21;;12082:144;12066:4;12061:3;12057:14;12050:21;;12006:220;;;12010:21;11624:608;;11522:710;;;;;:::o;12255:370::-;12326:5;12375:3;12368:4;12360:6;12356:17;12352:27;12342:122;;12383:79;;:::i;:::-;12342:122;12500:6;12487:20;12525:94;12615:3;12607:6;12600:4;12592:6;12588:17;12525:94;:::i;:::-;12516:103;;12332:293;12255:370;;;;:::o;12631:539::-;12715:6;12764:2;12752:9;12743:7;12739:23;12735:32;12732:119;;;12770:79;;:::i;:::-;12732:119;12918:1;12907:9;12903:17;12890:31;12948:18;12940:6;12937:30;12934:117;;;12970:79;;:::i;:::-;12934:117;13075:78;13145:7;13136:6;13125:9;13121:22;13075:78;:::i;:::-;13065:88;;12861:302;12631:539;;;;:::o;13176:182::-;13316:34;13312:1;13304:6;13300:14;13293:58;13176:182;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:180;14395:77;14392:1;14385:88;14492:4;14489:1;14482:15;14516:4;14513:1;14506:15;14533:233;14572:3;14595:24;14613:5;14595:24;:::i;:::-;14586:33;;14641:66;14634:5;14631:77;14628:103;;14711:18;;:::i;:::-;14628:103;14758:1;14751:5;14747:13;14740:20;;14533:233;;;:::o;14772:225::-;14912:34;14908:1;14900:6;14896:14;14889:58;14981:8;14976:2;14968:6;14964:15;14957:33;14772:225;:::o;15003:366::-;15145:3;15166:67;15230:2;15225:3;15166:67;:::i;:::-;15159:74;;15242:93;15331:3;15242:93;:::i;:::-;15360:2;15355:3;15351:12;15344:19;;15003:366;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15375:419;;;:::o;15800:223::-;15940:34;15936:1;15928:6;15924:14;15917:58;16009:6;16004:2;15996:6;15992:15;15985:31;15800:223;:::o;16029:366::-;16171:3;16192:67;16256:2;16251:3;16192:67;:::i;:::-;16185:74;;16268:93;16357:3;16268:93;:::i;:::-;16386:2;16381:3;16377:12;16370:19;;16029:366;;;:::o;16401:419::-;16567:4;16605:2;16594:9;16590:18;16582:26;;16654:9;16648:4;16644:20;16640:1;16629:9;16625:17;16618:47;16682:131;16808:4;16682:131;:::i;:::-;16674:139;;16401:419;;;:::o;16826:221::-;16966:34;16962:1;16954:6;16950:14;16943:58;17035:4;17030:2;17022:6;17018:15;17011:29;16826:221;:::o;17053:366::-;17195:3;17216:67;17280:2;17275:3;17216:67;:::i;:::-;17209:74;;17292:93;17381:3;17292:93;:::i;:::-;17410:2;17405:3;17401:12;17394:19;;17053:366;;;:::o;17425:419::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17678:9;17672:4;17668:20;17664:1;17653:9;17649:17;17642:47;17706:131;17832:4;17706:131;:::i;:::-;17698:139;;17425:419;;;:::o;17850:224::-;17990:34;17986:1;17978:6;17974:14;17967:58;18059:7;18054:2;18046:6;18042:15;18035:32;17850:224;:::o;18080:366::-;18222:3;18243:67;18307:2;18302:3;18243:67;:::i;:::-;18236:74;;18319:93;18408:3;18319:93;:::i;:::-;18437:2;18432:3;18428:12;18421:19;;18080:366;;;:::o;18452:419::-;18618:4;18656:2;18645:9;18641:18;18633:26;;18705:9;18699:4;18695:20;18691:1;18680:9;18676:17;18669:47;18733:131;18859:4;18733:131;:::i;:::-;18725:139;;18452:419;;;:::o;18877:222::-;19017:34;19013:1;19005:6;19001:14;18994:58;19086:5;19081:2;19073:6;19069:15;19062:30;18877:222;:::o;19105:366::-;19247:3;19268:67;19332:2;19327:3;19268:67;:::i;:::-;19261:74;;19344:93;19433:3;19344:93;:::i;:::-;19462:2;19457:3;19453:12;19446:19;;19105:366;;;:::o;19477:419::-;19643:4;19681:2;19670:9;19666:18;19658:26;;19730:9;19724:4;19720:20;19716:1;19705:9;19701:17;19694:47;19758:131;19884:4;19758:131;:::i;:::-;19750:139;;19477:419;;;:::o;19902:228::-;20042:34;20038:1;20030:6;20026:14;20019:58;20111:11;20106:2;20098:6;20094:15;20087:36;19902:228;:::o;20136:366::-;20278:3;20299:67;20363:2;20358:3;20299:67;:::i;:::-;20292:74;;20375:93;20464:3;20375:93;:::i;:::-;20493:2;20488:3;20484:12;20477:19;;20136:366;;;:::o;20508:419::-;20674:4;20712:2;20701:9;20697:18;20689:26;;20761:9;20755:4;20751:20;20747:1;20736:9;20732:17;20725:47;20789:131;20915:4;20789:131;:::i;:::-;20781:139;;20508:419;;;:::o;20933:250::-;21073:34;21069:1;21061:6;21057:14;21050:58;21142:33;21137:2;21129:6;21125:15;21118:58;20933:250;:::o;21189:366::-;21331:3;21352:67;21416:2;21411:3;21352:67;:::i;:::-;21345:74;;21428:93;21517:3;21428:93;:::i;:::-;21546:2;21541:3;21537:12;21530:19;;21189:366;;;:::o;21561:419::-;21727:4;21765:2;21754:9;21750:18;21742:26;;21814:9;21808:4;21804:20;21800:1;21789:9;21785:17;21778:47;21842:131;21968:4;21842:131;:::i;:::-;21834:139;;21561:419;;;:::o;21986:191::-;22026:3;22045:20;22063:1;22045:20;:::i;:::-;22040:25;;22079:20;22097:1;22079:20;:::i;:::-;22074:25;;22122:1;22119;22115:9;22108:16;;22143:3;22140:1;22137:10;22134:36;;;22150:18;;:::i;:::-;22134:36;21986:191;;;;:::o;22183:194::-;22223:4;22243:20;22261:1;22243:20;:::i;:::-;22238:25;;22277:20;22295:1;22277:20;:::i;:::-;22272:25;;22321:1;22318;22314:9;22306:17;;22345:1;22339:4;22336:11;22333:37;;;22350:18;;:::i;:::-;22333:37;22183:194;;;;:::o;22383:171::-;22523:23;22519:1;22511:6;22507:14;22500:47;22383:171;:::o;22560:366::-;22702:3;22723:67;22787:2;22782:3;22723:67;:::i;:::-;22716:74;;22799:93;22888:3;22799:93;:::i;:::-;22917:2;22912:3;22908:12;22901:19;;22560:366;;;:::o;22932:419::-;23098:4;23136:2;23125:9;23121:18;23113:26;;23185:9;23179:4;23175:20;23171:1;23160:9;23156:17;23149:47;23213:131;23339:4;23213:131;:::i;:::-;23205:139;;22932:419;;;:::o;23357:178::-;23497:30;23493:1;23485:6;23481:14;23474:54;23357:178;:::o;23541:366::-;23683:3;23704:67;23768:2;23763:3;23704:67;:::i;:::-;23697:74;;23780:93;23869:3;23780:93;:::i;:::-;23898:2;23893:3;23889:12;23882:19;;23541:366;;;:::o;23913:419::-;24079:4;24117:2;24106:9;24102:18;24094:26;;24166:9;24160:4;24156:20;24152:1;24141:9;24137:17;24130:47;24194:131;24320:4;24194:131;:::i;:::-;24186:139;;23913:419;;;:::o;24338:222::-;24478:34;24474:1;24466:6;24462:14;24455:58;24547:5;24542:2;24534:6;24530:15;24523:30;24338:222;:::o;24566:366::-;24708:3;24729:67;24793:2;24788:3;24729:67;:::i;:::-;24722:74;;24805:93;24894:3;24805:93;:::i;:::-;24923:2;24918:3;24914:12;24907:19;;24566:366;;;:::o;24938:419::-;25104:4;25142:2;25131:9;25127:18;25119:26;;25191:9;25185:4;25181:20;25177:1;25166:9;25162:17;25155:47;25219:131;25345:4;25219:131;:::i;:::-;25211:139;;24938:419;;;:::o;25363:222::-;25503:34;25499:1;25491:6;25487:14;25480:58;25572:5;25567:2;25559:6;25555:15;25548:30;25363:222;:::o;25591:366::-;25733:3;25754:67;25818:2;25813:3;25754:67;:::i;:::-;25747:74;;25830:93;25919:3;25830:93;:::i;:::-;25948:2;25943:3;25939:12;25932:19;;25591:366;;;:::o;25963:419::-;26129:4;26167:2;26156:9;26152:18;26144:26;;26216:9;26210:4;26206:20;26202:1;26191:9;26187:17;26180:47;26244:131;26370:4;26244:131;:::i;:::-;26236:139;;25963:419;;;:::o;26388:229::-;26528:34;26524:1;26516:6;26512:14;26505:58;26597:12;26592:2;26584:6;26580:15;26573:37;26388:229;:::o;26623:366::-;26765:3;26786:67;26850:2;26845:3;26786:67;:::i;:::-;26779:74;;26862:93;26951:3;26862:93;:::i;:::-;26980:2;26975:3;26971:12;26964:19;;26623:366;;;:::o;26995:419::-;27161:4;27199:2;27188:9;27184:18;27176:26;;27248:9;27242:4;27238:20;27234:1;27223:9;27219:17;27212:47;27276:131;27402:4;27276:131;:::i;:::-;27268:139;;26995:419;;;:::o;27420:143::-;27477:5;27508:6;27502:13;27493:22;;27524:33;27551:5;27524:33;:::i;:::-;27420:143;;;;:::o;27569:351::-;27639:6;27688:2;27676:9;27667:7;27663:23;27659:32;27656:119;;;27694:79;;:::i;:::-;27656:119;27814:1;27839:64;27895:7;27886:6;27875:9;27871:22;27839:64;:::i;:::-;27829:74;;27785:128;27569:351;;;;:::o;27926:85::-;27971:7;28000:5;27989:16;;27926:85;;;:::o;28017:158::-;28075:9;28108:61;28126:42;28135:32;28161:5;28135:32;:::i;:::-;28126:42;:::i;:::-;28108:61;:::i;:::-;28095:74;;28017:158;;;:::o;28181:147::-;28276:45;28315:5;28276:45;:::i;:::-;28271:3;28264:58;28181:147;;:::o;28334:114::-;28401:6;28435:5;28429:12;28419:22;;28334:114;;;:::o;28454:184::-;28553:11;28587:6;28582:3;28575:19;28627:4;28622:3;28618:14;28603:29;;28454:184;;;;:::o;28644:132::-;28711:4;28734:3;28726:11;;28764:4;28759:3;28755:14;28747:22;;28644:132;;;:::o;28782:108::-;28859:24;28877:5;28859:24;:::i;:::-;28854:3;28847:37;28782:108;;:::o;28896:179::-;28965:10;28986:46;29028:3;29020:6;28986:46;:::i;:::-;29064:4;29059:3;29055:14;29041:28;;28896:179;;;;:::o;29081:113::-;29151:4;29183;29178:3;29174:14;29166:22;;29081:113;;;:::o;29230:732::-;29349:3;29378:54;29426:5;29378:54;:::i;:::-;29448:86;29527:6;29522:3;29448:86;:::i;:::-;29441:93;;29558:56;29608:5;29558:56;:::i;:::-;29637:7;29668:1;29653:284;29678:6;29675:1;29672:13;29653:284;;;29754:6;29748:13;29781:63;29840:3;29825:13;29781:63;:::i;:::-;29774:70;;29867:60;29920:6;29867:60;:::i;:::-;29857:70;;29713:224;29700:1;29697;29693:9;29688:14;;29653:284;;;29657:14;29953:3;29946:10;;29354:608;;;29230:732;;;;:::o;29968:831::-;30231:4;30269:3;30258:9;30254:19;30246:27;;30283:71;30351:1;30340:9;30336:17;30327:6;30283:71;:::i;:::-;30364:80;30440:2;30429:9;30425:18;30416:6;30364:80;:::i;:::-;30491:9;30485:4;30481:20;30476:2;30465:9;30461:18;30454:48;30519:108;30622:4;30613:6;30519:108;:::i;:::-;30511:116;;30637:72;30705:2;30694:9;30690:18;30681:6;30637:72;:::i;:::-;30719:73;30787:3;30776:9;30772:19;30763:6;30719:73;:::i;:::-;29968:831;;;;;;;;:::o;30805:180::-;30853:77;30850:1;30843:88;30950:4;30947:1;30940:15;30974:4;30971:1;30964:15;30991:185;31031:1;31048:20;31066:1;31048:20;:::i;:::-;31043:25;;31082:20;31100:1;31082:20;:::i;:::-;31077:25;;31121:1;31111:35;;31126:18;;:::i;:::-;31111:35;31168:1;31165;31161:9;31156:14;;30991:185;;;;:::o;31182:177::-;31322:29;31318:1;31310:6;31306:14;31299:53;31182:177;:::o;31365:366::-;31507:3;31528:67;31592:2;31587:3;31528:67;:::i;:::-;31521:74;;31604:93;31693:3;31604:93;:::i;:::-;31722:2;31717:3;31713:12;31706:19;;31365:366;;;:::o;31737:419::-;31903:4;31941:2;31930:9;31926:18;31918:26;;31990:9;31984:4;31980:20;31976:1;31965:9;31961:17;31954:47;32018:131;32144:4;32018:131;:::i;:::-;32010:139;;31737:419;;;:::o;32162:410::-;32202:7;32225:20;32243:1;32225:20;:::i;:::-;32220:25;;32259:20;32277:1;32259:20;:::i;:::-;32254:25;;32314:1;32311;32307:9;32336:30;32354:11;32336:30;:::i;:::-;32325:41;;32515:1;32506:7;32502:15;32499:1;32496:22;32476:1;32469:9;32449:83;32426:139;;32545:18;;:::i;:::-;32426:139;32210:362;32162:410;;;;:::o;32578:220::-;32718:34;32714:1;32706:6;32702:14;32695:58;32787:3;32782:2;32774:6;32770:15;32763:28;32578:220;:::o;32804:366::-;32946:3;32967:67;33031:2;33026:3;32967:67;:::i;:::-;32960:74;;33043:93;33132:3;33043:93;:::i;:::-;33161:2;33156:3;33152:12;33145:19;;32804:366;;;:::o;33176:419::-;33342:4;33380:2;33369:9;33365:18;33357:26;;33429:9;33423:4;33419:20;33415:1;33404:9;33400:17;33393:47;33457:131;33583:4;33457:131;:::i;:::-;33449:139;;33176:419;;;:::o

Swarm Source

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