ETH Price: $2,830.68 (+2.11%)
Gas: 0.77 Gwei

Token

YukiOnna (YUKI)
 

Overview

Max Total Supply

995,203.273471229 YUKI

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: YUKI 14
Balance
0.000000014 YUKI

Value
$0.00
0x73cd34886156dd350bcc68fbc6938444243e7b54
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:
YUKI

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-24
*/

//https://yukionna.site/
//https://t.me/yukionnaerc20
//https://twitter.com/YukiERC20
//https://medium.com/@YukionnaERC/the-tales-of-yuki-onna-ede73ad6a1cd


// SPDX-License-Identifier: NOLICENSE



pragma solidity ^0.8.4;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract YUKI is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "YukiOnna";
    string private constant _symbol = "YUKI";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoLiquidityFee = 0;
    uint256 public buyAutoBurnFee = 100;
    uint256 public buyMarketingFee = 400;
    uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoLiquidityFee = 0;
    uint256 public sellAutoBurnFee = 0;
    uint256 public sellMarketingFee = 400;
    uint256 public totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _tTotal = 1000000  * 10**9;
    uint256 private maxWalletAmount = 50001  * 10**9;
    uint256 private maxTxAmount = 50001  * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        
        feeAddrWallet = payable(0x0Ec6F9A275f6440db96Dc59C209797fe7Cb59a5D); 
        
        _tOwned[owner()] = _tTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        
        uint256 _buyAutoLiquidityFee = 0;
        uint256 _buyAutoBurnFee = 100;
        uint256 _buyMarketingFee = 400;
        uint256 _sellAutoLiquidityFee = 0;
        uint256 _sellAutoBurnFee = 0;
        uint256 _sellMarketingFee = 400;
        
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;
        
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
        
        swapEnabled = true;
        
        maxTxAmount = 50001  * 10**9;
        maxWalletAmount = 50001  * 10**9;
        
        tradingOpen = true;
        
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _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 view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

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

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

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;         
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);

        uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    
    }
    
    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","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":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600455606460055561019060065560065460055460045462000029919062000c12565b62000035919062000c12565b60075560006008556000600955610190600a55600a546009546008546200005d919062000c12565b62000069919062000c12565b600b55612710600f60006101000a81548161ffff021916908361ffff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff02191690831515021790555066038d7ea4c68000601255652d79c3d7ea00601355652d79c3d7ea00601455348015620000ed57600080fd5b506200010e62000102620009a460201b60201c565b620009ac60201b60201c565b601160149054906101000a900460ff161562000161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001589062000bc2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020257600080fd5b505afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d919062000ac7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a057600080fd5b505afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db919062000ac7565b6040518363ffffffff1660e01b8152600401620002fa92919062000b68565b602060405180830381600087803b1580156200031557600080fd5b505af11580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000ac7565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d757600080fd5b505afa158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000412919062000ac7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047557600080fd5b505afa1580156200048a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b0919062000ac7565b6040518363ffffffff1660e01b8152600401620004cf92919062000b68565b60206040518083038186803b158015620004e857600080fd5b505afa158015620004fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000523919062000ac7565b600f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730ec6f9a275f6440db96dc59c209797fe7cb59a5d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125460016000620005cf62000a7060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200062362000a7060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060649050600061019090506000806000610190905085600481905550846005819055508360068190555060065460055460045462000788919062000c12565b62000794919062000c12565b600781905550826008819055508160098190555080600a81905550600a54600954600854620007c4919062000c12565b620007d0919062000c12565b600b819055506001601160166101000a81548160ff021916908315150217905550652d79c3d7ea00601481905550652d79c3d7ea006013819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620008c792919062000b95565b602060405180830381600087803b158015620008e257600080fd5b505af1158015620008f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200091d919062000af3565b506200092e62000a7060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040516200098f919062000be4565b60405180910390a35050505050505062000d45565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000aaa8162000d11565b92915050565b60008151905062000ac18162000d2b565b92915050565b60006020828403121562000ada57600080fd5b600062000aea8482850162000a99565b91505092915050565b60006020828403121562000b0657600080fd5b600062000b168482850162000ab0565b91505092915050565b62000b2a8162000c6f565b82525050565b600062000b3f60178362000c01565b915062000b4c8262000ce8565b602082019050919050565b62000b628162000caf565b82525050565b600060408201905062000b7f600083018562000b1f565b62000b8e602083018462000b1f565b9392505050565b600060408201905062000bac600083018562000b1f565b62000bbb602083018462000b57565b9392505050565b6000602082019050818103600083015262000bdd8162000b30565b9050919050565b600060208201905062000bfb600083018462000b57565b92915050565b600082825260208201905092915050565b600062000c1f8262000caf565b915062000c2c8362000caf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c645762000c6362000cb9565b5b828201905092915050565b600062000c7c8262000c8f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b62000d1c8162000c6f565b811462000d2857600080fd5b50565b62000d368162000c83565b811462000d4257600080fd5b50565b612e058062000d556000396000f3fe6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b3714610649578063ebece9c914610672578063f239eab81461069b578063f2fde38b146106c6576101cd565b8063c99f2fed1461058b578063cc70acee146105b6578063d0a39814146105e1578063dd62ed3e1461060c576101cd565b80639740a946116100d15780639740a946146104cd578063a8b08982146104f8578063a9059cbb14610523578063b9e9370014610560576101cd565b80638da5cb5b1461044c578063921369131461047757806395d89b41146104a2576101cd565b8063313ce567116101645780636cce46fc1161013e5780636cce46fc146103a257806370a08231146103cd578063715018a61461040a5780637bce5a0414610421576101cd565b8063313ce56714610323578063437823ec1461034e57806347afcbfe14610377576101cd565b806318160ddd116101a057806318160ddd146102655780631d6167ac146102905780631f3fed8f146102bb57806323b872dd146102e6576101cd565b806303fd2a45146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ef565b6040516101f49190612403565b60405180910390f35b34801561020957600080fd5b506102126106f5565b60405161021f9190612439565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906120cf565b610732565b60405161025c919061241e565b60405180910390f35b34801561027157600080fd5b5061027a610750565b60405161028791906125f6565b60405180910390f35b34801561029c57600080fd5b506102a561075a565b6040516102b291906125db565b60405180910390f35b3480156102c757600080fd5b506102d061076e565b6040516102dd91906125f6565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612080565b610774565b60405161031a919061241e565b60405180910390f35b34801561032f57600080fd5b50610338610875565b604051610345919061266b565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190611ff2565b61087e565b005b34801561038357600080fd5b5061038c610955565b60405161039991906125f6565b60405180910390f35b3480156103ae57600080fd5b506103b761095b565b6040516103c491906125f6565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190611ff2565b610961565b60405161040191906125f6565b60405180910390f35b34801561041657600080fd5b5061041f6109aa565b005b34801561042d57600080fd5b50610436610a32565b60405161044391906125f6565b60405180910390f35b34801561045857600080fd5b50610461610a38565b60405161046e9190612403565b60405180910390f35b34801561048357600080fd5b5061048c610a61565b60405161049991906125f6565b60405180910390f35b3480156104ae57600080fd5b506104b7610a67565b6040516104c49190612439565b60405180910390f35b3480156104d957600080fd5b506104e2610aa4565b6040516104ef91906125f6565b60405180910390f35b34801561050457600080fd5b5061050d610aaa565b60405161051a9190612403565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906120cf565b610ad0565b604051610557919061241e565b60405180910390f35b34801561056c57600080fd5b50610575610aee565b60405161058291906125f6565b60405180910390f35b34801561059757600080fd5b506105a0610af4565b6040516105ad91906125f6565b60405180910390f35b3480156105c257600080fd5b506105cb610afa565b6040516105d891906125f6565b60405180910390f35b3480156105ed57600080fd5b506105f6610b00565b60405161060391906125f6565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190612044565b610b06565b60405161064091906125f6565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190611ff2565b610b8d565b005b34801561067e57600080fd5b506106996004803603810190610694919061210b565b610c64565b005b3480156106a757600080fd5b506106b0610d22565b6040516106bd91906125f6565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190611ff2565b610d28565b005b61dead81565b60606040518060400160405280600881526020017f59756b694f6e6e61000000000000000000000000000000000000000000000000815250905090565b600061074661073f610e20565b8484610e28565b6001905092915050565b6000601254905090565b600f60009054906101000a900461ffff1681565b600e5481565b6000610781848484610ff3565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cc610e20565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561084c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610843906124fb565b60405180910390fd5b61086985610858610e20565b8584610864919061292d565b610e28565b60019150509392505050565b60006009905090565b610886610e20565b73ffffffffffffffffffffffffffffffffffffffff166108a4610a38565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f19061251b565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109b2610e20565b73ffffffffffffffffffffffffffffffffffffffff166109d0610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d9061251b565b60405180910390fd5b610a306000611573565b565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600481526020017f59554b4900000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ae4610add610e20565b8484610ff3565b6001905092915050565b60075481565b60055481565b600d5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b95610e20565b73ffffffffffffffffffffffffffffffffffffffff16610bb3610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c009061251b565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c6c610e20565b73ffffffffffffffffffffffffffffffffffffffff16610c8a610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061251b565b60405180910390fd5b6009600a610cee91906127b5565b82610cf991906128d3565b6014819055506009600a610d0d91906127b5565b81610d1891906128d3565b6013819055505050565b60045481565b610d30610e20565b73ffffffffffffffffffffffffffffffffffffffff16610d4e610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061251b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906124bb565b60405180910390fd5b610e1d81611573565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061259b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff906124db565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fe691906125f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a9061255b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca9061245b565b60405180910390fd5b60008111611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d9061253b565b60405180910390fd5b61111f83610961565b811115611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111589061249b565b60405180910390fd5b601160149054906101000a900460ff16806111c55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806112195750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f906125bb565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113035750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113595750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113fc576014548111156113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a9061247b565b60405180910390fd5b601354816113b084610961565b6113ba91906126db565b11156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f29061257b565b60405180910390fd5b5b600061140730610961565b9050601160159054906101000a900460ff161580156114745750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561148c5750601160169054906101000a900460ff165b80156114985750600081115b156114c0576114a681611637565b600047905060008111156114be576114bd47611931565b5b505b61156d848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115675750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611695577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116c35781602001602082028036833780820191505090505b5090503081600081518110611701577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db919061201b565b81600181518110611815577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061187c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e28565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118e0959493929190612611565b600060405180830381600087803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611999573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ec919061292d565b92505081905550600081611a005782611a0c565b611a0b858585611ad0565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a5d91906126db565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ac191906125f6565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b3157506000600754115b15611bd457600f60009054906101000a900461ffff1661ffff1660045483611b5991906128d3565b611b639190612731565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611b8c91906128d3565b611b969190612731565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611bbf91906128d3565b611bc99190612731565b600e81905550611cd3565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3357506000600b54115b15611cd257600f60009054906101000a900461ffff1661ffff1660085483611c5b91906128d3565b611c659190612731565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611c8e91906128d3565b611c989190612731565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611cc191906128d3565b611ccb9190612731565b600e819055505b5b600c5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4691906126db565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611dce91906125f6565b60405180910390a3600d546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e2991906126db565b92505081905550600d54601254611e40919061292d565b601281905550611e4e610750565b60128190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051611eb591906125f6565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0e91906126db565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051611f7491906125f6565b60405180910390a36000600e54600d54600c54611f9191906126db565b611f9b91906126db565b90508083611fa9919061292d565b9150509392505050565b600081359050611fc281612da1565b92915050565b600081519050611fd781612da1565b92915050565b600081359050611fec81612db8565b92915050565b60006020828403121561200457600080fd5b600061201284828501611fb3565b91505092915050565b60006020828403121561202d57600080fd5b600061203b84828501611fc8565b91505092915050565b6000806040838503121561205757600080fd5b600061206585828601611fb3565b925050602061207685828601611fb3565b9150509250929050565b60008060006060848603121561209557600080fd5b60006120a386828701611fb3565b93505060206120b486828701611fb3565b92505060406120c586828701611fdd565b9150509250925092565b600080604083850312156120e257600080fd5b60006120f085828601611fb3565b925050602061210185828601611fdd565b9150509250929050565b6000806040838503121561211e57600080fd5b600061212c85828601611fdd565b925050602061213d85828601611fdd565b9150509250929050565b6000612153838361215f565b60208301905092915050565b61216881612961565b82525050565b61217781612961565b82525050565b600061218882612696565b61219281856126b9565b935061219d83612686565b8060005b838110156121ce5781516121b58882612147565b97506121c0836126ac565b9250506001810190506121a1565b5085935050505092915050565b6121e481612973565b82525050565b6121f3816129c4565b82525050565b6000612204826126a1565b61220e81856126ca565b935061221e8185602086016129d6565b61222781612a67565b840191505092915050565b600061223f6023836126ca565b915061224a82612a85565b604082019050919050565b60006122626019836126ca565b915061226d82612ad4565b602082019050919050565b60006122856031836126ca565b915061229082612afd565b604082019050919050565b60006122a86026836126ca565b91506122b382612b4c565b604082019050919050565b60006122cb6022836126ca565b91506122d682612b9b565b604082019050919050565b60006122ee6028836126ca565b91506122f982612bea565b604082019050919050565b60006123116020836126ca565b915061231c82612c39565b602082019050919050565b60006123346029836126ca565b915061233f82612c62565b604082019050919050565b60006123576025836126ca565b915061236282612cb1565b604082019050919050565b600061237a601a836126ca565b915061238582612d00565b602082019050919050565b600061239d6024836126ca565b91506123a882612d29565b604082019050919050565b60006123c06017836126ca565b91506123cb82612d78565b602082019050919050565b6123df8161297f565b82525050565b6123ee816129ad565b82525050565b6123fd816129b7565b82525050565b6000602082019050612418600083018461216e565b92915050565b600060208201905061243360008301846121db565b92915050565b6000602082019050818103600083015261245381846121f9565b905092915050565b6000602082019050818103600083015261247481612232565b9050919050565b6000602082019050818103600083015261249481612255565b9050919050565b600060208201905081810360008301526124b481612278565b9050919050565b600060208201905081810360008301526124d48161229b565b9050919050565b600060208201905081810360008301526124f4816122be565b9050919050565b60006020820190508181036000830152612514816122e1565b9050919050565b6000602082019050818103600083015261253481612304565b9050919050565b6000602082019050818103600083015261255481612327565b9050919050565b600060208201905081810360008301526125748161234a565b9050919050565b600060208201905081810360008301526125948161236d565b9050919050565b600060208201905081810360008301526125b481612390565b9050919050565b600060208201905081810360008301526125d4816123b3565b9050919050565b60006020820190506125f060008301846123d6565b92915050565b600060208201905061260b60008301846123e5565b92915050565b600060a08201905061262660008301886123e5565b61263360208301876121ea565b8181036040830152612645818661217d565b9050612654606083018561216e565b61266160808301846123e5565b9695505050505050565b600060208201905061268060008301846123f4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126e6826129ad565b91506126f1836129ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561272657612725612a09565b5b828201905092915050565b600061273c826129ad565b9150612747836129ad565b92508261275757612756612a38565b5b828204905092915050565b6000808291508390505b60018511156127ac5780860481111561278857612787612a09565b5b60018516156127975780820291505b80810290506127a585612a78565b945061276c565b94509492505050565b60006127c0826129ad565b91506127cb836129b7565b92506127f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612800565b905092915050565b60008261281057600190506128cc565b8161281e57600090506128cc565b8160018114612834576002811461283e5761286d565b60019150506128cc565b60ff8411156128505761284f612a09565b5b8360020a91508482111561286757612866612a09565b5b506128cc565b5060208310610133831016604e8410600b84101617156128a25782820a90508381111561289d5761289c612a09565b5b6128cc565b6128af8484846001612762565b925090508184048111156128c6576128c5612a09565b5b81810290505b9392505050565b60006128de826129ad565b91506128e9836129ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561292257612921612a09565b5b828202905092915050565b6000612938826129ad565b9150612943836129ad565b92508282101561295657612955612a09565b5b828203905092915050565b600061296c8261298d565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129cf826129ad565b9050919050565b60005b838110156129f45780820151818401526020810190506129d9565b83811115612a03576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b612daa81612961565b8114612db557600080fd5b50565b612dc1816129ad565b8114612dcc57600080fd5b5056fea26469706673582212206ef5c67ed3d8806470b78be7b9fb4d23c6080473674ef4b3b588f565ec8a235764736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b3714610649578063ebece9c914610672578063f239eab81461069b578063f2fde38b146106c6576101cd565b8063c99f2fed1461058b578063cc70acee146105b6578063d0a39814146105e1578063dd62ed3e1461060c576101cd565b80639740a946116100d15780639740a946146104cd578063a8b08982146104f8578063a9059cbb14610523578063b9e9370014610560576101cd565b80638da5cb5b1461044c578063921369131461047757806395d89b41146104a2576101cd565b8063313ce567116101645780636cce46fc1161013e5780636cce46fc146103a257806370a08231146103cd578063715018a61461040a5780637bce5a0414610421576101cd565b8063313ce56714610323578063437823ec1461034e57806347afcbfe14610377576101cd565b806318160ddd116101a057806318160ddd146102655780631d6167ac146102905780631f3fed8f146102bb57806323b872dd146102e6576101cd565b806303fd2a45146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ef565b6040516101f49190612403565b60405180910390f35b34801561020957600080fd5b506102126106f5565b60405161021f9190612439565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906120cf565b610732565b60405161025c919061241e565b60405180910390f35b34801561027157600080fd5b5061027a610750565b60405161028791906125f6565b60405180910390f35b34801561029c57600080fd5b506102a561075a565b6040516102b291906125db565b60405180910390f35b3480156102c757600080fd5b506102d061076e565b6040516102dd91906125f6565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612080565b610774565b60405161031a919061241e565b60405180910390f35b34801561032f57600080fd5b50610338610875565b604051610345919061266b565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190611ff2565b61087e565b005b34801561038357600080fd5b5061038c610955565b60405161039991906125f6565b60405180910390f35b3480156103ae57600080fd5b506103b761095b565b6040516103c491906125f6565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190611ff2565b610961565b60405161040191906125f6565b60405180910390f35b34801561041657600080fd5b5061041f6109aa565b005b34801561042d57600080fd5b50610436610a32565b60405161044391906125f6565b60405180910390f35b34801561045857600080fd5b50610461610a38565b60405161046e9190612403565b60405180910390f35b34801561048357600080fd5b5061048c610a61565b60405161049991906125f6565b60405180910390f35b3480156104ae57600080fd5b506104b7610a67565b6040516104c49190612439565b60405180910390f35b3480156104d957600080fd5b506104e2610aa4565b6040516104ef91906125f6565b60405180910390f35b34801561050457600080fd5b5061050d610aaa565b60405161051a9190612403565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906120cf565b610ad0565b604051610557919061241e565b60405180910390f35b34801561056c57600080fd5b50610575610aee565b60405161058291906125f6565b60405180910390f35b34801561059757600080fd5b506105a0610af4565b6040516105ad91906125f6565b60405180910390f35b3480156105c257600080fd5b506105cb610afa565b6040516105d891906125f6565b60405180910390f35b3480156105ed57600080fd5b506105f6610b00565b60405161060391906125f6565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190612044565b610b06565b60405161064091906125f6565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190611ff2565b610b8d565b005b34801561067e57600080fd5b506106996004803603810190610694919061210b565b610c64565b005b3480156106a757600080fd5b506106b0610d22565b6040516106bd91906125f6565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190611ff2565b610d28565b005b61dead81565b60606040518060400160405280600881526020017f59756b694f6e6e61000000000000000000000000000000000000000000000000815250905090565b600061074661073f610e20565b8484610e28565b6001905092915050565b6000601254905090565b600f60009054906101000a900461ffff1681565b600e5481565b6000610781848484610ff3565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cc610e20565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561084c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610843906124fb565b60405180910390fd5b61086985610858610e20565b8584610864919061292d565b610e28565b60019150509392505050565b60006009905090565b610886610e20565b73ffffffffffffffffffffffffffffffffffffffff166108a4610a38565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f19061251b565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109b2610e20565b73ffffffffffffffffffffffffffffffffffffffff166109d0610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d9061251b565b60405180910390fd5b610a306000611573565b565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600481526020017f59554b4900000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ae4610add610e20565b8484610ff3565b6001905092915050565b60075481565b60055481565b600d5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b95610e20565b73ffffffffffffffffffffffffffffffffffffffff16610bb3610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c009061251b565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c6c610e20565b73ffffffffffffffffffffffffffffffffffffffff16610c8a610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061251b565b60405180910390fd5b6009600a610cee91906127b5565b82610cf991906128d3565b6014819055506009600a610d0d91906127b5565b81610d1891906128d3565b6013819055505050565b60045481565b610d30610e20565b73ffffffffffffffffffffffffffffffffffffffff16610d4e610a38565b73ffffffffffffffffffffffffffffffffffffffff1614610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061251b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906124bb565b60405180910390fd5b610e1d81611573565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061259b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff906124db565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fe691906125f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a9061255b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca9061245b565b60405180910390fd5b60008111611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d9061253b565b60405180910390fd5b61111f83610961565b811115611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111589061249b565b60405180910390fd5b601160149054906101000a900460ff16806111c55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806112195750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f906125bb565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113035750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113595750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113fc576014548111156113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a9061247b565b60405180910390fd5b601354816113b084610961565b6113ba91906126db565b11156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f29061257b565b60405180910390fd5b5b600061140730610961565b9050601160159054906101000a900460ff161580156114745750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561148c5750601160169054906101000a900460ff165b80156114985750600081115b156114c0576114a681611637565b600047905060008111156114be576114bd47611931565b5b505b61156d848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115675750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611695577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116c35781602001602082028036833780820191505090505b5090503081600081518110611701577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117db919061201b565b81600181518110611815577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061187c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e28565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118e0959493929190612611565b600060405180830381600087803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611999573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ec919061292d565b92505081905550600081611a005782611a0c565b611a0b858585611ad0565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a5d91906126db565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ac191906125f6565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b3157506000600754115b15611bd457600f60009054906101000a900461ffff1661ffff1660045483611b5991906128d3565b611b639190612731565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611b8c91906128d3565b611b969190612731565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611bbf91906128d3565b611bc99190612731565b600e81905550611cd3565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3357506000600b54115b15611cd257600f60009054906101000a900461ffff1661ffff1660085483611c5b91906128d3565b611c659190612731565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611c8e91906128d3565b611c989190612731565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611cc191906128d3565b611ccb9190612731565b600e819055505b5b600c5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4691906126db565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611dce91906125f6565b60405180910390a3600d546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e2991906126db565b92505081905550600d54601254611e40919061292d565b601281905550611e4e610750565b60128190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051611eb591906125f6565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0e91906126db565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051611f7491906125f6565b60405180910390a36000600e54600d54600c54611f9191906126db565b611f9b91906126db565b90508083611fa9919061292d565b9150509392505050565b600081359050611fc281612da1565b92915050565b600081519050611fd781612da1565b92915050565b600081359050611fec81612db8565b92915050565b60006020828403121561200457600080fd5b600061201284828501611fb3565b91505092915050565b60006020828403121561202d57600080fd5b600061203b84828501611fc8565b91505092915050565b6000806040838503121561205757600080fd5b600061206585828601611fb3565b925050602061207685828601611fb3565b9150509250929050565b60008060006060848603121561209557600080fd5b60006120a386828701611fb3565b93505060206120b486828701611fb3565b92505060406120c586828701611fdd565b9150509250925092565b600080604083850312156120e257600080fd5b60006120f085828601611fb3565b925050602061210185828601611fdd565b9150509250929050565b6000806040838503121561211e57600080fd5b600061212c85828601611fdd565b925050602061213d85828601611fdd565b9150509250929050565b6000612153838361215f565b60208301905092915050565b61216881612961565b82525050565b61217781612961565b82525050565b600061218882612696565b61219281856126b9565b935061219d83612686565b8060005b838110156121ce5781516121b58882612147565b97506121c0836126ac565b9250506001810190506121a1565b5085935050505092915050565b6121e481612973565b82525050565b6121f3816129c4565b82525050565b6000612204826126a1565b61220e81856126ca565b935061221e8185602086016129d6565b61222781612a67565b840191505092915050565b600061223f6023836126ca565b915061224a82612a85565b604082019050919050565b60006122626019836126ca565b915061226d82612ad4565b602082019050919050565b60006122856031836126ca565b915061229082612afd565b604082019050919050565b60006122a86026836126ca565b91506122b382612b4c565b604082019050919050565b60006122cb6022836126ca565b91506122d682612b9b565b604082019050919050565b60006122ee6028836126ca565b91506122f982612bea565b604082019050919050565b60006123116020836126ca565b915061231c82612c39565b602082019050919050565b60006123346029836126ca565b915061233f82612c62565b604082019050919050565b60006123576025836126ca565b915061236282612cb1565b604082019050919050565b600061237a601a836126ca565b915061238582612d00565b602082019050919050565b600061239d6024836126ca565b91506123a882612d29565b604082019050919050565b60006123c06017836126ca565b91506123cb82612d78565b602082019050919050565b6123df8161297f565b82525050565b6123ee816129ad565b82525050565b6123fd816129b7565b82525050565b6000602082019050612418600083018461216e565b92915050565b600060208201905061243360008301846121db565b92915050565b6000602082019050818103600083015261245381846121f9565b905092915050565b6000602082019050818103600083015261247481612232565b9050919050565b6000602082019050818103600083015261249481612255565b9050919050565b600060208201905081810360008301526124b481612278565b9050919050565b600060208201905081810360008301526124d48161229b565b9050919050565b600060208201905081810360008301526124f4816122be565b9050919050565b60006020820190508181036000830152612514816122e1565b9050919050565b6000602082019050818103600083015261253481612304565b9050919050565b6000602082019050818103600083015261255481612327565b9050919050565b600060208201905081810360008301526125748161234a565b9050919050565b600060208201905081810360008301526125948161236d565b9050919050565b600060208201905081810360008301526125b481612390565b9050919050565b600060208201905081810360008301526125d4816123b3565b9050919050565b60006020820190506125f060008301846123d6565b92915050565b600060208201905061260b60008301846123e5565b92915050565b600060a08201905061262660008301886123e5565b61263360208301876121ea565b8181036040830152612645818661217d565b9050612654606083018561216e565b61266160808301846123e5565b9695505050505050565b600060208201905061268060008301846123f4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126e6826129ad565b91506126f1836129ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561272657612725612a09565b5b828201905092915050565b600061273c826129ad565b9150612747836129ad565b92508261275757612756612a38565b5b828204905092915050565b6000808291508390505b60018511156127ac5780860481111561278857612787612a09565b5b60018516156127975780820291505b80810290506127a585612a78565b945061276c565b94509492505050565b60006127c0826129ad565b91506127cb836129b7565b92506127f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612800565b905092915050565b60008261281057600190506128cc565b8161281e57600090506128cc565b8160018114612834576002811461283e5761286d565b60019150506128cc565b60ff8411156128505761284f612a09565b5b8360020a91508482111561286757612866612a09565b5b506128cc565b5060208310610133831016604e8410600b84101617156128a25782820a90508381111561289d5761289c612a09565b5b6128cc565b6128af8484846001612762565b925090508184048111156128c6576128c5612a09565b5b81810290505b9392505050565b60006128de826129ad565b91506128e9836129ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561292257612921612a09565b5b828202905092915050565b6000612938826129ad565b9150612943836129ad565b92508282101561295657612955612a09565b5b828203905092915050565b600061296c8261298d565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129cf826129ad565b9050919050565b60005b838110156129f45780820151818401526020810190506129d9565b83811115612a03576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b612daa81612961565b8114612db557600080fd5b50565b612dc1816129ad565b8114612dcc57600080fd5b5056fea26469706673582212206ef5c67ed3d8806470b78be7b9fb4d23c6080473674ef4b3b588f565ec8a235764736f6c63430008040033

