ETH Price: $2,685.89 (-2.50%)

Token

Bone Bone (Twobone)
 

Overview

Max Total Supply

10,000,000,000 Twobone

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
65,029.305951363 Twobone

Value
$0.00
0xab512701f9023e1971c7f81fa8a9ba0e5d3d1a11
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:
BoneBone

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-05
*/

// SPDX-License-Identifier: Unlicensed
// https://www.bonebone.info/
pragma solidity ^0.8.6;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract BoneBone is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e10 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Bone Bone";
    string private constant _symbol = "Twobone";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xc423f5f90dB7EfDc0A45BF53D24D122569974325);
        _feeAddrWallet2 = payable(0xc423f5f90dB7EfDc0A45BF53D24D122569974325);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function _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");
        _feeAddr1 = 1;
        _feeAddr2 = 2;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 1;
                _feeAddr2 = 2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 1e10 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e10 * 10**9;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_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"},{"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":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c919062000524565b6000196200002b9190620004df565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010553480156200009857600080fd5b506000620000ab6200048060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073c423f5f90db7efdc0a45bf53d24d122569974325600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c423f5f90db7efdc0a45bf53d24d122569974325600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020a6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200025e6200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620004729190620004c2565b60405180910390a3620005ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004bc816200051a565b82525050565b6000602082019050620004d96000830184620004b1565b92915050565b6000620004ec826200051a565b9150620004f9836200051a565b9250828210156200050f576200050e6200055c565b5b828203905092915050565b6000819050919050565b600062000531826200051a565b91506200053e836200051a565b9250826200055157620005506200058b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612fd980620005ca6000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280600981526020017f426f6e6520426f6e650000000000000000000000000000000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f54776f626f6e6500000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6001600a819055506002600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576001600a819055506002600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220520a4014f1dc36e1bd79eab2285b95bd91aa82fdee3139ddf8d4f3bd90f5463c64736f6c63430008060033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280600981526020017f426f6e6520426f6e650000000000000000000000000000000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f54776f626f6e6500000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6001600a819055506002600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576001600a819055506002600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220520a4014f1dc36e1bd79eab2285b95bd91aa82fdee3139ddf8d4f3bd90f5463c64736f6c63430008060033

Deployed Bytecode Sourcemap

