ETH Price: $3,471.57 (+4.63%)

Token

Dinger Token (DINGER)
 

Overview

Max Total Supply

1,000,000,000,000 DINGER

Holders

7,176 ( -0.028%)

Market

Price

$0.00 @ 0.000000 ETH (+7.23%)

Onchain Market Cap

$3,130,000.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0 DINGER

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Dinger Token is the next generation of meme culture. It aims to kick off a revolution where an average person can gain access to launching meme tokens and creating their own unique environments that will help their memes succeed.

Market

Volume (24H):$2,332.99
Market Capitalization:$0.00
Circulating Supply:0.00 DINGER
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DINGER

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-18
*/

/**
 * 
 * 
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

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

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

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

}  

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

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

contract DINGER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Dinger Token";
    string private constant _symbol = unicode"DINGER";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 7;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private inSwap = false;
    uint256 private walletLimitDuration;
    struct User {
        uint256 buyCD;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                
                if (walletLimitDuration > block.timestamp) {
                    uint walletBalance = balanceOf(address(to));
                    require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

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

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

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

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

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        walletLimitDuration = block.timestamp + (60 minutes);
    }
    
    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = false;
    }
    
    function setNoTaxMode(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _noTaxMode = onoff;
    }
    
    function setTeamFee(uint256 team) external {
        require(_msgSender() == _FeeAddress);
        require(team <= 7);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _FeeAddress);
        require(tax <= 1);
        _taxFee = tax;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"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":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200057d565b6000196200002c919062000504565b60075560016009556007600a55600954600b55600a54600c556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550348015620000a357600080fd5b5060405162004222380380620042228339818101604052810190620000c991906200048f565b6000620000db6200044760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620002126200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002666200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf6200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004379190620004e7565b60405180910390a3505062000632565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004898162000618565b92915050565b60008060408385031215620004a957620004a862000613565b5b6000620004b98582860162000478565b9250506020620004cc8582860162000478565b9150509250929050565b620004e18162000573565b82525050565b6000602082019050620004fe6000830184620004d6565b92915050565b6000620005118262000573565b91506200051e8362000573565b925082821015620005345762000533620005b5565b5b828203905092915050565b60006200054c8262000553565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200058a8262000573565b9150620005978362000573565b925082620005aa57620005a9620005e4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000623816200053f565b81146200062f57600080fd5b50565b613be080620006426000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190613285565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612daf565b6105f2565b6040516101d5919061326a565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b6040516102009190613407565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612d5c565b610621565b60405161023d919061326a565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612c95565b6106fa565b005b34801561027b57600080fd5b506102846107ea565b6040516102919190613407565b60405180910390f35b3480156102a657600080fd5b506102af6107fa565b6040516102bc919061347c565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612c95565b610803565b6040516102f9919061326a565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612cef565b610859565b005b34801561033757600080fd5b50610352600480360381019061034d9190612e38565b610915565b005b34801561036057600080fd5b5061037b60048036038101906103769190612cef565b610993565b005b34801561038957600080fd5b50610392610b0a565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612c95565b610b7c565b6040516103c89190613407565b60405180910390f35b3480156103dd57600080fd5b506103e6610bcd565b005b3480156103f457600080fd5b506103fd610d20565b60405161040a919061319c565b60405180910390f35b34801561041f57600080fd5b50610428610d49565b6040516104359190613285565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612daf565b610d86565b604051610472919061326a565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612def565b610da4565b005b3480156104b057600080fd5b506104b9610fb4565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190612e92565b61102e565b005b3480156104f057600080fd5b506104f96110a7565b005b34801561050757600080fd5b50610522600480360381019061051d9190612cef565b6115d2565b005b34801561053057600080fd5b5061053961168e565b6040516105469190613407565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612d1c565b6116c0565b6040516105839190613407565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190612e92565b611747565b005b60606040518060400160405280600c81526020017f44696e67657220546f6b656e0000000000000000000000000000000000000000815250905090565b60006106066105ff6117c0565b84846117c8565b6001905092915050565b6000683635c9adc5dea00000905090565b600061062e848484611993565b6106ef8461063a6117c0565b6106ea85604051806060016040528060288152602001613b8360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a06117c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe59092919063ffffffff16565b6117c8565b600190509392505050565b6107026117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690613347565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f530610b7c565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089a6117c0565b73ffffffffffffffffffffffffffffffffffffffff16146108ba57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109566117c0565b73ffffffffffffffffffffffffffffffffffffffff161461097657600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d46117c0565b73ffffffffffffffffffffffffffffffffffffffff16146109f457600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4b6117c0565b73ffffffffffffffffffffffffffffffffffffffff1614610b6b57600080fd5b6000479050610b7981612049565b50565b6000610bc6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612144565b9050919050565b610bd56117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5990613347565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f44494e4745520000000000000000000000000000000000000000000000000000815250905090565b6000610d9a610d936117c0565b8484611993565b6001905092915050565b610dac6117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090613347565b60405180910390fd5b60005b8151811015610fb057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9157610e906137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f255750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0457610f036137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610f9d57600160066000848481518110610f4357610f426137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fa89061372f565b915050610e3c565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff56117c0565b73ffffffffffffffffffffffffffffffffffffffff161461101557600080fd5b600061102030610b7c565b905061102b816121b2565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106f6117c0565b73ffffffffffffffffffffffffffffffffffffffff161461108f57600080fd5b600181111561109d57600080fd5b8060098190555050565b6110af6117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390613347565b60405180910390fd5b601060149054906101000a900460ff161561118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906133c7565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121c30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006117c8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561126257600080fd5b505afa158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a9190612cc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190612cc2565b6040518363ffffffff1660e01b81526004016113519291906131b7565b602060405180830381600087803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a39190612cc2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061142c30610b7c565b600080611437610d20565b426040518863ffffffff1660e01b815260040161145996959493929190613209565b6060604051808303818588803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ab9190612ebf565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161154d9291906131e0565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f9190612e65565b506001601060146101000a81548160ff021916908315150217905550610e10426115c9919061353d565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116136117c0565b73ffffffffffffffffffffffffffffffffffffffff161461163357600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006116bb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117886117c0565b73ffffffffffffffffffffffffffffffffffffffff16146117a857600080fd5b60078111156117b657600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f906133a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f906132e7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119869190613407565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90613387565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a906132a7565b60405180910390fd5b60008111611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613367565b60405180910390fd5b611abe610d20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b2c5750611afc610d20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f0b57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bd55750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bde57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c895750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cdf5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d9b57601060149054906101000a900460ff16611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906133e7565b60405180910390fd5b426011541115611d9a576000611d4883610b7c565b9050611d7a6064611d6c6002683635c9adc5dea0000061243a90919063ffffffff16565b6124b590919063ffffffff16565b611d8d82846124ff90919063ffffffff16565b1115611d9857600080fd5b505b5b6000611da630610b7c565b9050601060169054906101000a900460ff16158015611e135750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2b5750601060149054906101000a900460ff165b15611f09576000811115611eef57611e8a6064611e7c6005611e6e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61243a90919063ffffffff16565b6124b590919063ffffffff16565b811115611ee557611ee26064611ed46005611ec6601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61243a90919063ffffffff16565b6124b590919063ffffffff16565b90505b611eee816121b2565b5b60004790506000811115611f0757611f0647612049565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fb25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fc95750601060159054906101000a900460ff165b15611fd357600090505b611fdf8484848461255d565b50505050565b600083831115829061202d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120249190613285565b60405180910390fd5b506000838561203c919061361e565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120996002846124b590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120c4573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121156002846124b590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612140573d6000803e3d6000fd5b5050565b600060075482111561218b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612182906132c7565b60405180910390fd5b600061219561258a565b90506121aa81846124b590919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ea576121e9613805565b5b6040519080825280602002602001820160405280156122185781602001602082028036833780820191505090505b50905030816000815181106122305761222f6137d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190612cc2565b8160018151811061231e5761231d6137d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c8565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e9959493929190613422565b600060405180830381600087803b15801561240357600080fd5b505af1158015612417573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b60008083141561244d57600090506124af565b6000828461245b91906135c4565b905082848261246a9190613593565b146124aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a190613327565b60405180910390fd5b809150505b92915050565b60006124f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b600080828461250e919061353d565b905083811015612553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254a90613307565b60405180910390fd5b8091505092915050565b8061256b5761256a612618565b5b61257684848461265b565b8061258457612583612826565b5b50505050565b600080600061259761283a565b915091506125ae81836124b590919063ffffffff16565b9250505090565b600080831182906125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f39190613285565b60405180910390fd5b506000838561260b9190613593565b9050809150509392505050565b600060095414801561262c57506000600a54145b1561263657612659565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061266d8761289c565b9550955095509550955095506126cb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ac8161294e565b6127b68483612a0b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128139190613407565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612870683635c9adc5dea000006007546124b590919063ffffffff16565b82101561288f57600754683635c9adc5dea00000935093505050612898565b81819350935050505b9091565b60008060008060008060008060006128b98a600954600a54612a45565b92509250925060006128c961258a565b905060008060006128dc8e878787612adb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061294683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe5565b905092915050565b600061295861258a565b9050600061296f828461243a90919063ffffffff16565b90506129c381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a208260075461290490919063ffffffff16565b600781905550612a3b816008546124ff90919063ffffffff16565b6008819055505050565b600080600080612a716064612a63888a61243a90919063ffffffff16565b6124b590919063ffffffff16565b90506000612a9b6064612a8d888b61243a90919063ffffffff16565b6124b590919063ffffffff16565b90506000612ac482612ab6858c61290490919063ffffffff16565b61290490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612af4858961243a90919063ffffffff16565b90506000612b0b868961243a90919063ffffffff16565b90506000612b22878961243a90919063ffffffff16565b90506000612b4b82612b3d858761290490919063ffffffff16565b61290490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612b77612b72846134bc565b613497565b90508083825260208201905082856020860282011115612b9a57612b99613839565b5b60005b85811015612bca5781612bb08882612bd4565b845260208401935060208301925050600181019050612b9d565b5050509392505050565b600081359050612be381613b26565b92915050565b600081519050612bf881613b26565b92915050565b600081359050612c0d81613b3d565b92915050565b600082601f830112612c2857612c27613834565b5b8135612c38848260208601612b64565b91505092915050565b600081359050612c5081613b54565b92915050565b600081519050612c6581613b54565b92915050565b600081359050612c7a81613b6b565b92915050565b600081519050612c8f81613b6b565b92915050565b600060208284031215612cab57612caa613843565b5b6000612cb984828501612bd4565b91505092915050565b600060208284031215612cd857612cd7613843565b5b6000612ce684828501612be9565b91505092915050565b600060208284031215612d0557612d04613843565b5b6000612d1384828501612bfe565b91505092915050565b60008060408385031215612d3357612d32613843565b5b6000612d4185828601612bd4565b9250506020612d5285828601612bd4565b9150509250929050565b600080600060608486031215612d7557612d74613843565b5b6000612d8386828701612bd4565b9350506020612d9486828701612bd4565b9250506040612da586828701612c6b565b9150509250925092565b60008060408385031215612dc657612dc5613843565b5b6000612dd485828601612bd4565b9250506020612de585828601612c6b565b9150509250929050565b600060208284031215612e0557612e04613843565b5b600082013567ffffffffffffffff811115612e2357612e2261383e565b5b612e2f84828501612c13565b91505092915050565b600060208284031215612e4e57612e4d613843565b5b6000612e5c84828501612c41565b91505092915050565b600060208284031215612e7b57612e7a613843565b5b6000612e8984828501612c56565b91505092915050565b600060208284031215612ea857612ea7613843565b5b6000612eb684828501612c6b565b91505092915050565b600080600060608486031215612ed857612ed7613843565b5b6000612ee686828701612c80565b9350506020612ef786828701612c80565b9250506040612f0886828701612c80565b9150509250925092565b6000612f1e8383612f2a565b60208301905092915050565b612f3381613652565b82525050565b612f4281613652565b82525050565b6000612f53826134f8565b612f5d818561351b565b9350612f68836134e8565b8060005b83811015612f99578151612f808882612f12565b9750612f8b8361350e565b925050600181019050612f6c565b5085935050505092915050565b612faf81613676565b82525050565b612fbe816136b9565b82525050565b6000612fcf82613503565b612fd9818561352c565b9350612fe98185602086016136cb565b612ff281613848565b840191505092915050565b600061300a60238361352c565b915061301582613859565b604082019050919050565b600061302d602a8361352c565b9150613038826138a8565b604082019050919050565b600061305060228361352c565b915061305b826138f7565b604082019050919050565b6000613073601b8361352c565b915061307e82613946565b602082019050919050565b600061309660218361352c565b91506130a18261396f565b604082019050919050565b60006130b960208361352c565b91506130c4826139be565b602082019050919050565b60006130dc60298361352c565b91506130e7826139e7565b604082019050919050565b60006130ff60258361352c565b915061310a82613a36565b604082019050919050565b600061312260248361352c565b915061312d82613a85565b604082019050919050565b600061314560178361352c565b915061315082613ad4565b602082019050919050565b600061316860188361352c565b915061317382613afd565b602082019050919050565b613187816136a2565b82525050565b613196816136ac565b82525050565b60006020820190506131b16000830184612f39565b92915050565b60006040820190506131cc6000830185612f39565b6131d96020830184612f39565b9392505050565b60006040820190506131f56000830185612f39565b613202602083018461317e565b9392505050565b600060c08201905061321e6000830189612f39565b61322b602083018861317e565b6132386040830187612fb5565b6132456060830186612fb5565b6132526080830185612f39565b61325f60a083018461317e565b979650505050505050565b600060208201905061327f6000830184612fa6565b92915050565b6000602082019050818103600083015261329f8184612fc4565b905092915050565b600060208201905081810360008301526132c081612ffd565b9050919050565b600060208201905081810360008301526132e081613020565b9050919050565b6000602082019050818103600083015261330081613043565b9050919050565b6000602082019050818103600083015261332081613066565b9050919050565b6000602082019050818103600083015261334081613089565b9050919050565b60006020820190508181036000830152613360816130ac565b9050919050565b60006020820190508181036000830152613380816130cf565b9050919050565b600060208201905081810360008301526133a0816130f2565b9050919050565b600060208201905081810360008301526133c081613115565b9050919050565b600060208201905081810360008301526133e081613138565b9050919050565b600060208201905081810360008301526134008161315b565b9050919050565b600060208201905061341c600083018461317e565b92915050565b600060a082019050613437600083018861317e565b6134446020830187612fb5565b81810360408301526134568186612f48565b90506134656060830185612f39565b613472608083018461317e565b9695505050505050565b6000602082019050613491600083018461318d565b92915050565b60006134a16134b2565b90506134ad82826136fe565b919050565b6000604051905090565b600067ffffffffffffffff8211156134d7576134d6613805565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613548826136a2565b9150613553836136a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561358857613587613778565b5b828201905092915050565b600061359e826136a2565b91506135a9836136a2565b9250826135b9576135b86137a7565b5b828204905092915050565b60006135cf826136a2565b91506135da836136a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561361357613612613778565b5b828202905092915050565b6000613629826136a2565b9150613634836136a2565b92508282101561364757613646613778565b5b828203905092915050565b600061365d82613682565b9050919050565b600061366f82613682565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136c4826136a2565b9050919050565b60005b838110156136e95780820151818401526020810190506136ce565b838111156136f8576000848401525b50505050565b61370782613848565b810181811067ffffffffffffffff8211171561372657613725613805565b5b80604052505050565b600061373a826136a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561376d5761376c613778565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b2f81613652565b8114613b3a57600080fd5b50565b613b4681613664565b8114613b5157600080fd5b50565b613b5d81613676565b8114613b6857600080fd5b50565b613b74816136a2565b8114613b7f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e851631ae02db21e1b87adac8c622e4d9187a5473ad99086fdacbedb41a3c64f64736f6c63430008050033000000000000000000000000e0e6a460ae7c8f640d37fc31973d957faad53df700000000000000000000000013c2e5215692987dbcc639b7db70f1d6ef5f77a1

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190613285565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612daf565b6105f2565b6040516101d5919061326a565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b6040516102009190613407565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612d5c565b610621565b60405161023d919061326a565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612c95565b6106fa565b005b34801561027b57600080fd5b506102846107ea565b6040516102919190613407565b60405180910390f35b3480156102a657600080fd5b506102af6107fa565b6040516102bc919061347c565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612c95565b610803565b6040516102f9919061326a565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612cef565b610859565b005b34801561033757600080fd5b50610352600480360381019061034d9190612e38565b610915565b005b34801561036057600080fd5b5061037b60048036038101906103769190612cef565b610993565b005b34801561038957600080fd5b50610392610b0a565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612c95565b610b7c565b6040516103c89190613407565b60405180910390f35b3480156103dd57600080fd5b506103e6610bcd565b005b3480156103f457600080fd5b506103fd610d20565b60405161040a919061319c565b60405180910390f35b34801561041f57600080fd5b50610428610d49565b6040516104359190613285565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612daf565b610d86565b604051610472919061326a565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612def565b610da4565b005b3480156104b057600080fd5b506104b9610fb4565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190612e92565b61102e565b005b3480156104f057600080fd5b506104f96110a7565b005b34801561050757600080fd5b50610522600480360381019061051d9190612cef565b6115d2565b005b34801561053057600080fd5b5061053961168e565b6040516105469190613407565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612d1c565b6116c0565b6040516105839190613407565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190612e92565b611747565b005b60606040518060400160405280600c81526020017f44696e67657220546f6b656e0000000000000000000000000000000000000000815250905090565b60006106066105ff6117c0565b84846117c8565b6001905092915050565b6000683635c9adc5dea00000905090565b600061062e848484611993565b6106ef8461063a6117c0565b6106ea85604051806060016040528060288152602001613b8360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a06117c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe59092919063ffffffff16565b6117c8565b600190509392505050565b6107026117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690613347565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f530610b7c565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089a6117c0565b73ffffffffffffffffffffffffffffffffffffffff16146108ba57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109566117c0565b73ffffffffffffffffffffffffffffffffffffffff161461097657600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d46117c0565b73ffffffffffffffffffffffffffffffffffffffff16146109f457600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4b6117c0565b73ffffffffffffffffffffffffffffffffffffffff1614610b6b57600080fd5b6000479050610b7981612049565b50565b6000610bc6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612144565b9050919050565b610bd56117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5990613347565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f44494e4745520000000000000000000000000000000000000000000000000000815250905090565b6000610d9a610d936117c0565b8484611993565b6001905092915050565b610dac6117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090613347565b60405180910390fd5b60005b8151811015610fb057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9157610e906137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f255750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0457610f036137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610f9d57600160066000848481518110610f4357610f426137d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fa89061372f565b915050610e3c565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff56117c0565b73ffffffffffffffffffffffffffffffffffffffff161461101557600080fd5b600061102030610b7c565b905061102b816121b2565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106f6117c0565b73ffffffffffffffffffffffffffffffffffffffff161461108f57600080fd5b600181111561109d57600080fd5b8060098190555050565b6110af6117c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390613347565b60405180910390fd5b601060149054906101000a900460ff161561118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906133c7565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121c30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006117c8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561126257600080fd5b505afa158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a9190612cc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190612cc2565b6040518363ffffffff1660e01b81526004016113519291906131b7565b602060405180830381600087803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a39190612cc2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061142c30610b7c565b600080611437610d20565b426040518863ffffffff1660e01b815260040161145996959493929190613209565b6060604051808303818588803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114ab9190612ebf565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161154d9291906131e0565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f9190612e65565b506001601060146101000a81548160ff021916908315150217905550610e10426115c9919061353d565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116136117c0565b73ffffffffffffffffffffffffffffffffffffffff161461163357600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006116bb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117886117c0565b73ffffffffffffffffffffffffffffffffffffffff16146117a857600080fd5b60078111156117b657600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f906133a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f906132e7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119869190613407565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90613387565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a906132a7565b60405180910390fd5b60008111611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613367565b60405180910390fd5b611abe610d20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b2c5750611afc610d20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f0b57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bd55750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bde57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c895750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cdf5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d9b57601060149054906101000a900460ff16611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906133e7565b60405180910390fd5b426011541115611d9a576000611d4883610b7c565b9050611d7a6064611d6c6002683635c9adc5dea0000061243a90919063ffffffff16565b6124b590919063ffffffff16565b611d8d82846124ff90919063ffffffff16565b1115611d9857600080fd5b505b5b6000611da630610b7c565b9050601060169054906101000a900460ff16158015611e135750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2b5750601060149054906101000a900460ff165b15611f09576000811115611eef57611e8a6064611e7c6005611e6e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61243a90919063ffffffff16565b6124b590919063ffffffff16565b811115611ee557611ee26064611ed46005611ec6601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61243a90919063ffffffff16565b6124b590919063ffffffff16565b90505b611eee816121b2565b5b60004790506000811115611f0757611f0647612049565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fb25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fc95750601060159054906101000a900460ff165b15611fd357600090505b611fdf8484848461255d565b50505050565b600083831115829061202d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120249190613285565b60405180910390fd5b506000838561203c919061361e565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120996002846124b590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120c4573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121156002846124b590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612140573d6000803e3d6000fd5b5050565b600060075482111561218b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612182906132c7565b60405180910390fd5b600061219561258a565b90506121aa81846124b590919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ea576121e9613805565b5b6040519080825280602002602001820160405280156122185781602001602082028036833780820191505090505b50905030816000815181106122305761222f6137d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190612cc2565b8160018151811061231e5761231d6137d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c8565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e9959493929190613422565b600060405180830381600087803b15801561240357600080fd5b505af1158015612417573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b60008083141561244d57600090506124af565b6000828461245b91906135c4565b905082848261246a9190613593565b146124aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a190613327565b60405180910390fd5b809150505b92915050565b60006124f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125b5565b905092915050565b600080828461250e919061353d565b905083811015612553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254a90613307565b60405180910390fd5b8091505092915050565b8061256b5761256a612618565b5b61257684848461265b565b8061258457612583612826565b5b50505050565b600080600061259761283a565b915091506125ae81836124b590919063ffffffff16565b9250505090565b600080831182906125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f39190613285565b60405180910390fd5b506000838561260b9190613593565b9050809150509392505050565b600060095414801561262c57506000600a54145b1561263657612659565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061266d8761289c565b9550955095509550955095506126cb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ac8161294e565b6127b68483612a0b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128139190613407565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612870683635c9adc5dea000006007546124b590919063ffffffff16565b82101561288f57600754683635c9adc5dea00000935093505050612898565b81819350935050505b9091565b60008060008060008060008060006128b98a600954600a54612a45565b92509250925060006128c961258a565b905060008060006128dc8e878787612adb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061294683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe5565b905092915050565b600061295861258a565b9050600061296f828461243a90919063ffffffff16565b90506129c381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a208260075461290490919063ffffffff16565b600781905550612a3b816008546124ff90919063ffffffff16565b6008819055505050565b600080600080612a716064612a63888a61243a90919063ffffffff16565b6124b590919063ffffffff16565b90506000612a9b6064612a8d888b61243a90919063ffffffff16565b6124b590919063ffffffff16565b90506000612ac482612ab6858c61290490919063ffffffff16565b61290490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612af4858961243a90919063ffffffff16565b90506000612b0b868961243a90919063ffffffff16565b90506000612b22878961243a90919063ffffffff16565b90506000612b4b82612b3d858761290490919063ffffffff16565b61290490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612b77612b72846134bc565b613497565b90508083825260208201905082856020860282011115612b9a57612b99613839565b5b60005b85811015612bca5781612bb08882612bd4565b845260208401935060208301925050600181019050612b9d565b5050509392505050565b600081359050612be381613b26565b92915050565b600081519050612bf881613b26565b92915050565b600081359050612c0d81613b3d565b92915050565b600082601f830112612c2857612c27613834565b5b8135612c38848260208601612b64565b91505092915050565b600081359050612c5081613b54565b92915050565b600081519050612c6581613b54565b92915050565b600081359050612c7a81613b6b565b92915050565b600081519050612c8f81613b6b565b92915050565b600060208284031215612cab57612caa613843565b5b6000612cb984828501612bd4565b91505092915050565b600060208284031215612cd857612cd7613843565b5b6000612ce684828501612be9565b91505092915050565b600060208284031215612d0557612d04613843565b5b6000612d1384828501612bfe565b91505092915050565b60008060408385031215612d3357612d32613843565b5b6000612d4185828601612bd4565b9250506020612d5285828601612bd4565b9150509250929050565b600080600060608486031215612d7557612d74613843565b5b6000612d8386828701612bd4565b9350506020612d9486828701612bd4565b9250506040612da586828701612c6b565b9150509250925092565b60008060408385031215612dc657612dc5613843565b5b6000612dd485828601612bd4565b9250506020612de585828601612c6b565b9150509250929050565b600060208284031215612e0557612e04613843565b5b600082013567ffffffffffffffff811115612e2357612e2261383e565b5b612e2f84828501612c13565b91505092915050565b600060208284031215612e4e57612e4d613843565b5b6000612e5c84828501612c41565b91505092915050565b600060208284031215612e7b57612e7a613843565b5b6000612e8984828501612c56565b91505092915050565b600060208284031215612ea857612ea7613843565b5b6000612eb684828501612c6b565b91505092915050565b600080600060608486031215612ed857612ed7613843565b5b6000612ee686828701612c80565b9350506020612ef786828701612c80565b9250506040612f0886828701612c80565b9150509250925092565b6000612f1e8383612f2a565b60208301905092915050565b612f3381613652565b82525050565b612f4281613652565b82525050565b6000612f53826134f8565b612f5d818561351b565b9350612f68836134e8565b8060005b83811015612f99578151612f808882612f12565b9750612f8b8361350e565b925050600181019050612f6c565b5085935050505092915050565b612faf81613676565b82525050565b612fbe816136b9565b82525050565b6000612fcf82613503565b612fd9818561352c565b9350612fe98185602086016136cb565b612ff281613848565b840191505092915050565b600061300a60238361352c565b915061301582613859565b604082019050919050565b600061302d602a8361352c565b9150613038826138a8565b604082019050919050565b600061305060228361352c565b915061305b826138f7565b604082019050919050565b6000613073601b8361352c565b915061307e82613946565b602082019050919050565b600061309660218361352c565b91506130a18261396f565b604082019050919050565b60006130b960208361352c565b91506130c4826139be565b602082019050919050565b60006130dc60298361352c565b91506130e7826139e7565b604082019050919050565b60006130ff60258361352c565b915061310a82613a36565b604082019050919050565b600061312260248361352c565b915061312d82613a85565b604082019050919050565b600061314560178361352c565b915061315082613ad4565b602082019050919050565b600061316860188361352c565b915061317382613afd565b602082019050919050565b613187816136a2565b82525050565b613196816136ac565b82525050565b60006020820190506131b16000830184612f39565b92915050565b60006040820190506131cc6000830185612f39565b6131d96020830184612f39565b9392505050565b60006040820190506131f56000830185612f39565b613202602083018461317e565b9392505050565b600060c08201905061321e6000830189612f39565b61322b602083018861317e565b6132386040830187612fb5565b6132456060830186612fb5565b6132526080830185612f39565b61325f60a083018461317e565b979650505050505050565b600060208201905061327f6000830184612fa6565b92915050565b6000602082019050818103600083015261329f8184612fc4565b905092915050565b600060208201905081810360008301526132c081612ffd565b9050919050565b600060208201905081810360008301526132e081613020565b9050919050565b6000602082019050818103600083015261330081613043565b9050919050565b6000602082019050818103600083015261332081613066565b9050919050565b6000602082019050818103600083015261334081613089565b9050919050565b60006020820190508181036000830152613360816130ac565b9050919050565b60006020820190508181036000830152613380816130cf565b9050919050565b600060208201905081810360008301526133a0816130f2565b9050919050565b600060208201905081810360008301526133c081613115565b9050919050565b600060208201905081810360008301526133e081613138565b9050919050565b600060208201905081810360008301526134008161315b565b9050919050565b600060208201905061341c600083018461317e565b92915050565b600060a082019050613437600083018861317e565b6134446020830187612fb5565b81810360408301526134568186612f48565b90506134656060830185612f39565b613472608083018461317e565b9695505050505050565b6000602082019050613491600083018461318d565b92915050565b60006134a16134b2565b90506134ad82826136fe565b919050565b6000604051905090565b600067ffffffffffffffff8211156134d7576134d6613805565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613548826136a2565b9150613553836136a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561358857613587613778565b5b828201905092915050565b600061359e826136a2565b91506135a9836136a2565b9250826135b9576135b86137a7565b5b828204905092915050565b60006135cf826136a2565b91506135da836136a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561361357613612613778565b5b828202905092915050565b6000613629826136a2565b9150613634836136a2565b92508282101561364757613646613778565b5b828203905092915050565b600061365d82613682565b9050919050565b600061366f82613682565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136c4826136a2565b9050919050565b60005b838110156136e95780820151818401526020810190506136ce565b838111156136f8576000848401525b50505050565b61370782613848565b810181811067ffffffffffffffff8211171561372657613725613805565b5b80604052505050565b600061373a826136a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561376d5761376c613778565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b2f81613652565b8114613b3a57600080fd5b50565b613b4681613664565b8114613b5157600080fd5b50565b613b5d81613676565b8114613b6857600080fd5b50565b613b74816136a2565b8114613b7f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e851631ae02db21e1b87adac8c622e4d9187a5473ad99086fdacbedb41a3c64f64736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000e0e6a460ae7c8f640d37fc31973d957faad53df700000000000000000000000013c2e5215692987dbcc639b7db70f1d6ef5f77a1

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0xe0E6A460aE7c8F640D37FC31973D957faAD53df7
Arg [1] : marketingWalletAddress (address): 0x13c2e5215692987dbcc639b7Db70F1d6eF5F77a1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e0e6a460ae7c8f640d37fc31973d957faad53df7
Arg [1] : 00000000000000000000000013c2e5215692987dbcc639b7db70f1d6ef5f77a1


Deployed Bytecode Sourcemap

3858:12701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5954:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6806:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6231:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6975:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15744:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16347:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6140:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15845:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14673:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14994:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14351:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16149:190;;;;;;;;;;;;;:::i;:::-;;6334:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:148;;;;;;;;;;;;;:::i;:::-;;2723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6045:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6480:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15462:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15946:191;;;;;;;;;;;;;:::i;:::-;;15302:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13567:772;;;;;;;;;;;;;:::i;:::-;;14834:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16455:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6655:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15133:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5954:83;5991:13;6024:5;;;;;;;;;;;;;;;;;6017:12;;5954:83;:::o;6806:161::-;6881:4;6898:39;6907:12;:10;:12::i;:::-;6921:7;6930:6;6898:8;:39::i;:::-;6955:4;6948:11;;6806:161;;;;:::o;6231:95::-;6284:7;4309:12;6304:14;;6231:95;:::o;6975:313::-;7073:4;7090:36;7100:6;7108:9;7119:6;7090:9;:36::i;:::-;7137:121;7146:6;7154:12;:10;:12::i;:::-;7168:89;7206:6;7168:89;;;;;;;;;;;;;;;;;:11;:19;7180:6;7168:19;;;;;;;;;;;;;;;:33;7188:12;:10;:12::i;:::-;7168:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7137:8;:121::i;:::-;7276:4;7269:11;;6975:313;;;;;:::o;15744:89::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15820:5:::1;15804;:13;15810:6;15804:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15744:89:::0;:::o;16347:100::-;16391:4;16415:24;16433:4;16415:9;:24::i;:::-;16408:31;;16347:100;:::o;6140:83::-;6181:5;4580:1;6199:16;;6140:83;:::o;15845:89::-;15893:4;15917:5;:9;15923:2;15917:9;;;;;;;;;;;;;;;;;;;;;;;;;15910:16;;15845:89;;;:::o;14673:149::-;14762:11;;;;;;;;;;;14746:27;;:12;:10;:12::i;:::-;:27;;;14738:36;;;;;;14810:4;14785:18;:22;14804:2;14785:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14673:149;:::o;14994:127::-;15072:11;;;;;;;;;;;15056:27;;:12;:10;:12::i;:::-;:27;;;15048:36;;;;;;15108:5;15095:10;;:18;;;;;;;;;;;;;;;;;;14994:127;:::o;14351:314::-;14464:11;;;;;;;;;;;14448:27;;:12;:10;:12::i;:::-;:27;;;14440:36;;;;;;14533:5;14487:18;:43;14506:23;;;;;;;;;;;14487:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;14575:22;14549:23;;:48;;;;;;;;;;;;;;;;;;14653:4;14608:18;:42;14627:22;14608:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;14351:314;:::o;16149:190::-;16215:11;;;;;;;;;;;16199:27;;:12;:10;:12::i;:::-;:27;;;16191:36;;;;;;16238:26;16267:21;16238:50;;16299:32;16312:18;16299:12;:32::i;:::-;16180:159;16149:190::o;6334:138::-;6400:7;6427:37;6447:7;:16;6455:7;6447:16;;;;;;;;;;;;;;;;6427:19;:37::i;:::-;6420:44;;6334:138;;;:::o;2937:148::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:1:::1;3007:40;;3028:6;::::0;::::1;;;;;;;;3007:40;;;;;;;;;;;;3075:1;3058:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2937:148::o:0;2723:79::-;2761:7;2788:6;;;;;;;;;;;2781:13;;2723:79;:::o;6045:87::-;6084:13;6117:7;;;;;;;;;;;;;;;;;6110:14;;6045:87;:::o;6480:167::-;6558:4;6575:42;6585:12;:10;:12::i;:::-;6599:9;6610:6;6575:9;:42::i;:::-;6635:4;6628:11;;6480:167;;;;:::o;15462:270::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15536:6:::1;15531:194;15552:5;:12;15548:1;:16;15531:194;;;15602:13;;;;;;;;;;;15590:25;;:5;15596:1;15590:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;15639:15;;;;;;;;;;;15619:36;;:5;15625:1;15619:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;15590:65;15586:128;;;15694:4;15676:5;:15;15682:5;15688:1;15682:8;;;;;;;;:::i;:::-;;;;;;;;15676:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15586:128;15566:3;;;;;:::i;:::-;;;;15531:194;;;;15462:270:::0;:::o;15946:191::-;16012:11;;;;;;;;;;;15996:27;;:12;:10;:12::i;:::-;:27;;;15988:36;;;;;;16035:23;16061:24;16079:4;16061:9;:24::i;:::-;16035:50;;16096:33;16113:15;16096:16;:33::i;:::-;15977:160;15946:191::o;15302:148::-;15378:11;;;;;;;;;;;15362:27;;:12;:10;:12::i;:::-;:27;;;15354:36;;;;;;15416:1;15409:3;:8;;15401:17;;;;;;15439:3;15429:7;:13;;;;15302:148;:::o;13567:772::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13631:11:::1;;;;;;;;;;;13630:12;13622:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13680:35;13737:42;13680:100;;13809:16;13791:15;;:34;;;;;;;;;;;;;;;;;;13836:58;13853:4;13868:15;;;;;;;;;;;4309:12;13836:8;:58::i;:::-;13939:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13921:56;;;13986:4;13993:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13921:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13905:13;;:112;;;;;;;;;;;;;;;;;;14028:15;;;;;;;;;;;:31;;;14067:21;14098:4;14104:24;14122:4;14104:9;:24::i;:::-;14129:1;14131::::0;14133:7:::1;:5;:7::i;:::-;14141:15;14028:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14175:13;;;;;;;;;;;14168:29;;;14206:15;;;;;;;;;;;14224:14;14168:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14264:4;14250:11;;:18;;;;;;;;;;;;;;;;;;14320:10;14301:15;:30;;;;:::i;:::-;14279:19;:52;;;;13611:728;13567:772::o:0;14834:148::-;14921:11;;;;;;;;;;;14905:27;;:12;:10;:12::i;:::-;:27;;;14897:36;;;;;;14969:5;14944:18;:22;14963:2;14944:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14834:148;:::o;16455:101::-;16500:4;16524:24;16534:13;;;;;;;;;;;16524:9;:24::i;:::-;16517:31;;16455:101;:::o;6655:143::-;6736:7;6763:11;:18;6775:5;6763:18;;;;;;;;;;;;;;;:27;6782:7;6763:27;;;;;;;;;;;;;;;;6756:34;;6655:143;;;;:::o;15133:153::-;15211:11;;;;;;;;;;;15195:27;;:12;:10;:12::i;:::-;:27;;;15187:36;;;;;;15250:1;15242:4;:9;;15234:18;;;;;;15274:4;15263:8;:15;;;;15133:153;:::o;132:98::-;185:7;212:10;205:17;;132:98;:::o;7903:335::-;8013:1;7996:19;;:5;:19;;;;7988:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:1;8075:21;;:7;:21;;;;8067:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8176:6;8146:11;:18;8158:5;8146:18;;;;;;;;;;;;;;;:27;8165:7;8146:27;;;;;;;;;;;;;;;:36;;;;8214:7;8198:32;;8207:5;8198:32;;;8223:6;8198:32;;;;;;:::i;:::-;;;;;;;;7903:335;;;:::o;8250:1767::-;8354:1;8338:18;;:4;:18;;;;8330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8431:1;8417:16;;:2;:16;;;;8409:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8501:1;8492:6;:10;8484:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8572:7;:5;:7::i;:::-;8564:15;;:4;:15;;;;:32;;;;;8589:7;:5;:7::i;:::-;8583:13;;:2;:13;;;;8564:32;8561:1238;;;8636:5;:11;8642:4;8636:11;;;;;;;;;;;;;;;;;;;;;;;;;8635:12;:26;;;;;8652:5;:9;8658:2;8652:9;;;;;;;;;;;;;;;;;;;;;;;;;8651:10;8635:26;8627:35;;;;;;8702:13;;;;;;;;;;;8694:21;;:4;:21;;;:55;;;;;8733:15;;;;;;;;;;;8719:30;;:2;:30;;;;8694:55;:82;;;;;8754:18;:22;8773:2;8754:22;;;;;;;;;;;;;;;;;;;;;;;;;8753:23;8694:82;8691:419;;;8805:11;;;;;;;;;;;8797:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8908:15;8886:19;;:37;8882:213;;;8948:18;8969:22;8987:2;8969:9;:22::i;:::-;8948:43;;9051:23;9070:3;9051:14;9063:1;4309:12;9051:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9022:25;9033:13;9022:6;:10;;:25;;;;:::i;:::-;:52;;9014:61;;;;;;8925:170;8882:213;8691:419;9124:28;9155:24;9173:4;9155:9;:24::i;:::-;9124:55;;9200:6;;;;;;;;;;;9199:7;:32;;;;;9218:13;;;;;;;;;;;9210:21;;:4;:21;;;;9199:32;:47;;;;;9235:11;;;;;;;;;;;9199:47;9196:592;;;9293:1;9270:20;:24;9267:314;;;9345:40;9381:3;9345:31;9374:1;9345:24;9355:13;;;;;;;;;;;9345:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9322:20;:63;9319:182;;;9437:40;9473:3;9437:31;9466:1;9437:24;9447:13;;;;;;;;;;;9437:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9414:63;;9319:182;9523:38;9540:20;9523:16;:38::i;:::-;9267:314;9599:26;9628:21;9599:50;;9692:1;9671:18;:22;9668:105;;;9718:35;9731:21;9718:12;:35::i;:::-;9668:105;9248:540;9196:592;8598:1201;8561:1238;9809:12;9824:4;9809:19;;9844:18;:24;9863:4;9844:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9872:18;:22;9891:2;9872:22;;;;;;;;;;;;;;;;;;;;;;;;;9844:50;:64;;;;9898:10;;;;;;;;;;;9844:64;9841:110;;;9934:5;9924:15;;9841:110;9971:38;9986:4;9991:2;9994:6;10001:7;9971:14;:38::i;:::-;8319:1698;8250:1767;;;:::o;1269:190::-;1355:7;1388:1;1383;:6;;1391:12;1375:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1450:1;1443:8;;;1269:190;;;;;:::o;10524:158::-;10581:11;;;;;;;;;;;:20;;:35;10602:13;10613:1;10602:6;:10;;:13;;;;:::i;:::-;10581:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:23;;;;;;;;;;;:32;;:47;10660:13;10671:1;10660:6;:10;;:13;;;;:::i;:::-;10627:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10524:158;:::o;7296:254::-;7363:7;7402;;7391;:18;;7383:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7467:19;7490:10;:8;:10::i;:::-;7467:33;;7518:24;7530:11;7518:7;:11;;:24;;;;:::i;:::-;7511:31;;;7296:254;;;:::o;10025:483::-;5399:4;5390:6;;:13;;;;;;;;;;;;;;;;;;10103:21:::1;10141:1;10127:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10103:40;;10172:4;10154;10159:1;10154:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10198:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10188:4;10193:1;10188:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10231:62;10248:4;10263:15;;;;;;;;;;;10281:11;10231:8;:62::i;:::-;10304:15;;;;;;;;;;;:66;;;10385:11;10411:1;10427:4;10454;10474:15;10304:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10092:416;5435:5:::0;5426:6;;:14;;;;;;;;;;;;;;;;;;10025:483;:::o;1467:245::-;1525:7;1553:1;1548;:6;1545:46;;;1578:1;1571:8;;;;1545:46;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1467:245;;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;938:179::-;996:7;1016:9;1032:1;1028;:5;;;;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;938:179;;;;:::o;10694:263::-;10806:7;10802:40;;10828:14;:12;:14::i;:::-;10802:40;10853:44;10871:6;10879:9;10890:6;10853:17;:44::i;:::-;10912:7;10908:41;;10934:15;:13;:15::i;:::-;10908:41;10694:263;;;;:::o;12298:163::-;12339:7;12360:15;12377;12396:19;:17;:19::i;:::-;12359:56;;;;12433:20;12445:7;12433;:11;;:20;;;;:::i;:::-;12426:27;;;;12298:163;:::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;7558:210::-;7615:1;7604:7;;:12;:29;;;;;7632:1;7620:8;;:13;7604:29;7601:41;;;7635:7;;7601:41;7670:7;;7652:15;:25;;;;7707:8;;7688:16;:27;;;;7736:1;7726:7;:11;;;;7759:1;7748:8;:12;;;;7558:210;:::o;10965:490::-;11064:15;11081:23;11106:12;11120:23;11145:12;11159:13;11176:19;11187:7;11176:10;:19::i;:::-;11063:132;;;;;;;;;;;;11224:28;11244:7;11224;:15;11232:6;11224:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11206:7;:15;11214:6;11206:15;;;;;;;;;;;;;;;:46;;;;11284:39;11307:15;11284:7;:18;11292:9;11284:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11263:7;:18;11271:9;11263:18;;;;;;;;;;;;;;;:60;;;;11337:16;11347:5;11337:9;:16::i;:::-;11364:23;11376:4;11382;11364:11;:23::i;:::-;11420:9;11403:44;;11412:6;11403:44;;;11431:15;11403:44;;;;;;:::i;:::-;;;;;;;;11052:403;;;;;;10965:490;;;:::o;7780:115::-;7834:15;;7824:7;:25;;;;7871:16;;7860:8;:27;;;;7780:115::o;12469:255::-;12519:7;12528;12548:15;12566:7;;12548:25;;12584:15;4309:12;12584:25;;12633:20;4309:12;12633:7;;:11;;:20;;;;:::i;:::-;12623:7;:30;12620:60;;;12663:7;;4309:12;12655:25;;;;;;;;12620:60;12699:7;12708;12691:25;;;;;;12469:255;;;:::o;11463:468::-;11522:7;11531;11540;11549;11558;11567;11588:23;11613:12;11627:13;11644:39;11656:7;11665;;11674:8;;11644:11;:39::i;:::-;11587:96;;;;;;11694:19;11717:10;:8;:10::i;:::-;11694:33;;11739:15;11756:23;11781:12;11797:46;11809:7;11818:4;11824:5;11831:11;11797;:46::i;:::-;11738:105;;;;;;11862:7;11871:15;11888:4;11894:15;11911:4;11917:5;11854:69;;;;;;;;;;;;;;;;;;;11463:468;;;;;;;:::o;1125:136::-;1183:7;1210:43;1214:1;1217;1210:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1203:50;;1125:136;;;;:::o;13149:214::-;13202:19;13225:10;:8;:10::i;:::-;13202:33;;13246:13;13262:22;13272:11;13262:5;:9;;:22;;;;:::i;:::-;13246:38;;13322:33;13349:5;13322:7;:22;13338:4;13322:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13297:7;:22;13313:4;13297:22;;;;;;;;;;;;;;;:58;;;;13191:172;;13149:214;:::o;13371:147::-;13449:17;13461:4;13449:7;;:11;;:17;;;;:::i;:::-;13439:7;:27;;;;13490:20;13505:4;13490:10;;:14;;:20;;;;:::i;:::-;13477:10;:33;;;;13371:147;;:::o;11939:351::-;12032:7;12041;12050;12070:12;12085:28;12109:3;12085:19;12097:6;12085:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12070:43;;12124:13;12140:29;12165:3;12140:20;12152:7;12140;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12124:45;;12180:23;12206:28;12228:5;12206:17;12218:4;12206:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12180:54;;12253:15;12270:4;12276:5;12245:37;;;;;;;;;11939:351;;;;;;;:::o;12732:409::-;12842:7;12851;12860;12880:15;12898:24;12910:11;12898:7;:11;;:24;;;;:::i;:::-;12880:42;;12933:12;12948:21;12957:11;12948:4;:8;;:21;;;;:::i;:::-;12933:36;;12980:13;12996:22;13006:11;12996:5;:9;;:22;;;;:::i;:::-;12980:38;;13029:23;13055:28;13077:5;13055:17;13067:4;13055:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13029:54;;13102:7;13111:15;13128:4;13094:39;;;;;;;;;;12732:409;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;960:80;;;;:::o;1046:155::-;1100:5;1138:6;1125:20;1116:29;;1154:41;1189:5;1154:41;:::i;:::-;1106:95;;;;:::o;1224:370::-;1295:5;1344:3;1337:4;1329:6;1325:17;1321:27;1311:2;;1352:79;;:::i;:::-;1311:2;1469:6;1456:20;1494:94;1584:3;1576:6;1569:4;1561:6;1557:17;1494:94;:::i;:::-;1485:103;;1301:293;;;;;:::o;1600:133::-;1643:5;1681:6;1668:20;1659:29;;1697:30;1721:5;1697:30;:::i;:::-;1649:84;;;;:::o;1739:137::-;1793:5;1824:6;1818:13;1809:22;;1840:30;1864:5;1840:30;:::i;:::-;1799:77;;;;:::o;1882:139::-;1928:5;1966:6;1953:20;1944:29;;1982:33;2009:5;1982:33;:::i;:::-;1934:87;;;;:::o;2027:143::-;2084:5;2115:6;2109:13;2100:22;;2131:33;2158:5;2131:33;:::i;:::-;2090:80;;;;:::o;2176:329::-;2235:6;2284:2;2272:9;2263:7;2259:23;2255:32;2252:2;;;2290:79;;:::i;:::-;2252:2;2410:1;2435:53;2480:7;2471:6;2460:9;2456:22;2435:53;:::i;:::-;2425:63;;2381:117;2242:263;;;;:::o;2511:351::-;2581:6;2630:2;2618:9;2609:7;2605:23;2601:32;2598:2;;;2636:79;;:::i;:::-;2598:2;2756:1;2781:64;2837:7;2828:6;2817:9;2813:22;2781:64;:::i;:::-;2771:74;;2727:128;2588:274;;;;:::o;2868:345::-;2935:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:2;;;2990:79;;:::i;:::-;2952:2;3110:1;3135:61;3188:7;3179:6;3168:9;3164:22;3135:61;:::i;:::-;3125:71;;3081:125;2942:271;;;;:::o;3219:474::-;3287:6;3295;3344:2;3332:9;3323:7;3319:23;3315:32;3312:2;;;3350:79;;:::i;:::-;3312:2;3470:1;3495:53;3540:7;3531:6;3520:9;3516:22;3495:53;:::i;:::-;3485:63;;3441:117;3597:2;3623:53;3668:7;3659:6;3648:9;3644:22;3623:53;:::i;:::-;3613:63;;3568:118;3302:391;;;;;:::o;3699:619::-;3776:6;3784;3792;3841:2;3829:9;3820:7;3816:23;3812:32;3809:2;;;3847:79;;:::i;:::-;3809:2;3967:1;3992:53;4037:7;4028:6;4017:9;4013:22;3992:53;:::i;:::-;3982:63;;3938:117;4094:2;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4065:118;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;3799:519;;;;;:::o;4324:474::-;4392:6;4400;4449:2;4437:9;4428:7;4424:23;4420:32;4417:2;;;4455:79;;:::i;:::-;4417:2;4575:1;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4546:117;4702:2;4728:53;4773:7;4764:6;4753:9;4749:22;4728:53;:::i;:::-;4718:63;;4673:118;4407:391;;;;;:::o;4804:539::-;4888:6;4937:2;4925:9;4916:7;4912:23;4908:32;4905:2;;;4943:79;;:::i;:::-;4905:2;5091:1;5080:9;5076:17;5063:31;5121:18;5113:6;5110:30;5107:2;;;5143:79;;:::i;:::-;5107:2;5248:78;5318:7;5309:6;5298:9;5294:22;5248:78;:::i;:::-;5238:88;;5034:302;4895:448;;;;:::o;5349:323::-;5405:6;5454:2;5442:9;5433:7;5429:23;5425:32;5422:2;;;5460:79;;:::i;:::-;5422:2;5580:1;5605:50;5647:7;5638:6;5627:9;5623:22;5605:50;:::i;:::-;5595:60;;5551:114;5412:260;;;;:::o;5678:345::-;5745:6;5794:2;5782:9;5773:7;5769:23;5765:32;5762:2;;;5800:79;;:::i;:::-;5762:2;5920:1;5945:61;5998:7;5989:6;5978:9;5974:22;5945:61;:::i;:::-;5935:71;;5891:125;5752:271;;;;:::o;6029:329::-;6088:6;6137:2;6125:9;6116:7;6112:23;6108:32;6105:2;;;6143:79;;:::i;:::-;6105:2;6263:1;6288:53;6333:7;6324:6;6313:9;6309:22;6288:53;:::i;:::-;6278:63;;6234:117;6095:263;;;;:::o;6364:663::-;6452:6;6460;6468;6517:2;6505:9;6496:7;6492:23;6488:32;6485:2;;;6523:79;;:::i;:::-;6485:2;6643:1;6668:64;6724:7;6715:6;6704:9;6700:22;6668:64;:::i;:::-;6658:74;;6614:128;6781:2;6807:64;6863:7;6854:6;6843:9;6839:22;6807:64;:::i;:::-;6797:74;;6752:129;6920:2;6946:64;7002:7;6993:6;6982:9;6978:22;6946:64;:::i;:::-;6936:74;;6891:129;6475:552;;;;;:::o;7033:179::-;7102:10;7123:46;7165:3;7157:6;7123:46;:::i;:::-;7201:4;7196:3;7192:14;7178:28;;7113:99;;;;:::o;7218:108::-;7295:24;7313:5;7295:24;:::i;:::-;7290:3;7283:37;7273:53;;:::o;7332:118::-;7419:24;7437:5;7419:24;:::i;:::-;7414:3;7407:37;7397:53;;:::o;7486:732::-;7605:3;7634:54;7682:5;7634:54;:::i;:::-;7704:86;7783:6;7778:3;7704:86;:::i;:::-;7697:93;;7814:56;7864:5;7814:56;:::i;:::-;7893:7;7924:1;7909:284;7934:6;7931:1;7928:13;7909:284;;;8010:6;8004:13;8037:63;8096:3;8081:13;8037:63;:::i;:::-;8030:70;;8123:60;8176:6;8123:60;:::i;:::-;8113:70;;7969:224;7956:1;7953;7949:9;7944:14;;7909:284;;;7913:14;8209:3;8202:10;;7610:608;;;;;;;:::o;8224:109::-;8305:21;8320:5;8305:21;:::i;:::-;8300:3;8293:34;8283:50;;:::o;8339:147::-;8434:45;8473:5;8434:45;:::i;:::-;8429:3;8422:58;8412:74;;:::o;8492:364::-;8580:3;8608:39;8641:5;8608:39;:::i;:::-;8663:71;8727:6;8722:3;8663:71;:::i;:::-;8656:78;;8743:52;8788:6;8783:3;8776:4;8769:5;8765:16;8743:52;:::i;:::-;8820:29;8842:6;8820:29;:::i;:::-;8815:3;8811:39;8804:46;;8584:272;;;;;:::o;8862:366::-;9004:3;9025:67;9089:2;9084:3;9025:67;:::i;:::-;9018:74;;9101:93;9190:3;9101:93;:::i;:::-;9219:2;9214:3;9210:12;9203:19;;9008:220;;;:::o;9234:366::-;9376:3;9397:67;9461:2;9456:3;9397:67;:::i;:::-;9390:74;;9473:93;9562:3;9473:93;:::i;:::-;9591:2;9586:3;9582:12;9575:19;;9380:220;;;:::o;9606:366::-;9748:3;9769:67;9833:2;9828:3;9769:67;:::i;:::-;9762:74;;9845:93;9934:3;9845:93;:::i;:::-;9963:2;9958:3;9954:12;9947:19;;9752:220;;;:::o;9978:366::-;10120:3;10141:67;10205:2;10200:3;10141:67;:::i;:::-;10134:74;;10217:93;10306:3;10217:93;:::i;:::-;10335:2;10330:3;10326:12;10319:19;;10124:220;;;:::o;10350:366::-;10492:3;10513:67;10577:2;10572:3;10513:67;:::i;:::-;10506:74;;10589:93;10678:3;10589:93;:::i;:::-;10707:2;10702:3;10698:12;10691:19;;10496:220;;;:::o;10722:366::-;10864:3;10885:67;10949:2;10944:3;10885:67;:::i;:::-;10878:74;;10961:93;11050:3;10961:93;:::i;:::-;11079:2;11074:3;11070:12;11063:19;;10868:220;;;:::o;11094:366::-;11236:3;11257:67;11321:2;11316:3;11257:67;:::i;:::-;11250:74;;11333:93;11422:3;11333:93;:::i;:::-;11451:2;11446:3;11442:12;11435:19;;11240:220;;;:::o;11466:366::-;11608:3;11629:67;11693:2;11688:3;11629:67;:::i;:::-;11622:74;;11705:93;11794:3;11705:93;:::i;:::-;11823:2;11818:3;11814:12;11807:19;;11612:220;;;:::o;11838:366::-;11980:3;12001:67;12065:2;12060:3;12001:67;:::i;:::-;11994:74;;12077:93;12166:3;12077:93;:::i;:::-;12195:2;12190:3;12186:12;12179:19;;11984:220;;;:::o;12210:366::-;12352:3;12373:67;12437:2;12432:3;12373:67;:::i;:::-;12366:74;;12449:93;12538:3;12449:93;:::i;:::-;12567:2;12562:3;12558:12;12551:19;;12356:220;;;:::o;12582:366::-;12724:3;12745:67;12809:2;12804:3;12745:67;:::i;:::-;12738:74;;12821:93;12910:3;12821:93;:::i;:::-;12939:2;12934:3;12930:12;12923:19;;12728:220;;;:::o;12954:118::-;13041:24;13059:5;13041:24;:::i;:::-;13036:3;13029:37;13019:53;;:::o;13078:112::-;13161:22;13177:5;13161:22;:::i;:::-;13156:3;13149:35;13139:51;;:::o;13196:222::-;13289:4;13327:2;13316:9;13312:18;13304:26;;13340:71;13408:1;13397:9;13393:17;13384:6;13340:71;:::i;:::-;13294:124;;;;:::o;13424:332::-;13545:4;13583:2;13572:9;13568:18;13560:26;;13596:71;13664:1;13653:9;13649:17;13640:6;13596:71;:::i;:::-;13677:72;13745:2;13734:9;13730:18;13721:6;13677:72;:::i;:::-;13550:206;;;;;:::o;13762:332::-;13883:4;13921:2;13910:9;13906:18;13898:26;;13934:71;14002:1;13991:9;13987:17;13978:6;13934:71;:::i;:::-;14015:72;14083:2;14072:9;14068:18;14059:6;14015:72;:::i;:::-;13888:206;;;;;:::o;14100:807::-;14349:4;14387:3;14376:9;14372:19;14364:27;;14401:71;14469:1;14458:9;14454:17;14445:6;14401:71;:::i;:::-;14482:72;14550:2;14539:9;14535:18;14526:6;14482:72;:::i;:::-;14564:80;14640:2;14629:9;14625:18;14616:6;14564:80;:::i;:::-;14654;14730:2;14719:9;14715:18;14706:6;14654:80;:::i;:::-;14744:73;14812:3;14801:9;14797:19;14788:6;14744:73;:::i;:::-;14827;14895:3;14884:9;14880:19;14871:6;14827:73;:::i;:::-;14354:553;;;;;;;;;:::o;14913:210::-;15000:4;15038:2;15027:9;15023:18;15015:26;;15051:65;15113:1;15102:9;15098:17;15089:6;15051:65;:::i;:::-;15005:118;;;;:::o;15129:313::-;15242:4;15280:2;15269:9;15265:18;15257:26;;15329:9;15323:4;15319:20;15315:1;15304:9;15300:17;15293:47;15357:78;15430:4;15421:6;15357:78;:::i;:::-;15349:86;;15247:195;;;;:::o;15448:419::-;15614:4;15652:2;15641:9;15637:18;15629:26;;15701:9;15695:4;15691:20;15687:1;15676:9;15672:17;15665:47;15729:131;15855:4;15729:131;:::i;:::-;15721:139;;15619:248;;;:::o;15873:419::-;16039:4;16077:2;16066:9;16062:18;16054:26;;16126:9;16120:4;16116:20;16112:1;16101:9;16097:17;16090:47;16154:131;16280:4;16154:131;:::i;:::-;16146:139;;16044:248;;;:::o;16298:419::-;16464:4;16502:2;16491:9;16487:18;16479:26;;16551:9;16545:4;16541:20;16537:1;16526:9;16522:17;16515:47;16579:131;16705:4;16579:131;:::i;:::-;16571:139;;16469:248;;;:::o;16723:419::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16976:9;16970:4;16966:20;16962:1;16951:9;16947:17;16940:47;17004:131;17130:4;17004:131;:::i;:::-;16996:139;;16894:248;;;:::o;17148:419::-;17314:4;17352:2;17341:9;17337:18;17329:26;;17401:9;17395:4;17391:20;17387:1;17376:9;17372:17;17365:47;17429:131;17555:4;17429:131;:::i;:::-;17421:139;;17319:248;;;:::o;17573:419::-;17739:4;17777:2;17766:9;17762:18;17754:26;;17826:9;17820:4;17816:20;17812:1;17801:9;17797:17;17790:47;17854:131;17980:4;17854:131;:::i;:::-;17846:139;;17744:248;;;:::o;17998:419::-;18164:4;18202:2;18191:9;18187:18;18179:26;;18251:9;18245:4;18241:20;18237:1;18226:9;18222:17;18215:47;18279:131;18405:4;18279:131;:::i;:::-;18271:139;;18169:248;;;:::o;18423:419::-;18589:4;18627:2;18616:9;18612:18;18604:26;;18676:9;18670:4;18666:20;18662:1;18651:9;18647:17;18640:47;18704:131;18830:4;18704:131;:::i;:::-;18696:139;;18594:248;;;:::o;18848:419::-;19014:4;19052:2;19041:9;19037:18;19029:26;;19101:9;19095:4;19091:20;19087:1;19076:9;19072:17;19065:47;19129:131;19255:4;19129:131;:::i;:::-;19121:139;;19019:248;;;:::o;19273:419::-;19439:4;19477:2;19466:9;19462:18;19454:26;;19526:9;19520:4;19516:20;19512:1;19501:9;19497:17;19490:47;19554:131;19680:4;19554:131;:::i;:::-;19546:139;;19444:248;;;:::o;19698:419::-;19864:4;19902:2;19891:9;19887:18;19879:26;;19951:9;19945:4;19941:20;19937:1;19926:9;19922:17;19915:47;19979:131;20105:4;19979:131;:::i;:::-;19971:139;;19869:248;;;:::o;20123:222::-;20216:4;20254:2;20243:9;20239:18;20231:26;;20267:71;20335:1;20324:9;20320:17;20311:6;20267:71;:::i;:::-;20221:124;;;;:::o;20351:831::-;20614:4;20652:3;20641:9;20637:19;20629:27;;20666:71;20734:1;20723:9;20719:17;20710:6;20666:71;:::i;:::-;20747:80;20823:2;20812:9;20808:18;20799:6;20747:80;:::i;:::-;20874:9;20868:4;20864:20;20859:2;20848:9;20844:18;20837:48;20902:108;21005:4;20996:6;20902:108;:::i;:::-;20894:116;;21020:72;21088:2;21077:9;21073:18;21064:6;21020:72;:::i;:::-;21102:73;21170:3;21159:9;21155:19;21146:6;21102:73;:::i;:::-;20619:563;;;;;;;;:::o;21188:214::-;21277:4;21315:2;21304:9;21300:18;21292:26;;21328:67;21392:1;21381:9;21377:17;21368:6;21328:67;:::i;:::-;21282:120;;;;:::o;21408:129::-;21442:6;21469:20;;:::i;:::-;21459:30;;21498:33;21526:4;21518:6;21498:33;:::i;:::-;21449:88;;;:::o;21543:75::-;21576:6;21609:2;21603:9;21593:19;;21583:35;:::o;21624:311::-;21701:4;21791:18;21783:6;21780:30;21777:2;;;21813:18;;:::i;:::-;21777:2;21863:4;21855:6;21851:17;21843:25;;21923:4;21917;21913:15;21905:23;;21706:229;;;:::o;21941:132::-;22008:4;22031:3;22023:11;;22061:4;22056:3;22052:14;22044:22;;22013:60;;;:::o;22079:114::-;22146:6;22180:5;22174:12;22164:22;;22153:40;;;:::o;22199:99::-;22251:6;22285:5;22279:12;22269:22;;22258:40;;;:::o;22304:113::-;22374:4;22406;22401:3;22397:14;22389:22;;22379:38;;;:::o;22423:184::-;22522:11;22556:6;22551:3;22544:19;22596:4;22591:3;22587:14;22572:29;;22534:73;;;;:::o;22613:169::-;22697:11;22731:6;22726:3;22719:19;22771:4;22766:3;22762:14;22747:29;;22709:73;;;;:::o;22788:305::-;22828:3;22847:20;22865:1;22847:20;:::i;:::-;22842:25;;22881:20;22899:1;22881:20;:::i;:::-;22876:25;;23035:1;22967:66;22963:74;22960:1;22957:81;22954:2;;;23041:18;;:::i;:::-;22954:2;23085:1;23082;23078:9;23071:16;;22832:261;;;;:::o;23099:185::-;23139:1;23156:20;23174:1;23156:20;:::i;:::-;23151:25;;23190:20;23208:1;23190:20;:::i;:::-;23185:25;;23229:1;23219:2;;23234:18;;:::i;:::-;23219:2;23276:1;23273;23269:9;23264:14;;23141:143;;;;:::o;23290:348::-;23330:7;23353:20;23371:1;23353:20;:::i;:::-;23348:25;;23387:20;23405:1;23387:20;:::i;:::-;23382:25;;23575:1;23507:66;23503:74;23500:1;23497:81;23492:1;23485:9;23478:17;23474:105;23471:2;;;23582:18;;:::i;:::-;23471:2;23630:1;23627;23623:9;23612:20;;23338:300;;;;:::o;23644:191::-;23684:4;23704:20;23722:1;23704:20;:::i;:::-;23699:25;;23738:20;23756:1;23738:20;:::i;:::-;23733:25;;23777:1;23774;23771:8;23768:2;;;23782:18;;:::i;:::-;23768:2;23827:1;23824;23820:9;23812:17;;23689:146;;;;:::o;23841:96::-;23878:7;23907:24;23925:5;23907:24;:::i;:::-;23896:35;;23886:51;;;:::o;23943:104::-;23988:7;24017:24;24035:5;24017:24;:::i;:::-;24006:35;;23996:51;;;:::o;24053:90::-;24087:7;24130:5;24123:13;24116:21;24105:32;;24095:48;;;:::o;24149:126::-;24186:7;24226:42;24219:5;24215:54;24204:65;;24194:81;;;:::o;24281:77::-;24318:7;24347:5;24336:16;;24326:32;;;:::o;24364:86::-;24399:7;24439:4;24432:5;24428:16;24417:27;;24407:43;;;:::o;24456:121::-;24514:9;24547:24;24565:5;24547:24;:::i;:::-;24534:37;;24524:53;;;:::o;24583:307::-;24651:1;24661:113;24675:6;24672:1;24669:13;24661:113;;;24760:1;24755:3;24751:11;24745:18;24741:1;24736:3;24732:11;24725:39;24697:2;24694:1;24690:10;24685:15;;24661:113;;;24792:6;24789:1;24786:13;24783:2;;;24872:1;24863:6;24858:3;24854:16;24847:27;24783:2;24632:258;;;;:::o;24896:281::-;24979:27;25001:4;24979:27;:::i;:::-;24971:6;24967:40;25109:6;25097:10;25094:22;25073:18;25061:10;25058:34;25055:62;25052:2;;;25120:18;;:::i;:::-;25052:2;25160:10;25156:2;25149:22;24939:238;;;:::o;25183:233::-;25222:3;25245:24;25263:5;25245:24;:::i;:::-;25236:33;;25291:66;25284:5;25281:77;25278:2;;;25361:18;;:::i;:::-;25278:2;25408:1;25401:5;25397:13;25390:20;;25226:190;;;:::o;25422:180::-;25470:77;25467:1;25460:88;25567:4;25564:1;25557:15;25591:4;25588:1;25581:15;25608:180;25656:77;25653:1;25646:88;25753:4;25750:1;25743:15;25777:4;25774:1;25767:15;25794:180;25842:77;25839:1;25832:88;25939:4;25936:1;25929:15;25963:4;25960:1;25953:15;25980:180;26028:77;26025:1;26018:88;26125:4;26122:1;26115:15;26149:4;26146:1;26139:15;26166:117;26275:1;26272;26265:12;26289:117;26398:1;26395;26388:12;26412:117;26521:1;26518;26511:12;26535:117;26644:1;26641;26634:12;26658:102;26699:6;26750:2;26746:7;26741:2;26734:5;26730:14;26726:28;26716:38;;26706:54;;;:::o;26766:222::-;26906:34;26902:1;26894:6;26890:14;26883:58;26975:5;26970:2;26962:6;26958:15;26951:30;26872:116;:::o;26994:229::-;27134:34;27130:1;27122:6;27118:14;27111:58;27203:12;27198:2;27190:6;27186:15;27179:37;27100:123;:::o;27229:221::-;27369:34;27365:1;27357:6;27353:14;27346:58;27438:4;27433:2;27425:6;27421:15;27414:29;27335:115;:::o;27456:177::-;27596:29;27592:1;27584:6;27580:14;27573:53;27562:71;:::o;27639:220::-;27779:34;27775:1;27767:6;27763:14;27756:58;27848:3;27843:2;27835:6;27831:15;27824:28;27745:114;:::o;27865:182::-;28005:34;28001:1;27993:6;27989:14;27982:58;27971:76;:::o;28053:228::-;28193:34;28189:1;28181:6;28177:14;28170:58;28262:11;28257:2;28249:6;28245:15;28238:36;28159:122;:::o;28287:224::-;28427:34;28423:1;28415:6;28411:14;28404:58;28496:7;28491:2;28483:6;28479:15;28472:32;28393:118;:::o;28517:223::-;28657:34;28653:1;28645:6;28641:14;28634:58;28726:6;28721:2;28713:6;28709:15;28702:31;28623:117;:::o;28746:173::-;28886:25;28882:1;28874:6;28870:14;28863:49;28852:67;:::o;28925:174::-;29065:26;29061:1;29053:6;29049:14;29042:50;29031:68;:::o;29105:122::-;29178:24;29196:5;29178:24;:::i;:::-;29171:5;29168:35;29158:2;;29217:1;29214;29207:12;29158:2;29148:79;:::o;29233:138::-;29314:32;29340:5;29314:32;:::i;:::-;29307:5;29304:43;29294:2;;29361:1;29358;29351:12;29294:2;29284:87;:::o;29377:116::-;29447:21;29462:5;29447:21;:::i;:::-;29440:5;29437:32;29427:2;;29483:1;29480;29473:12;29427:2;29417:76;:::o;29499:122::-;29572:24;29590:5;29572:24;:::i;:::-;29565:5;29562:35;29552:2;;29611:1;29608;29601:12;29552:2;29542:79;:::o

Swarm Source

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