Deployed Bytecode Sourcemap

4230:9300:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5267:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7771:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8481:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8000:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5220:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5180:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8627:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7925:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12917:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4912:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4866:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8087:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2893:94;;;;;;;;;;;;;:::i;:::-;;4730:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2670:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4953:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7846:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5095:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5347:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8196:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4773:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4688:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5139:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4997:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8346:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13036:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13154:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4643:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2995:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5267:73;5298:42;5267:73;:::o;7771:69::-;7808:13;7832:5;;;;;;;;;;;;;;;;;7825:12;;7771:69;:::o;8481:138::-;8556:4;8564:39;8573:12;:10;:12::i;:::-;8587:7;8596:6;8564:8;:39::i;:::-;8612:4;8605:11;;8481:138;;;;:::o;8000:81::-;8053:7;8071;;8064:14;;8000:81;:::o;5220:38::-;;;;;;;;;;;;;:::o;5180:33::-;;;;:::o;8627:420::-;8733:4;8750:36;8760:6;8768:9;8779:6;8750:9;:36::i;:::-;8799:24;8826:11;:19;8838:6;8826:19;;;;;;;;;;;;;;;:33;8846:12;:10;:12::i;:::-;8826:33;;;;;;;;;;;;;;;;8799:60;;8898:6;8878:16;:26;;8870:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8960:57;8969:6;8977:12;:10;:12::i;:::-;9010:6;8991:16;:25;;;;:::i;:::-;8960:8;:57::i;:::-;9035:4;9028:11;;;8627:420;;;;;:::o;7925:69::-;7966:5;4633:1;7975:16;;7925:69;:::o;12917:111::-;2816:12;:10;:12::i;:::-;2805:23;;:7;:5;:7::i;:::-;:23;;;2797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13016:4:::1;12986:18;:27;13005:7;12986:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12917:111:::0;:::o;4912:34::-;;;;:::o;4866:39::-;;;;:::o;8087:103::-;8153:7;8171;:16;8179:7;8171:16;;;;;;;;;;;;;;;;8164:23;;8087:103;;;:::o;2893:94::-;2816:12;:10;:12::i;:::-;2805:23;;:7;:5;:7::i;:::-;:23;;;2797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2958:21:::1;2976:1;2958:9;:21::i;:::-;2893:94::o:0;4730:36::-;;;;:::o;2670:87::-;2716:7;2743:6;;;;;;;;;;;2736:13;;2670:87;:::o;4953:37::-;;;;:::o;7846:73::-;7885:13;7909:7;;;;;;;;;;;;;;;;;7902:14;;7846:73;:::o;5095:37::-;;;;:::o;5347:26::-;;;;;;;;;;;;;:::o;8196:144::-;8274:4;8282:42;8292:12;:10;:12::i;:::-;8306:9;8317:6;8282:9;:42::i;:::-;8333:4;8326:11;;8196:144;;;;:::o;4773:84::-;;;;:::o;4688:35::-;;;;:::o;5139:32::-;;;;:::o;4997:89::-;;;;:::o;8346:129::-;8427:7;8445:11;:18;8457:5;8445:18;;;;;;;;;;;;;;;:27;8464:7;8445:27;;;;;;;;;;;;;;;;8438:34;;8346:129;;;;:::o;13036:110::-;2816:12;:10;:12::i;:::-;2805:23;;:7;:5;:7::i;:::-;:23;;;2797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13133:5:::1;13103:18;:27;13122:7;13103:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13036:110:::0;:::o;13154:223::-;2816:12;:10;:12::i;:::-;2805:23;;:7;:5;:7::i;:::-;:23;;;2797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4633:1:::1;13289:2;:14;;;;:::i;:::-;13274:12;:29;;;;:::i;:::-;13260:11;:43;;;;4633:1;13349:2;:14;;;;:::i;:::-;13332;:31;;;;:::i;:::-;13314:15;:49;;;;13154:223:::0;;:::o;4643:38::-;;;;:::o;2995:192::-;2816:12;:10;:12::i;:::-;2805:23;;:7;:5;:7::i;:::-;:23;;;2797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3104:1:::1;3084:22;;:8;:22;;;;3076:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3160:19;3170:8;3160:9;:19::i;:::-;2995:192:::0;:::o;2091:98::-;2144:7;2171:10;2164:17;;2091:98;:::o;9055:335::-;9165:1;9148:19;;:5;:19;;;;9140:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9246:1;9227:21;;:7;:21;;;;9219:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9328:6;9298:11;:18;9310:5;9298:18;;;;;;;;;;;;;;;:27;9317:7;9298:27;;;;;;;;;;;;;;;:36;;;;9366:7;9350:32;;9359:5;9350:32;;;9375:6;9350:32;;;;;;:::i;:::-;;;;;;;;9055:335;;;:::o;9398:1335::-;9502:1;9486:18;;:4;:18;;;;9478:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9579:1;9565:16;;:2;:16;;;;9557:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9649:1;9640:6;:10;9632:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9725:15;9735:4;9725:9;:15::i;:::-;9715:6;:25;;9707:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9816:11;;;;;;;;;;;:39;;;;9831:18;:24;9850:4;9831:24;;;;;;;;;;;;;;;;;;;;;;;;;9816:39;:65;;;;9859:18;:22;9878:2;9859:22;;;;;;;;;;;;;;;;;;;;;;;;;9816:65;9808:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;9934:13;;;;;;;;;;;9926:21;;:4;:21;;;:55;;;;;9965:15;;;;;;;;;;;9951:30;;:2;:30;;;;9926:55;:83;;;;;9987:18;:22;10006:2;9987:22;;;;;;;;;;;;;;;;;;;;;;;;;9985:24;9926:83;9922:278;;;10048:11;;10038:6;:21;;10030:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10142:15;;10132:6;10116:13;10126:2;10116:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10108:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9922:278;10212:28;10243:24;10261:4;10243:9;:24::i;:::-;10212:55;;10287:6;;;;;;;;;;;10286:7;:32;;;;;10305:13;;;;;;;;;;;10297:21;;:4;:21;;;;10286:32;:47;;;;;10322:11;;;;;;;;;;;10286:47;:73;;;;;10358:1;10337:20;:22;10286:73;10282:344;;;10380:38;10397:20;10380:16;:38::i;:::-;10437:26;10466:21;10437:50;;10530:1;10509:18;:22;10506:105;;;10556:35;10569:21;10556:12;:35::i;:::-;10506:105;10282:344;;10638:87;10653:4;10659:2;10663:6;10673:18;:24;10692:4;10673:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10701:18;:22;10720:2;10701:22;;;;;;;;;;;;;;;;;;;;;;;;;10673:50;10671:53;10638:14;:87::i;:::-;9398:1335;;;;:::o;3195:173::-;3251:16;3270:6;;;;;;;;;;;3251:25;;3296:8;3287:6;;:17;;;;;;;;;;;;;;;;;;3351:8;3320:40;;3341:8;3320:40;;;;;;;;;;;;3195:173;;:::o;10741:483::-;5876:4;5867:6;;:13;;;;;;;;;;;;;;;;;;10819:21:::1;10857:1;10843:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10819:40;;10888:4;10870;10875:1;10870:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10914:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10904:4;10909:1;10904:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10947:62;10964:4;10979:15;;;;;;;;;;;10997:11;10947:8;:62::i;:::-;11020:15;;;;;;;;;;;:66;;;11101:11;11127:1;11143:4;11170;11190:15;11020:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5891:1;5912:5:::0;5903:6;;:14;;;;;;;;;;;;;;;;;;10741:483;:::o;13389:95::-;13446:13;;;;;;;;;;;:22;;:30;13469:6;13446:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13389:95;:::o;11232:340::-;11359:6;11340:7;:15;11348:6;11340:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11376:22;11402:7;11401:57;;11452:6;11401:57;;;11413:36;11423:6;11431:9;11442:6;11413:9;:36::i;:::-;11401:57;11376:82;;11491:14;11469:7;:18;11477:9;11469:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11538:9;11521:43;;11530:6;11521:43;;;11549:14;11521:43;;;;;;:::i;:::-;;;;;;;;11232:340;;;;;:::o;11580:1329::-;11659:7;11690:13;;;;;;;;;;;11682:21;;:4;:21;;;:41;;;;;11722:1;11707:12;;:16;11682:41;11679:637;;;11798:16;;;;;;;;;;;11767:47;;11776:19;;11767:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;11742:22;:72;;;;11875:16;;;;;;;;;;;11849:42;;11858:14;;11849:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;11829:17;:62;;;;11963:16;;;;;;;;;;;11936:43;;11945:15;;11936:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;11915:18;:64;;;;11679:637;;;12011:13;;;;;;;;;;;12005:19;;:2;:19;;;:41;;;;;12045:1;12029:13;;:17;12005:41;12001:315;;;12122:16;;;;;;;;;;;12090:48;;12099:20;;12090:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;12065:22;:73;;;;12200:16;;;;;;;;;;;12173:43;;12182:15;;12173:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12153:17;:63;;;;12280:16;;;;;;;;;;;12252:44;;12261:16;;12252:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12231:18;:65;;;;12001:315;11679:637;12350:22;;12326:7;:20;12334:11;;;;;;;;;;;12326:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12403:11;;;;;;;;;;;12388:51;;12397:4;12388:51;;;12416:22;;12388:51;;;;;;:::i;:::-;;;;;;;;12477:17;;12460:7;:13;5298:42;12460:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;12525:17;;12515:7;;:27;;;;:::i;:::-;12505:7;:37;;;;12563:13;:11;:13::i;:::-;12553:7;:23;;;;5298:42;12592:39;;12601:4;12592:39;;;12613:17;;12592:39;;;;;;:::i;:::-;;;;;;;;12686:18;;12660:7;:22;12676:4;12660:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;12743:4;12720:49;;12729:4;12720:49;;;12750:18;;12720:49;;;;;;:::i;:::-;;;;;;;;12782:17;12847:18;;12827:17;;12802:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;12782:83;;12892:9;12883:6;:18;;;;:::i;:::-;12876:25;;;11580:1329;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:262::-;505:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;613:1;638:53;683:7;674:6;663:9;659:22;638:53;:::i;:::-;628:63;;584:117;512:196;;;;:::o;714:284::-;784:6;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:64;973:7;964:6;953:9;949:22;917:64;:::i;:::-;907:74;;863:128;791:207;;;;:::o;1004:407::-;1072:6;1080;1129:2;1117:9;1108:7;1104:23;1100:32;1097:2;;;1145:1;1142;1135:12;1097:2;1188:1;1213:53;1258:7;1249:6;1238:9;1234:22;1213:53;:::i;:::-;1203:63;;1159:117;1315:2;1341:53;1386:7;1377:6;1366:9;1362:22;1341:53;:::i;:::-;1331:63;;1286:118;1087:324;;;;;:::o;1417:552::-;1494:6;1502;1510;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1575:1;1572;1565:12;1527:2;1618:1;1643:53;1688:7;1679:6;1668:9;1664:22;1643:53;:::i;:::-;1633:63;;1589:117;1745:2;1771:53;1816:7;1807:6;1796:9;1792:22;1771:53;:::i;:::-;1761:63;;1716:118;1873:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1844:118;1517:452;;;;;:::o;1975:407::-;2043:6;2051;2100:2;2088:9;2079:7;2075:23;2071:32;2068:2;;;2116:1;2113;2106:12;2068:2;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;2058:324;;;;;:::o;2388:407::-;2456:6;2464;2513:2;2501:9;2492:7;2488:23;2484:32;2481:2;;;2529:1;2526;2519:12;2481:2;2572:1;2597:53;2642:7;2633:6;2622:9;2618:22;2597:53;:::i;:::-;2587:63;;2543:117;2699:2;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2670:118;2471:324;;;;;:::o;2801:179::-;2870:10;2891:46;2933:3;2925:6;2891:46;:::i;:::-;2969:4;2964:3;2960:14;2946:28;;2881:99;;;;:::o;2986:108::-;3063:24;3081:5;3063:24;:::i;:::-;3058:3;3051:37;3041:53;;:::o;3100:118::-;3187:24;3205:5;3187:24;:::i;:::-;3182:3;3175:37;3165:53;;:::o;3254:732::-;3373:3;3402:54;3450:5;3402:54;:::i;:::-;3472:86;3551:6;3546:3;3472:86;:::i;:::-;3465:93;;3582:56;3632:5;3582:56;:::i;:::-;3661:7;3692:1;3677:284;3702:6;3699:1;3696:13;3677:284;;;3778:6;3772:13;3805:63;3864:3;3849:13;3805:63;:::i;:::-;3798:70;;3891:60;3944:6;3891:60;:::i;:::-;3881:70;;3737:224;3724:1;3721;3717:9;3712:14;;3677:284;;;3681:14;3977:3;3970:10;;3378:608;;;;;;;:::o;3992:109::-;4073:21;4088:5;4073:21;:::i;:::-;4068:3;4061:34;4051:50;;:::o;4107:147::-;4202:45;4241:5;4202:45;:::i;:::-;4197:3;4190:58;4180:74;;:::o;4260:364::-;4348:3;4376:39;4409:5;4376:39;:::i;:::-;4431:71;4495:6;4490:3;4431:71;:::i;:::-;4424:78;;4511:52;4556:6;4551:3;4544:4;4537:5;4533:16;4511:52;:::i;:::-;4588:29;4610:6;4588:29;:::i;:::-;4583:3;4579:39;4572:46;;4352:272;;;;;:::o;4630:366::-;4772:3;4793:67;4857:2;4852:3;4793:67;:::i;:::-;4786:74;;4869:93;4958:3;4869:93;:::i;:::-;4987:2;4982:3;4978:12;4971:19;;4776:220;;;:::o;5002:366::-;5144:3;5165:67;5229:2;5224:3;5165:67;:::i;:::-;5158:74;;5241:93;5330:3;5241:93;:::i;:::-;5359:2;5354:3;5350:12;5343:19;;5148:220;;;:::o;5374:366::-;5516:3;5537:67;5601:2;5596:3;5537:67;:::i;:::-;5530:74;;5613:93;5702:3;5613:93;:::i;:::-;5731:2;5726:3;5722:12;5715:19;;5520:220;;;:::o;5746:366::-;5888:3;5909:67;5973:2;5968:3;5909:67;:::i;:::-;5902:74;;5985:93;6074:3;5985:93;:::i;:::-;6103:2;6098:3;6094:12;6087:19;;5892:220;;;:::o;6118:366::-;6260:3;6281:67;6345:2;6340:3;6281:67;:::i;:::-;6274:74;;6357:93;6446:3;6357:93;:::i;:::-;6475:2;6470:3;6466:12;6459:19;;6264:220;;;:::o;6490:366::-;6632:3;6653:67;6717:2;6712:3;6653:67;:::i;:::-;6646:74;;6729:93;6818:3;6729:93;:::i;:::-;6847:2;6842:3;6838:12;6831:19;;6636:220;;;:::o;6862:366::-;7004:3;7025:67;7089:2;7084:3;7025:67;:::i;:::-;7018:74;;7101:93;7190:3;7101:93;:::i;:::-;7219:2;7214:3;7210:12;7203:19;;7008:220;;;:::o;7234:366::-;7376:3;7397:67;7461:2;7456:3;7397:67;:::i;:::-;7390:74;;7473:93;7562:3;7473:93;:::i;:::-;7591:2;7586:3;7582:12;7575:19;;7380:220;;;:::o;7606:366::-;7748:3;7769:67;7833:2;7828:3;7769:67;:::i;:::-;7762:74;;7845:93;7934:3;7845:93;:::i;:::-;7963:2;7958:3;7954:12;7947:19;;7752:220;;;:::o;7978:366::-;8120:3;8141:67;8205:2;8200:3;8141:67;:::i;:::-;8134:74;;8217:93;8306:3;8217:93;:::i;:::-;8335:2;8330:3;8326:12;8319:19;;8124:220;;;:::o;8350:366::-;8492:3;8513:67;8577:2;8572:3;8513:67;:::i;:::-;8506:74;;8589:93;8678:3;8589:93;:::i;:::-;8707:2;8702:3;8698:12;8691:19;;8496:220;;;:::o;8722:366::-;8864:3;8885:67;8949:2;8944:3;8885:67;:::i;:::-;8878:74;;8961:93;9050:3;8961:93;:::i;:::-;9079:2;9074:3;9070:12;9063:19;;8868:220;;;:::o;9094:115::-;9179:23;9196:5;9179:23;:::i;:::-;9174:3;9167:36;9157:52;;:::o;9215:118::-;9302:24;9320:5;9302:24;:::i;:::-;9297:3;9290:37;9280:53;;:::o;9339:112::-;9422:22;9438:5;9422:22;:::i;:::-;9417:3;9410:35;9400:51;;:::o;9457:222::-;9550:4;9588:2;9577:9;9573:18;9565:26;;9601:71;9669:1;9658:9;9654:17;9645:6;9601:71;:::i;:::-;9555:124;;;;:::o;9685:210::-;9772:4;9810:2;9799:9;9795:18;9787:26;;9823:65;9885:1;9874:9;9870:17;9861:6;9823:65;:::i;:::-;9777:118;;;;:::o;9901:313::-;10014:4;10052:2;10041:9;10037:18;10029:26;;10101:9;10095:4;10091:20;10087:1;10076:9;10072:17;10065:47;10129:78;10202:4;10193:6;10129:78;:::i;:::-;10121:86;;10019:195;;;;:::o;10220:419::-;10386:4;10424:2;10413:9;10409:18;10401:26;;10473:9;10467:4;10463:20;10459:1;10448:9;10444:17;10437:47;10501:131;10627:4;10501:131;:::i;:::-;10493:139;;10391:248;;;:::o;10645:419::-;10811:4;10849:2;10838:9;10834:18;10826:26;;10898:9;10892:4;10888:20;10884:1;10873:9;10869:17;10862:47;10926:131;11052:4;10926:131;:::i;:::-;10918:139;;10816:248;;;:::o;11070:419::-;11236:4;11274:2;11263:9;11259:18;11251:26;;11323:9;11317:4;11313:20;11309:1;11298:9;11294:17;11287:47;11351:131;11477:4;11351:131;:::i;:::-;11343:139;;11241:248;;;:::o;11495:419::-;11661:4;11699:2;11688:9;11684:18;11676:26;;11748:9;11742:4;11738:20;11734:1;11723:9;11719:17;11712:47;11776:131;11902:4;11776:131;:::i;:::-;11768:139;;11666:248;;;:::o;11920:419::-;12086:4;12124:2;12113:9;12109:18;12101:26;;12173:9;12167:4;12163:20;12159:1;12148:9;12144:17;12137:47;12201:131;12327:4;12201:131;:::i;:::-;12193:139;;12091:248;;;:::o;12345:419::-;12511:4;12549:2;12538:9;12534:18;12526:26;;12598:9;12592:4;12588:20;12584:1;12573:9;12569:17;12562:47;12626:131;12752:4;12626:131;:::i;:::-;12618:139;;12516:248;;;:::o;12770:419::-;12936:4;12974:2;12963:9;12959:18;12951:26;;13023:9;13017:4;13013:20;13009:1;12998:9;12994:17;12987:47;13051:131;13177:4;13051:131;:::i;:::-;13043:139;;12941:248;;;:::o;13195:419::-;13361:4;13399:2;13388:9;13384:18;13376:26;;13448:9;13442:4;13438:20;13434:1;13423:9;13419:17;13412:47;13476:131;13602:4;13476:131;:::i;:::-;13468:139;;13366:248;;;:::o;13620:419::-;13786:4;13824:2;13813:9;13809:18;13801:26;;13873:9;13867:4;13863:20;13859:1;13848:9;13844:17;13837:47;13901:131;14027:4;13901:131;:::i;:::-;13893:139;;13791:248;;;:::o;14045:419::-;14211:4;14249:2;14238:9;14234:18;14226:26;;14298:9;14292:4;14288:20;14284:1;14273:9;14269:17;14262:47;14326:131;14452:4;14326:131;:::i;:::-;14318:139;;14216:248;;;:::o;14470:419::-;14636:4;14674:2;14663:9;14659:18;14651:26;;14723:9;14717:4;14713:20;14709:1;14698:9;14694:17;14687:47;14751:131;14877:4;14751:131;:::i;:::-;14743:139;;14641:248;;;:::o;14895:419::-;15061:4;15099:2;15088:9;15084:18;15076:26;;15148:9;15142:4;15138:20;15134:1;15123:9;15119:17;15112:47;15176:131;15302:4;15176:131;:::i;:::-;15168:139;;15066:248;;;:::o;15320:218::-;15411:4;15449:2;15438:9;15434:18;15426:26;;15462:69;15528:1;15517:9;15513:17;15504:6;15462:69;:::i;:::-;15416:122;;;;:::o;15544:222::-;15637:4;15675:2;15664:9;15660:18;15652:26;;15688:71;15756:1;15745:9;15741:17;15732:6;15688:71;:::i;:::-;15642:124;;;;:::o;15772:831::-;16035:4;16073:3;16062:9;16058:19;16050:27;;16087:71;16155:1;16144:9;16140:17;16131:6;16087:71;:::i;:::-;16168:80;16244:2;16233:9;16229:18;16220:6;16168:80;:::i;:::-;16295:9;16289:4;16285:20;16280:2;16269:9;16265:18;16258:48;16323:108;16426:4;16417:6;16323:108;:::i;:::-;16315:116;;16441:72;16509:2;16498:9;16494:18;16485:6;16441:72;:::i;:::-;16523:73;16591:3;16580:9;16576:19;16567:6;16523:73;:::i;:::-;16040:563;;;;;;;;:::o;16609:214::-;16698:4;16736:2;16725:9;16721:18;16713:26;;16749:67;16813:1;16802:9;16798:17;16789:6;16749:67;:::i;:::-;16703:120;;;;:::o;16829:132::-;16896:4;16919:3;16911:11;;16949:4;16944:3;16940:14;16932:22;;16901:60;;;:::o;16967:114::-;17034:6;17068:5;17062:12;17052:22;;17041:40;;;:::o;17087:99::-;17139:6;17173:5;17167:12;17157:22;;17146:40;;;:::o;17192:113::-;17262:4;17294;17289:3;17285:14;17277:22;;17267:38;;;:::o;17311:184::-;17410:11;17444:6;17439:3;17432:19;17484:4;17479:3;17475:14;17460:29;;17422:73;;;;:::o;17501:169::-;17585:11;17619:6;17614:3;17607:19;17659:4;17654:3;17650:14;17635:29;;17597:73;;;;:::o;17676:305::-;17716:3;17735:20;17753:1;17735:20;:::i;:::-;17730:25;;17769:20;17787:1;17769:20;:::i;:::-;17764:25;;17923:1;17855:66;17851:74;17848:1;17845:81;17842:2;;;17929:18;;:::i;:::-;17842:2;17973:1;17970;17966:9;17959:16;;17720:261;;;;:::o;17987:185::-;18027:1;18044:20;18062:1;18044:20;:::i;:::-;18039:25;;18078:20;18096:1;18078:20;:::i;:::-;18073:25;;18117:1;18107:2;;18122:18;;:::i;:::-;18107:2;18164:1;18161;18157:9;18152:14;;18029:143;;;;:::o;18178:848::-;18239:5;18246:4;18270:6;18261:15;;18294:5;18285:14;;18308:712;18329:1;18319:8;18316:15;18308:712;;;18424:4;18419:3;18415:14;18409:4;18406:24;18403:2;;;18433:18;;:::i;:::-;18403:2;18483:1;18473:8;18469:16;18466:2;;;18898:4;18891:5;18887:16;18878:25;;18466:2;18948:4;18942;18938:15;18930:23;;18978:32;19001:8;18978:32;:::i;:::-;18966:44;;18308:712;;;18251:775;;;;;;;:::o;19032:281::-;19090:5;19114:23;19132:4;19114:23;:::i;:::-;19106:31;;19158:25;19174:8;19158:25;:::i;:::-;19146:37;;19202:104;19239:66;19229:8;19223:4;19202:104;:::i;:::-;19193:113;;19096:217;;;;:::o;19319:1073::-;19373:5;19564:8;19554:2;;19585:1;19576:10;;19587:5;;19554:2;19613:4;19603:2;;19630:1;19621:10;;19632:5;;19603:2;19699:4;19747:1;19742:27;;;;19783:1;19778:191;;;;19692:277;;19742:27;19760:1;19751:10;;19762:5;;;19778:191;19823:3;19813:8;19810:17;19807:2;;;19830:18;;:::i;:::-;19807:2;19879:8;19876:1;19872:16;19863:25;;19914:3;19907:5;19904:14;19901:2;;;19921:18;;:::i;:::-;19901:2;19954:5;;;19692:277;;20078:2;20068:8;20065:16;20059:3;20053:4;20050:13;20046:36;20028:2;20018:8;20015:16;20010:2;20004:4;20001:12;19997:35;19981:111;19978:2;;;20134:8;20128:4;20124:19;20115:28;;20169:3;20162:5;20159:14;20156:2;;;20176:18;;:::i;:::-;20156:2;20209:5;;19978:2;20249:42;20287:3;20277:8;20271:4;20268:1;20249:42;:::i;:::-;20234:57;;;;20323:4;20318:3;20314:14;20307:5;20304:25;20301:2;;;20332:18;;:::i;:::-;20301:2;20381:4;20374:5;20370:16;20361:25;;19379:1013;;;;;;:::o;20398:348::-;20438:7;20461:20;20479:1;20461:20;:::i;:::-;20456:25;;20495:20;20513:1;20495:20;:::i;:::-;20490:25;;20683:1;20615:66;20611:74;20608:1;20605:81;20600:1;20593:9;20586:17;20582:105;20579:2;;;20690:18;;:::i;:::-;20579:2;20738:1;20735;20731:9;20720:20;;20446:300;;;;:::o;20752:191::-;20792:4;20812:20;20830:1;20812:20;:::i;:::-;20807:25;;20846:20;20864:1;20846:20;:::i;:::-;20841:25;;20885:1;20882;20879:8;20876:2;;;20890:18;;:::i;:::-;20876:2;20935:1;20932;20928:9;20920:17;;20797:146;;;;:::o;20949:96::-;20986:7;21015:24;21033:5;21015:24;:::i;:::-;21004:35;;20994:51;;;:::o;21051:90::-;21085:7;21128:5;21121:13;21114:21;21103:32;;21093:48;;;:::o;21147:89::-;21183:7;21223:6;21216:5;21212:18;21201:29;;21191:45;;;:::o;21242:126::-;21279:7;21319:42;21312:5;21308:54;21297:65;;21287:81;;;:::o;21374:77::-;21411:7;21440:5;21429:16;;21419:32;;;:::o;21457:86::-;21492:7;21532:4;21525:5;21521:16;21510:27;;21500:43;;;:::o;21549:121::-;21607:9;21640:24;21658:5;21640:24;:::i;:::-;21627:37;;21617:53;;;:::o;21676:307::-;21744:1;21754:113;21768:6;21765:1;21762:13;21754:113;;;21853:1;21848:3;21844:11;21838:18;21834:1;21829:3;21825:11;21818:39;21790:2;21787:1;21783:10;21778:15;;21754:113;;;21885:6;21882:1;21879:13;21876:2;;;21965:1;21956:6;21951:3;21947:16;21940:27;21876:2;21725:258;;;;:::o;21989:180::-;22037:77;22034:1;22027:88;22134:4;22131:1;22124:15;22158:4;22155:1;22148:15;22175:180;22223:77;22220:1;22213:88;22320:4;22317:1;22310:15;22344:4;22341:1;22334:15;22361:102;22402:6;22453:2;22449:7;22444:2;22437:5;22433:14;22429:28;22419:38;;22409:54;;;:::o;22469:102::-;22511:8;22558:5;22555:1;22551:13;22530:34;;22520:51;;;:::o;22577:222::-;22717:34;22713:1;22705:6;22701:14;22694:58;22786:5;22781:2;22773:6;22769:15;22762:30;22683:116;:::o;22805:175::-;22945:27;22941:1;22933:6;22929:14;22922:51;22911:69;:::o;22986:236::-;23126:34;23122:1;23114:6;23110:14;23103:58;23195:19;23190:2;23182:6;23178:15;23171:44;23092:130;:::o;23228:225::-;23368:34;23364:1;23356:6;23352:14;23345:58;23437:8;23432:2;23424:6;23420:15;23413:33;23334:119;:::o;23459:221::-;23599:34;23595:1;23587:6;23583:14;23576:58;23668:4;23663:2;23655:6;23651:15;23644:29;23565:115;:::o;23686:227::-;23826:34;23822:1;23814:6;23810:14;23803:58;23895:10;23890:2;23882:6;23878:15;23871:35;23792:121;:::o;23919:182::-;24059:34;24055:1;24047:6;24043:14;24036:58;24025:76;:::o;24107:228::-;24247:34;24243:1;24235:6;24231:14;24224:58;24316:11;24311:2;24303:6;24299:15;24292:36;24213:122;:::o;24341:224::-;24481:34;24477:1;24469:6;24465:14;24458:58;24550:7;24545:2;24537:6;24533:15;24526:32;24447:118;:::o;24571:176::-;24711:28;24707:1;24699:6;24695:14;24688:52;24677:70;:::o;24753:223::-;24893:34;24889:1;24881:6;24877:14;24870:58;24962:6;24957:2;24949:6;24945:15;24938:31;24859:117;:::o;24982:173::-;25122:25;25118:1;25110:6;25106:14;25099:49;25088:67;:::o;25161:122::-;25234:24;25252:5;25234:24;:::i;:::-;25227:5;25224:35;25214:2;;25273:1;25270;25263:12;25214:2;25204:79;:::o;25289:122::-;25362:24;25380:5;25362:24;:::i;:::-;25355:5;25352:35;25342:2;;25401:1;25398;25391:12;25342:2;25332:79;:::o

Swarm Source

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