3548:10176:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5432:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6284:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6453:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5618:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6774:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11828:194;;;;;;;;;;;;;:::i;:::-;;5812:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2627:148;;;;;;;;;;;;;:::i;:::-;;2413:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5523:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5958:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11621:195;;;;;;;;;;;;;:::i;:::-;;9624:809;;;;;;;;;;;;;:::i;:::-;;6133:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10445:94;;;;;;;;;;;;;:::i;:::-;;5432:83;5469:13;5502:5;;;;;;;;;;;;;;;;;5495:12;;5432:83;:::o;6284:161::-;6359:4;6376:39;6385:12;:10;:12::i;:::-;6399:7;6408:6;6376:8;:39::i;:::-;6433:4;6426:11;;6284:161;;;;:::o;5709:95::-;5762:7;4049:12;5782:14;;5709:95;:::o;6453:313::-;6551:4;6568:36;6578:6;6586:9;6597:6;6568:9;:36::i;:::-;6615:121;6624:6;6632:12;:10;:12::i;:::-;6646:89;6684:6;6646:89;;;;;;;;;;;;;;;;;:11;:19;6658:6;6646:19;;;;;;;;;;;;;;;:33;6666:12;:10;:12::i;:::-;6646:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6615:8;:121::i;:::-;6754:4;6747:11;;6453:313;;;;;:::o;5618:83::-;5659:5;4460:1;5677:16;;5618:83;:::o;6774:103::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6864:5:::1;6846:15;;:23;;;;;;;;;;;;;;;;;;6774:103:::0;:::o;11828:194::-;11894:15;;;;;;;;;;;11878:31;;:12;:10;:12::i;:::-;:31;;;11870:40;;;;;;11921:26;11950:21;11921:50;;11982:32;11995:18;11982:12;:32::i;:::-;11859:163;11828:194::o;5812:138::-;5878:7;5905:37;5925:7;:16;5933:7;5925:16;;;;;;;;;;;;;;;;5905:19;:37::i;:::-;5898:44;;5812:138;;;:::o;2627:148::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2734:1:::1;2697:40;;2718:6;::::0;::::1;;;;;;;;2697:40;;;;;;;;;;;;2765:1;2748:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2627:148::o:0;2413:79::-;2451:7;2478:6;;;;;;;;;;;2471:13;;2413:79;:::o;5523:87::-;5562:13;5595:7;;;;;;;;;;;;;;;;;5588:14;;5523:87;:::o;5958:167::-;6036:4;6053:42;6063:12;:10;:12::i;:::-;6077:9;6088:6;6053:9;:42::i;:::-;6113:4;6106:11;;5958:167;;;;:::o;11621:195::-;11687:15;;;;;;;;;;;11671:31;;:12;:10;:12::i;:::-;:31;;;11663:40;;;;;;11714:23;11740:24;11758:4;11740:9;:24::i;:::-;11714:50;;11775:33;11792:15;11775:16;:33::i;:::-;11652:164;11621:195::o;9624:809::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9688:11:::1;;;;;;;;;;;9687:12;9679:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9737:35;9794:42;9737:100;;9866:16;9848:15;;:34;;;;;;;;;;;;;;;;;;9893:58;9910:4;9925:15;;;;;;;;;;;4049:12;9893:8;:58::i;:::-;9996:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9978:56;;;10043:4;10050:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9978:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9962:13;;:112;;;;;;;;;;;;;;;;;;10085:15;;;;;;;;;;;:31;;;10124:21;10155:4;10161:24;10179:4;10161:9;:24::i;:::-;10186:1;10188::::0;10190:7:::1;:5;:7::i;:::-;10198:15;10085:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10239:4;10225:11;;:18;;;;;;;;;;;;;;;;;;10272:4;10254:15;;:22;;;;;;;;;;;;;;;;;;10302:12;10287;:27;;;;10339:4;10325:11;;:18;;;;;;;;;;;;;;;;;;10361:13;;;;;;;;;;;10354:29;;;10392:15;;;;;;;;;;;10410:14;10354:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9668:765;9624:809::o:0;6133:143::-;6214:7;6241:11;:18;6253:5;6241:18;;;;;;;;;;;;;;;:27;6260:7;6241:27;;;;;;;;;;;;;;;;6234:34;;6133:143;;;;:::o;10445:94::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10519:12:::1;10504;:27;;;;10445:94::o:0;131:98::-;184:7;211:10;204:17;;131:98;:::o;7147:335::-;7257:1;7240:19;;:5;:19;;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7338:1;7319:21;;:7;:21;;;;7311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7420:6;7390:11;:18;7402:5;7390:18;;;;;;;;;;;;;;;:27;7409:7;7390:27;;;;;;;;;;;;;;;:36;;;;7458:7;7442:32;;7451:5;7442:32;;;7467:6;7442:32;;;;;;:::i;:::-;;;;;;;;7147:335;;;:::o;7490:1461::-;7594:1;7578:18;;:4;:18;;;;7570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7671:1;7657:16;;:2;:16;;;;7649:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7741:1;7732:6;:10;7724:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7811:1;7799:9;:13;;;;7835:1;7823:9;:13;;;;7859:7;:5;:7::i;:::-;7851:15;;:4;:15;;;;:32;;;;;7876:7;:5;:7::i;:::-;7870:13;;:2;:13;;;;7851:32;7847:1052;;;7909:4;:10;7914:4;7909:10;;;;;;;;;;;;;;;;;;;;;;;;;7908:11;:24;;;;;7924:4;:8;7929:2;7924:8;;;;;;;;;;;;;;;;;;;;;;;;;7923:9;7908:24;7900:33;;;;;;7960:13;;;;;;;;;;;7952:21;;:4;:21;;;:55;;;;;7991:15;;;;;;;;;;;7977:30;;:2;:30;;;;7952:55;:83;;;;;8013:18;:22;8032:2;8013:22;;;;;;;;;;;;;;;;;;;;;;;;;8011:24;7952:83;:102;;;;;8039:15;;;;;;;;;;;7952:102;7948:325;;;8122:12;;8112:6;:22;;8104:31;;;;;;8177:15;8162:8;:12;8171:2;8162:12;;;;;;;;;;;;;;;;:30;8154:39;;;;;;8246:10;8227:15;:30;;;;:::i;:::-;8212:8;:12;8221:2;8212:12;;;;;;;;;;;;;;;:45;;;;7948:325;8325:13;;;;;;;;;;;8319:19;;:2;:19;;;:55;;;;;8358:15;;;;;;;;;;;8342:32;;:4;:32;;;;8319:55;:85;;;;;8380:18;:24;8399:4;8380:24;;;;;;;;;;;;;;;;;;;;;;;;;8378:26;8319:85;8315:171;;;8437:1;8425:9;:13;;;;8469:1;8457:9;:13;;;;8315:171;8500:28;8531:24;8549:4;8531:9;:24::i;:::-;8500:55;;8575:6;;;;;;;;;;;8574:7;:32;;;;;8593:13;;;;;;;;;;;8585:21;;:4;:21;;;;8574:32;:47;;;;;8610:11;;;;;;;;;;;8574:47;8570:318;;;8642:38;8659:20;8642:16;:38::i;:::-;8699:26;8728:21;8699:50;;8792:1;8771:18;:22;8768:105;;;8818:35;8831:21;8818:12;:35::i;:::-;8768:105;8623:265;8570:318;7885:1014;7847:1052;8913:30;8928:4;8933:2;8936:6;8913:14;:30::i;:::-;7490:1461;;;:::o;1268:190::-;1354:7;1387:1;1382;:6;;1390:12;1374:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1414:9;1430:1;1426;:5;;;;:::i;:::-;1414:17;;1449:1;1442:8;;;1268:190;;;;;:::o;9458:154::-;9515:15;;;;;;;;;;;:24;;:39;9540:13;9551:1;9540:6;:10;;:13;;;;:::i;:::-;9515:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9565:15;;;;;;;;;;;:24;;:39;9590:13;9601:1;9590:6;:10;;:13;;;;:::i;:::-;9565:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9458:154;:::o;6885:254::-;6952:7;6991;;6980;:18;;6972:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7056:19;7079:10;:8;:10::i;:::-;7056:33;;7107:24;7119:11;7107:7;:11;;:24;;;;:::i;:::-;7100:31;;;6885:254;;;:::o;8959:483::-;4842:4;4833:6;;:13;;;;;;;;;;;;;;;;;;9037:21:::1;9075:1;9061:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9037:40;;9106:4;9088;9093:1;9088:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9132:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9122:4;9127:1;9122:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9165:62;9182:4;9197:15;;;;;;;;;;;9215:11;9165:8;:62::i;:::-;9238:15;;;;;;;;;;;:66;;;9319:11;9345:1;9361:4;9388;9408:15;9238:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9026:416;4878:5:::0;4869:6;;:14;;;;;;;;;;;;;;;;;;8959:483;:::o;10555:146::-;10649:44;10667:6;10675:9;10686:6;10649:17;:44::i;:::-;10555:146;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;13288:163::-;13329:7;13350:15;13367;13386:19;:17;:19::i;:::-;13349:56;;;;13423:20;13435:7;13423;:11;;:20;;;;:::i;:::-;13416:27;;;;13288:163;:::o;10709:488::-;10808:15;10825:23;10850:12;10864:23;10889:12;10903:13;10920:19;10931:7;10920:10;:19::i;:::-;10807:132;;;;;;;;;;;;10968:28;10988:7;10968;:15;10976:6;10968:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10950:7;:15;10958:6;10950:15;;;;;;;;;;;;;;;:46;;;;11028:39;11051:15;11028:7;:18;11036:9;11028:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11007:7;:18;11015:9;11007:18;;;;;;;;;;;;;;;:60;;;;11079:16;11089:5;11079:9;:16::i;:::-;11106:23;11118:4;11124;11106:11;:23::i;:::-;11162:9;11145:44;;11154:6;11145:44;;;11173:15;11145:44;;;;;;:::i;:::-;;;;;;;;10796:401;;;;;;10709:488;;;:::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;13459:262::-;13509:7;13518;13538:15;13556:7;;13538:25;;13574:15;4049:12;13574:25;;13630:20;4049:12;13630:7;;:11;;:20;;;;:::i;:::-;13620:7;:30;13616:61;;;13660:7;;4049:12;13652:25;;;;;;;;13616:61;13696:7;13705;13688:25;;;;;;13459:262;;;:::o;12036:471::-;12095:7;12104;12113;12122;12131;12140;12161:23;12186:12;12200:13;12217:42;12229:7;12238:9;;12249;;12217:11;:42::i;:::-;12160:99;;;;;;12270:19;12293:10;:8;:10::i;:::-;12270:33;;12315:15;12332:23;12357:12;12373:46;12385:7;12394:4;12400:5;12407:11;12373;:46::i;:::-;12314:105;;;;;;12438:7;12447:15;12464:4;12470:15;12487:4;12493:5;12430:69;;;;;;;;;;;;;;;;;;;12036:471;;;;;;;:::o;1124:136::-;1182:7;1209:43;1213:1;1216;1209:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1202:50;;1124:136;;;;:::o;937:179::-;995:7;1015:9;1031:1;1027;:5;;;;:::i;:::-;1015:17;;1056:1;1051;:6;;1043:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:1;1100:8;;;937:179;;;;:::o;11205:212::-;11258:19;11281:10;:8;:10::i;:::-;11258:33;;11302:13;11318:22;11328:11;11318:5;:9;;:22;;;;:::i;:::-;11302:38;;11376:33;11403:5;11376:7;:22;11392:4;11376:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11351:7;:22;11367:4;11351:22;;;;;;;;;;;;;;;:58;;;;11247:170;;11205:212;:::o;11425:147::-;11503:17;11515:4;11503:7;;:11;;:17;;;;:::i;:::-;11493:7;:27;;;;11544:20;11559:4;11544:10;;:14;;:20;;;;:::i;:::-;11531:10;:33;;;;11425:147;;:::o;12515:351::-;12608:7;12617;12626;12646:12;12661:28;12685:3;12661:19;12673:6;12661:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12646:43;;12700:13;12716:29;12741:3;12716:20;12728:7;12716;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12700:45;;12756:23;12782:28;12804:5;12782:17;12794:4;12782:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12756:54;;12829:15;12846:4;12852:5;12821:37;;;;;;;;;12515:351;;;;;;;:::o;12874:409::-;12984:7;12993;13002;13022:15;13040:24;13052:11;13040:7;:11;;:24;;;;:::i;:::-;13022:42;;13075:12;13090:21;13099:11;13090:4;:8;;:21;;;;:::i;:::-;13075:36;;13122:13;13138:22;13148:11;13138:5;:9;;:22;;;;:::i;:::-;13122:38;;13171:23;13197:28;13219:5;13197:17;13209:4;13197:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13171:54;;13244:7;13253:15;13270:4;13236:39;;;;;;;;;;12874:409;;;;;;;;:::o;1466:246::-;1524:7;1553:1;1548;:6;1544:47;;;1578:1;1571:8;;;;1544:47;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1466:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;991:79;;:::i;:::-;953:2;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;943:263;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:2;;;1337:79;;:::i;:::-;1299:2;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1289:274;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1700:79;;:::i;:::-;1662:2;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1652:391;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2197:79;;:::i;:::-;2159:2;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2149:519;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;2805:79;;:::i;:::-;2767:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2757:391;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:2;;;3265:79;;:::i;:::-;3227:2;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3217:260;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:2;;;3605:79;;:::i;:::-;3567:2;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3557:271;;;;:::o;3834:663::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:2;;;3993:79;;:::i;:::-;3955:2;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;4251:2;4277:64;4333:7;4324:6;4313:9;4309:22;4277:64;:::i;:::-;4267:74;;4222:129;4390:2;4416:64;4472:7;4463:6;4452:9;4448:22;4416:64;:::i;:::-;4406:74;;4361:129;3945:552;;;;;:::o;4503:179::-;4572:10;4593:46;4635:3;4627:6;4593:46;:::i;:::-;4671:4;4666:3;4662:14;4648:28;;4583:99;;;;:::o;4688:108::-;4765:24;4783:5;4765:24;:::i;:::-;4760:3;4753:37;4743:53;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4867:53;;:::o;4956:732::-;5075:3;5104:54;5152:5;5104:54;:::i;:::-;5174:86;5253:6;5248:3;5174:86;:::i;:::-;5167:93;;5284:56;5334:5;5284:56;:::i;:::-;5363:7;5394:1;5379:284;5404:6;5401:1;5398:13;5379:284;;;5480:6;5474:13;5507:63;5566:3;5551:13;5507:63;:::i;:::-;5500:70;;5593:60;5646:6;5593:60;:::i;:::-;5583:70;;5439:224;5426:1;5423;5419:9;5414:14;;5379:284;;;5383:14;5679:3;5672:10;;5080:608;;;;;;;:::o;5694:109::-;5775:21;5790:5;5775:21;:::i;:::-;5770:3;5763:34;5753:50;;:::o;5809:147::-;5904:45;5943:5;5904:45;:::i;:::-;5899:3;5892:58;5882:74;;:::o;5962:364::-;6050:3;6078:39;6111:5;6078:39;:::i;:::-;6133:71;6197:6;6192:3;6133:71;:::i;:::-;6126:78;;6213:52;6258:6;6253:3;6246:4;6239:5;6235:16;6213:52;:::i;:::-;6290:29;6312:6;6290:29;:::i;:::-;6285:3;6281:39;6274:46;;6054:272;;;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6478:220;;;:::o;6704:366::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6850:220;;;:::o;7076:366::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7222:220;;;:::o;7448:366::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7594:220;;;:::o;7820:366::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7966:220;;;:::o;8192:366::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8338:220;;;:::o;8564:366::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8710:220;;;:::o;8936:366::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;9082:220;;;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9454:220;;;:::o;9680:366::-;9822:3;9843:67;9907:2;9902:3;9843:67;:::i;:::-;9836:74;;9919:93;10008:3;9919:93;:::i;:::-;10037:2;10032:3;10028:12;10021:19;;9826:220;;;:::o;10052:118::-;10139:24;10157:5;10139:24;:::i;:::-;10134:3;10127:37;10117:53;;:::o;10176:112::-;10259:22;10275:5;10259:22;:::i;:::-;10254:3;10247:35;10237:51;;:::o;10294:222::-;10387:4;10425:2;10414:9;10410:18;10402:26;;10438:71;10506:1;10495:9;10491:17;10482:6;10438:71;:::i;:::-;10392:124;;;;:::o;10522:332::-;10643:4;10681:2;10670:9;10666:18;10658:26;;10694:71;10762:1;10751:9;10747:17;10738:6;10694:71;:::i;:::-;10775:72;10843:2;10832:9;10828:18;10819:6;10775:72;:::i;:::-;10648:206;;;;;:::o;10860:332::-;10981:4;11019:2;11008:9;11004:18;10996:26;;11032:71;11100:1;11089:9;11085:17;11076:6;11032:71;:::i;:::-;11113:72;11181:2;11170:9;11166:18;11157:6;11113:72;:::i;:::-;10986:206;;;;;:::o;11198:807::-;11447:4;11485:3;11474:9;11470:19;11462:27;;11499:71;11567:1;11556:9;11552:17;11543:6;11499:71;:::i;:::-;11580:72;11648:2;11637:9;11633:18;11624:6;11580:72;:::i;:::-;11662:80;11738:2;11727:9;11723:18;11714:6;11662:80;:::i;:::-;11752;11828:2;11817:9;11813:18;11804:6;11752:80;:::i;:::-;11842:73;11910:3;11899:9;11895:19;11886:6;11842:73;:::i;:::-;11925;11993:3;11982:9;11978:19;11969:6;11925:73;:::i;:::-;11452:553;;;;;;;;;:::o;12011:210::-;12098:4;12136:2;12125:9;12121:18;12113:26;;12149:65;12211:1;12200:9;12196:17;12187:6;12149:65;:::i;:::-;12103:118;;;;:::o;12227:313::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:78;12528:4;12519:6;12455:78;:::i;:::-;12447:86;;12345:195;;;;:::o;12546:419::-;12712:4;12750:2;12739:9;12735:18;12727:26;;12799:9;12793:4;12789:20;12785:1;12774:9;12770:17;12763:47;12827:131;12953:4;12827:131;:::i;:::-;12819:139;;12717:248;;;:::o;12971:419::-;13137:4;13175:2;13164:9;13160:18;13152:26;;13224:9;13218:4;13214:20;13210:1;13199:9;13195:17;13188:47;13252:131;13378:4;13252:131;:::i;:::-;13244:139;;13142:248;;;:::o;13396:419::-;13562:4;13600:2;13589:9;13585:18;13577:26;;13649:9;13643:4;13639:20;13635:1;13624:9;13620:17;13613:47;13677:131;13803:4;13677:131;:::i;:::-;13669:139;;13567:248;;;:::o;13821:419::-;13987:4;14025:2;14014:9;14010:18;14002:26;;14074:9;14068:4;14064:20;14060:1;14049:9;14045:17;14038:47;14102:131;14228:4;14102:131;:::i;:::-;14094:139;;13992:248;;;:::o;14246:419::-;14412:4;14450:2;14439:9;14435:18;14427:26;;14499:9;14493:4;14489:20;14485:1;14474:9;14470:17;14463:47;14527:131;14653:4;14527:131;:::i;:::-;14519:139;;14417:248;;;:::o;14671:419::-;14837:4;14875:2;14864:9;14860:18;14852:26;;14924:9;14918:4;14914:20;14910:1;14899:9;14895:17;14888:47;14952:131;15078:4;14952:131;:::i;:::-;14944:139;;14842:248;;;:::o;15096:419::-;15262:4;15300:2;15289:9;15285:18;15277:26;;15349:9;15343:4;15339:20;15335:1;15324:9;15320:17;15313:47;15377:131;15503:4;15377:131;:::i;:::-;15369:139;;15267:248;;;:::o;15521:419::-;15687:4;15725:2;15714:9;15710:18;15702:26;;15774:9;15768:4;15764:20;15760:1;15749:9;15745:17;15738:47;15802:131;15928:4;15802:131;:::i;:::-;15794:139;;15692:248;;;:::o;15946:419::-;16112:4;16150:2;16139:9;16135:18;16127:26;;16199:9;16193:4;16189:20;16185:1;16174:9;16170:17;16163:47;16227:131;16353:4;16227:131;:::i;:::-;16219:139;;16117:248;;;:::o;16371:419::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16624:9;16618:4;16614:20;16610:1;16599:9;16595:17;16588:47;16652:131;16778:4;16652:131;:::i;:::-;16644:139;;16542:248;;;:::o;16796:222::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16940:71;17008:1;16997:9;16993:17;16984:6;16940:71;:::i;:::-;16894:124;;;;:::o;17024:831::-;17287:4;17325:3;17314:9;17310:19;17302:27;;17339:71;17407:1;17396:9;17392:17;17383:6;17339:71;:::i;:::-;17420:80;17496:2;17485:9;17481:18;17472:6;17420:80;:::i;:::-;17547:9;17541:4;17537:20;17532:2;17521:9;17517:18;17510:48;17575:108;17678:4;17669:6;17575:108;:::i;:::-;17567:116;;17693:72;17761:2;17750:9;17746:18;17737:6;17693:72;:::i;:::-;17775:73;17843:3;17832:9;17828:19;17819:6;17775:73;:::i;:::-;17292:563;;;;;;;;:::o;17861:214::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18001:67;18065:1;18054:9;18050:17;18041:6;18001:67;:::i;:::-;17955:120;;;;:::o;18162:132::-;18229:4;18252:3;18244:11;;18282:4;18277:3;18273:14;18265:22;;18234:60;;;:::o;18300:114::-;18367:6;18401:5;18395:12;18385:22;;18374:40;;;:::o;18420:99::-;18472:6;18506:5;18500:12;18490:22;;18479:40;;;:::o;18525:113::-;18595:4;18627;18622:3;18618:14;18610:22;;18600:38;;;:::o;18644:184::-;18743:11;18777:6;18772:3;18765:19;18817:4;18812:3;18808:14;18793:29;;18755:73;;;;:::o;18834:169::-;18918:11;18952:6;18947:3;18940:19;18992:4;18987:3;18983:14;18968:29;;18930:73;;;;:::o;19009:305::-;19049:3;19068:20;19086:1;19068:20;:::i;:::-;19063:25;;19102:20;19120:1;19102:20;:::i;:::-;19097:25;;19256:1;19188:66;19184:74;19181:1;19178:81;19175:2;;;19262:18;;:::i;:::-;19175:2;19306:1;19303;19299:9;19292:16;;19053:261;;;;:::o;19320:185::-;19360:1;19377:20;19395:1;19377:20;:::i;:::-;19372:25;;19411:20;19429:1;19411:20;:::i;:::-;19406:25;;19450:1;19440:2;;19455:18;;:::i;:::-;19440:2;19497:1;19494;19490:9;19485:14;;19362:143;;;;:::o;19511:348::-;19551:7;19574:20;19592:1;19574:20;:::i;:::-;19569:25;;19608:20;19626:1;19608:20;:::i;:::-;19603:25;;19796:1;19728:66;19724:74;19721:1;19718:81;19713:1;19706:9;19699:17;19695:105;19692:2;;;19803:18;;:::i;:::-;19692:2;19851:1;19848;19844:9;19833:20;;19559:300;;;;:::o;19865:191::-;19905:4;19925:20;19943:1;19925:20;:::i;:::-;19920:25;;19959:20;19977:1;19959:20;:::i;:::-;19954:25;;19998:1;19995;19992:8;19989:2;;;20003:18;;:::i;:::-;19989:2;20048:1;20045;20041:9;20033:17;;19910:146;;;;:::o;20062:96::-;20099:7;20128:24;20146:5;20128:24;:::i;:::-;20117:35;;20107:51;;;:::o;20164:90::-;20198:7;20241:5;20234:13;20227:21;20216:32;;20206:48;;;:::o;20260:126::-;20297:7;20337:42;20330:5;20326:54;20315:65;;20305:81;;;:::o;20392:77::-;20429:7;20458:5;20447:16;;20437:32;;;:::o;20475:86::-;20510:7;20550:4;20543:5;20539:16;20528:27;;20518:43;;;:::o;20567:121::-;20625:9;20658:24;20676:5;20658:24;:::i;:::-;20645:37;;20635:53;;;:::o;20694:307::-;20762:1;20772:113;20786:6;20783:1;20780:13;20772:113;;;20871:1;20866:3;20862:11;20856:18;20852:1;20847:3;20843:11;20836:39;20808:2;20805:1;20801:10;20796:15;;20772:113;;;20903:6;20900:1;20897:13;20894:2;;;20983:1;20974:6;20969:3;20965:16;20958:27;20894:2;20743:258;;;;:::o;21007:180::-;21055:77;21052:1;21045:88;21152:4;21149:1;21142:15;21176:4;21173:1;21166:15;21193:180;21241:77;21238:1;21231:88;21338:4;21335:1;21328:15;21362:4;21359:1;21352:15;21379:180;21427:77;21424:1;21417:88;21524:4;21521:1;21514:15;21548:4;21545:1;21538:15;21565:180;21613:77;21610:1;21603:88;21710:4;21707:1;21700:15;21734:4;21731:1;21724:15;21874:117;21983:1;21980;21973:12;21997:102;22038:6;22089:2;22085:7;22080:2;22073:5;22069:14;22065:28;22055:38;;22045:54;;;:::o;22105:222::-;22245:34;22241:1;22233:6;22229:14;22222:58;22314:5;22309:2;22301:6;22297:15;22290:30;22211:116;:::o;22333:229::-;22473:34;22469:1;22461:6;22457:14;22450:58;22542:12;22537:2;22529:6;22525:15;22518:37;22439:123;:::o;22568:221::-;22708:34;22704:1;22696:6;22692:14;22685:58;22777:4;22772:2;22764:6;22760:15;22753:29;22674:115;:::o;22795:177::-;22935:29;22931:1;22923:6;22919:14;22912:53;22901:71;:::o;22978:220::-;23118:34;23114:1;23106:6;23102:14;23095:58;23187:3;23182:2;23174:6;23170:15;23163:28;23084:114;:::o;23204:182::-;23344:34;23340:1;23332:6;23328:14;23321:58;23310:76;:::o;23392:228::-;23532:34;23528:1;23520:6;23516:14;23509:58;23601:11;23596:2;23588:6;23584:15;23577:36;23498:122;:::o;23626:224::-;23766:34;23762:1;23754:6;23750:14;23743:58;23835:7;23830:2;23822:6;23818:15;23811:32;23732:118;:::o;23856:223::-;23996:34;23992:1;23984:6;23980:14;23973:58;24065:6;24060:2;24052:6;24048:15;24041:31;23962:117;:::o;24085:173::-;24225:25;24221:1;24213:6;24209:14;24202:49;24191:67;:::o;24264:122::-;24337:24;24355:5;24337:24;:::i;:::-;24330:5;24327:35;24317:2;;24376:1;24373;24366:12;24317:2;24307:79;:::o;24392:116::-;24462:21;24477:5;24462:21;:::i;:::-;24455:5;24452:32;24442:2;;24498:1;24495;24488:12;24442:2;24432:76;:::o;24514:122::-;24587:24;24605:5;24587:24;:::i;:::-;24580:5;24577:35;24567:2;;24626:1;24623;24616:12;24567:2;24557:79;:::o

Swarm Source

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