ETH Price: $3,409.69 (-1.02%)
Gas: 2 Gwei

Token

Sendex AI (SENDEX)
 

Overview

Max Total Supply

1,000,000 SENDEX

Holders

1,511

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
132.302664413 SENDEX

Value
$0.00
0x9651bffdc17c8653869feffb6efb96a46930e009
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:
SENDEX

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-27
*/

/**

Sendex AI.

Request Cryptocurrency Payments and Create Invoices Anonymously!

Sendex AI is a complete anonymous tool which can help users to request payments and send cryptocurrencies in a full 
privacy process without sender's or receiver's wallet be traceable to anyone.

Links:

Website: https://sendex.ai
TG: https://t.me/SendexAI
X(Twitter): https://twitter.com/SendexAI
Docs: https://docs.sendex.ai

These features are accessible through Sendex AI dApp and Telegram Bot.


TG Bot: https://t.me/SendexAI_bot
dAPP: https://app.sendex.ai/

**/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.22;
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 SENDEX 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 => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = unicode"Sendex AI";
    string private constant _symbol = unicode"SENDEX";
    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 = 1_000_000 * 10**9;
    uint256 private _maxWalletSize = 20_000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=35;
        _finalTax=5;
        _reduceTaxCountdown=200;

        emit Transfer(address(0), _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 circulateSupply() public pure  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 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }


    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");


        if (from != owner() && to != owner()) {
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}

           
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function setLowerTaxAll(uint256 newTax) external onlyOwner{
        _initialTax = (newTax);
    }

  

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    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;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    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() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        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":"circulateSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"removeLimits","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":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setLowerTaxAll","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"}]

608060405266038d7ea4c680005f196200001a919062000418565b5f196200002891906200047c565b6007555f601060156101000a81548160ff0219169083151502179055505f601060166101000a81548160ff0219169083151502179055505f601060176101000a81548160ff02191690831515021790555066038d7ea4c680006011556512309ce540006012553480156200009a575f80fd5b505f620000ac620003b460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000158620003b460201b60201c565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460025f620001ad620003b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160055f620001ff620003bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506023600b819055506005600c8190555060c8600d8190555062000341620003b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003a69190620004c7565b60405180910390a3620004e2565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200042482620003e2565b91506200043183620003e2565b925082620004445762000443620003eb565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200048882620003e2565b91506200049583620003e2565b9250828203905081811115620004b057620004af6200044f565b5b92915050565b620004c181620003e2565b82525050565b5f602082019050620004dc5f830184620004b6565b92915050565b612e6680620004f05f395ff3fe60806040526004361061010c575f3560e01c806370a082311161009457806395d89b411161006357806395d89b411461032f578063a9059cbb14610359578063c3c8cd8014610395578063c9567bf9146103ab578063dd62ed3e146103c157610113565b806370a082311461029d578063715018a6146102d9578063751039fc146102ef5780638da5cb5b1461030557610113565b8063313ce567116100db578063313ce567146101e357806336d5cb391461020d5780635932ead1146102375780635e6a408a1461025f5780636fc3eaec1461028757610113565b806306fdde0314610117578063095ea7b31461014157806318160ddd1461017d57806323b872dd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b6103fd565b60405161013891906120ad565b60405180910390f35b34801561014c575f80fd5b506101676004803603810190610162919061215e565b61043a565b60405161017491906121b6565b60405180910390f35b348015610188575f80fd5b50610191610457565b60405161019e91906121de565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c891906121f7565b610465565b6040516101da91906121b6565b60405180910390f35b3480156101ee575f80fd5b506101f7610539565b6040516102049190612262565b60405180910390f35b348015610218575f80fd5b50610221610541565b60405161022e91906121de565b60405180910390f35b348015610242575f80fd5b5061025d600480360381019061025891906122a5565b61054f565b005b34801561026a575f80fd5b50610285600480360381019061028091906122d0565b610600565b005b348015610292575f80fd5b5061029b61069e565b005b3480156102a8575f80fd5b506102c360048036038101906102be91906122fb565b61070d565b6040516102d091906121de565b60405180910390f35b3480156102e4575f80fd5b506102ed61075b565b005b3480156102fa575f80fd5b506103036108a9565b005b348015610310575f80fd5b5061031961095b565b6040516103269190612335565b60405180910390f35b34801561033a575f80fd5b50610343610982565b60405161035091906120ad565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a919061215e565b6109bf565b60405161038c91906121b6565b60405180910390f35b3480156103a0575f80fd5b506103a96109dc565b005b3480156103b6575f80fd5b506103bf610a53565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061234e565b610f3e565b6040516103f491906121de565b60405180910390f35b60606040518060400160405280600981526020017f53656e6465782041490000000000000000000000000000000000000000000000815250905090565b5f61044d610446610fc0565b8484610fc7565b6001905092915050565b5f66038d7ea4c68000905090565b5f61047184848461118a565b61052e8461047d610fc0565b61052985604051806060016040528060288152602001612e096028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104e0610fc0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116029092919063ffffffff16565b610fc7565b600190509392505050565b5f6009905090565b5f66038d7ea4c68000905090565b610557610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105da906123d6565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b610608610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068b906123d6565b60405180910390fd5b80600b8190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106de610fc0565b73ffffffffffffffffffffffffffffffffffffffff16146106fd575f80fd5b5f47905061070a81611664565b50565b5f61075460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116cc565b9050919050565b610763610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e6906123d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b1610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906123d6565b60405180910390fd5b66038d7ea4c6800060118190555066038d7ea4c68000601281905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53454e4445580000000000000000000000000000000000000000000000000000815250905090565b5f6109d26109cb610fc0565b848461118a565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1c610fc0565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b575f80fd5b5f610a453061070d565b9050610a5081611738565b50565b610a5b610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906123d6565b60405180910390fd5b601060149054906101000a900460ff1615610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e9061243e565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc230600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c68000610fc7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2f9190612470565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb89190612470565b6040518363ffffffff1660e01b8152600401610cd592919061249b565b6020604051808303815f875af1158015610cf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d159190612470565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9c3061070d565b5f80610da661095b565b426040518863ffffffff1660e01b8152600401610dc896959493929190612504565b60606040518083038185885af1158015610de4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e099190612577565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610efa9291906125c7565b6020604051808303815f875af1158015610f16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3a9190612602565b5050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c9061269d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a9061272b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117d91906121de565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef906127b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612847565b60405180910390fd5b5f81116112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f906128d5565b60405180910390fd5b6112b061095b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561131e57506112ee61095b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e3575f6009819055505f600d541461133b57600b5461133f565b600c545b600a8190555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113ee5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611441575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114595750601060179054906101000a900460ff165b1561151e576011548111156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061293d565b60405180910390fd5b601254816114b08461070d565b6114ba9190612988565b11156114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612a05565b60405180910390fd5b5f600d54111561151d57600d5f81548092919061151790612a23565b91905055505b5b5f6115283061070d565b9050601060159054906101000a900460ff16158015611594575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115ac5750601060169054906101000a900460ff165b80156115b757505f81115b156115dd576115c581611738565b5f4790505f8111156115db576115da47611664565b5b505b506115f2565b5f6009819055505f600a819055505b6115fd8383836119a3565b505050565b5f838311158290611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164091906120ad565b60405180910390fd5b505f83856116579190612a4a565b9050809150509392505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116c8573d5f803e3d5ffd5b5050565b5f600754821115611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612aed565b60405180910390fd5b5f61171b6119b3565b905061173081846119dc90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561176f5761176e612b0b565b5b60405190808252806020026020018201604052801561179d5781602001602082028036833780820191505090505b50905030815f815181106117b4576117b3612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611858573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187c9190612470565b816001815181106118905761188f612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118f630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611958959493929190612c1c565b5f604051808303815f87803b15801561196f575f80fd5b505af1158015611981573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b6119ae838383611a25565b505050565b5f805f6119be611be5565b915091506119d581836119dc90919063ffffffff16565b9250505090565b5f611a1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c3e565b905092915050565b5f805f805f80611a3487611c9f565b955095509550955095509550611a908660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b218560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b6b81611da5565b611b758483611e5c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bd291906121de565b60405180910390a3505050505050505050565b5f805f60075490505f66038d7ea4c680009050611c1466038d7ea4c680006007546119dc90919063ffffffff16565b821015611c315760075466038d7ea4c68000935093505050611c3a565b81819350935050505b9091565b5f8083118290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b91906120ad565b60405180910390fd5b505f8385611c929190612ca1565b9050809150509392505050565b5f805f805f805f805f611cb78a600954600a54611e96565b9250925092505f611cc66119b3565b90505f805f611cd78e878787611f28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611d4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611602565b905092915050565b5f808284611d569190612988565b905083811015611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290612d1b565b60405180910390fd5b8091505092915050565b5f611dae6119b3565b90505f611dc48284611fac90919063ffffffff16565b9050611e168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611e7182600754611cff90919063ffffffff16565b600781905550611e8c81600854611d4890919063ffffffff16565b6008819055505050565b5f805f80611ec06064611eb2888a611fac90919063ffffffff16565b6119dc90919063ffffffff16565b90505f611ee96064611edb888b611fac90919063ffffffff16565b6119dc90919063ffffffff16565b90505f611f1182611f03858c611cff90919063ffffffff16565b611cff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611f3f8589611fac90919063ffffffff16565b90505f611f558689611fac90919063ffffffff16565b90505f611f6b8789611fac90919063ffffffff16565b90505f611f9382611f858587611cff90919063ffffffff16565b611cff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611fbc575f905061201d565b5f8284611fc99190612d39565b9050828482611fd89190612ca1565b14612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f90612dea565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561205a57808201518184015260208101905061203f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207f82612023565b612089818561202d565b935061209981856020860161203d565b6120a281612065565b840191505092915050565b5f6020820190508181035f8301526120c58184612075565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120fa826120d1565b9050919050565b61210a816120f0565b8114612114575f80fd5b50565b5f8135905061212581612101565b92915050565b5f819050919050565b61213d8161212b565b8114612147575f80fd5b50565b5f8135905061215881612134565b92915050565b5f8060408385031215612174576121736120cd565b5b5f61218185828601612117565b92505060206121928582860161214a565b9150509250929050565b5f8115159050919050565b6121b08161219c565b82525050565b5f6020820190506121c95f8301846121a7565b92915050565b6121d88161212b565b82525050565b5f6020820190506121f15f8301846121cf565b92915050565b5f805f6060848603121561220e5761220d6120cd565b5b5f61221b86828701612117565b935050602061222c86828701612117565b925050604061223d8682870161214a565b9150509250925092565b5f60ff82169050919050565b61225c81612247565b82525050565b5f6020820190506122755f830184612253565b92915050565b6122848161219c565b811461228e575f80fd5b50565b5f8135905061229f8161227b565b92915050565b5f602082840312156122ba576122b96120cd565b5b5f6122c784828501612291565b91505092915050565b5f602082840312156122e5576122e46120cd565b5b5f6122f28482850161214a565b91505092915050565b5f602082840312156123105761230f6120cd565b5b5f61231d84828501612117565b91505092915050565b61232f816120f0565b82525050565b5f6020820190506123485f830184612326565b92915050565b5f8060408385031215612364576123636120cd565b5b5f61237185828601612117565b925050602061238285828601612117565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123c060208361202d565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61242860178361202d565b9150612433826123f4565b602082019050919050565b5f6020820190508181035f8301526124558161241c565b9050919050565b5f8151905061246a81612101565b92915050565b5f60208284031215612485576124846120cd565b5b5f6124928482850161245c565b91505092915050565b5f6040820190506124ae5f830185612326565b6124bb6020830184612326565b9392505050565b5f819050919050565b5f819050919050565b5f6124ee6124e96124e4846124c2565b6124cb565b61212b565b9050919050565b6124fe816124d4565b82525050565b5f60c0820190506125175f830189612326565b61252460208301886121cf565b61253160408301876124f5565b61253e60608301866124f5565b61254b6080830185612326565b61255860a08301846121cf565b979650505050505050565b5f8151905061257181612134565b92915050565b5f805f6060848603121561258e5761258d6120cd565b5b5f61259b86828701612563565b93505060206125ac86828701612563565b92505060406125bd86828701612563565b9150509250925092565b5f6040820190506125da5f830185612326565b6125e760208301846121cf565b9392505050565b5f815190506125fc8161227b565b92915050565b5f60208284031215612617576126166120cd565b5b5f612624848285016125ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61268760248361202d565b91506126928261262d565b604082019050919050565b5f6020820190508181035f8301526126b48161267b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61271560228361202d565b9150612720826126bb565b604082019050919050565b5f6020820190508181035f83015261274281612709565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6127a360258361202d565b91506127ae82612749565b604082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61283160238361202d565b915061283c826127d7565b604082019050919050565b5f6020820190508181035f83015261285e81612825565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128bf60298361202d565b91506128ca82612865565b604082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61292760198361202d565b9150612932826128f3565b602082019050919050565b5f6020820190508181035f8301526129548161291b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129928261212b565b915061299d8361212b565b92508282019050808211156129b5576129b461295b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129ef601a8361202d565b91506129fa826129bb565b602082019050919050565b5f6020820190508181035f830152612a1c816129e3565b9050919050565b5f612a2d8261212b565b91505f8203612a3f57612a3e61295b565b5b600182039050919050565b5f612a548261212b565b9150612a5f8361212b565b9250828203905081811115612a7757612a7661295b565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612ad7602a8361202d565b9150612ae282612a7d565b604082019050919050565b5f6020820190508181035f830152612b0481612acb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b97816120f0565b82525050565b5f612ba88383612b8e565b60208301905092915050565b5f602082019050919050565b5f612bca82612b65565b612bd48185612b6f565b9350612bdf83612b7f565b805f5b83811015612c0f578151612bf68882612b9d565b9750612c0183612bb4565b925050600181019050612be2565b5085935050505092915050565b5f60a082019050612c2f5f8301886121cf565b612c3c60208301876124f5565b8181036040830152612c4e8186612bc0565b9050612c5d6060830185612326565b612c6a60808301846121cf565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cab8261212b565b9150612cb68361212b565b925082612cc657612cc5612c74565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d05601b8361202d565b9150612d1082612cd1565b602082019050919050565b5f6020820190508181035f830152612d3281612cf9565b9050919050565b5f612d438261212b565b9150612d4e8361212b565b9250828202612d5c8161212b565b91508282048414831517612d7357612d7261295b565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd460218361202d565b9150612ddf82612d7a565b604082019050919050565b5f6020820190508181035f830152612e0181612dc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4254cc3186616d0511bea0cb8515a421e540917e5ade86dd745bff0b3f9d80164736f6c63430008160033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c806370a082311161009457806395d89b411161006357806395d89b411461032f578063a9059cbb14610359578063c3c8cd8014610395578063c9567bf9146103ab578063dd62ed3e146103c157610113565b806370a082311461029d578063715018a6146102d9578063751039fc146102ef5780638da5cb5b1461030557610113565b8063313ce567116100db578063313ce567146101e357806336d5cb391461020d5780635932ead1146102375780635e6a408a1461025f5780636fc3eaec1461028757610113565b806306fdde0314610117578063095ea7b31461014157806318160ddd1461017d57806323b872dd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b6103fd565b60405161013891906120ad565b60405180910390f35b34801561014c575f80fd5b506101676004803603810190610162919061215e565b61043a565b60405161017491906121b6565b60405180910390f35b348015610188575f80fd5b50610191610457565b60405161019e91906121de565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c891906121f7565b610465565b6040516101da91906121b6565b60405180910390f35b3480156101ee575f80fd5b506101f7610539565b6040516102049190612262565b60405180910390f35b348015610218575f80fd5b50610221610541565b60405161022e91906121de565b60405180910390f35b348015610242575f80fd5b5061025d600480360381019061025891906122a5565b61054f565b005b34801561026a575f80fd5b50610285600480360381019061028091906122d0565b610600565b005b348015610292575f80fd5b5061029b61069e565b005b3480156102a8575f80fd5b506102c360048036038101906102be91906122fb565b61070d565b6040516102d091906121de565b60405180910390f35b3480156102e4575f80fd5b506102ed61075b565b005b3480156102fa575f80fd5b506103036108a9565b005b348015610310575f80fd5b5061031961095b565b6040516103269190612335565b60405180910390f35b34801561033a575f80fd5b50610343610982565b60405161035091906120ad565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a919061215e565b6109bf565b60405161038c91906121b6565b60405180910390f35b3480156103a0575f80fd5b506103a96109dc565b005b3480156103b6575f80fd5b506103bf610a53565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061234e565b610f3e565b6040516103f491906121de565b60405180910390f35b60606040518060400160405280600981526020017f53656e6465782041490000000000000000000000000000000000000000000000815250905090565b5f61044d610446610fc0565b8484610fc7565b6001905092915050565b5f66038d7ea4c68000905090565b5f61047184848461118a565b61052e8461047d610fc0565b61052985604051806060016040528060288152602001612e096028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104e0610fc0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116029092919063ffffffff16565b610fc7565b600190509392505050565b5f6009905090565b5f66038d7ea4c68000905090565b610557610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105da906123d6565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b610608610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068b906123d6565b60405180910390fd5b80600b8190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106de610fc0565b73ffffffffffffffffffffffffffffffffffffffff16146106fd575f80fd5b5f47905061070a81611664565b50565b5f61075460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116cc565b9050919050565b610763610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e6906123d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b1610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906123d6565b60405180910390fd5b66038d7ea4c6800060118190555066038d7ea4c68000601281905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53454e4445580000000000000000000000000000000000000000000000000000815250905090565b5f6109d26109cb610fc0565b848461118a565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1c610fc0565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b575f80fd5b5f610a453061070d565b9050610a5081611738565b50565b610a5b610fc0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906123d6565b60405180910390fd5b601060149054906101000a900460ff1615610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e9061243e565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc230600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c68000610fc7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2f9190612470565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb89190612470565b6040518363ffffffff1660e01b8152600401610cd592919061249b565b6020604051808303815f875af1158015610cf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d159190612470565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9c3061070d565b5f80610da661095b565b426040518863ffffffff1660e01b8152600401610dc896959493929190612504565b60606040518083038185885af1158015610de4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e099190612577565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610efa9291906125c7565b6020604051808303815f875af1158015610f16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3a9190612602565b5050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c9061269d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a9061272b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117d91906121de565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef906127b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612847565b60405180910390fd5b5f81116112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f906128d5565b60405180910390fd5b6112b061095b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561131e57506112ee61095b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e3575f6009819055505f600d541461133b57600b5461133f565b600c545b600a8190555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113ee5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611441575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114595750601060179054906101000a900460ff165b1561151e576011548111156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061293d565b60405180910390fd5b601254816114b08461070d565b6114ba9190612988565b11156114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612a05565b60405180910390fd5b5f600d54111561151d57600d5f81548092919061151790612a23565b91905055505b5b5f6115283061070d565b9050601060159054906101000a900460ff16158015611594575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115ac5750601060169054906101000a900460ff165b80156115b757505f81115b156115dd576115c581611738565b5f4790505f8111156115db576115da47611664565b5b505b506115f2565b5f6009819055505f600a819055505b6115fd8383836119a3565b505050565b5f838311158290611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164091906120ad565b60405180910390fd5b505f83856116579190612a4a565b9050809150509392505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116c8573d5f803e3d5ffd5b5050565b5f600754821115611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612aed565b60405180910390fd5b5f61171b6119b3565b905061173081846119dc90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561176f5761176e612b0b565b5b60405190808252806020026020018201604052801561179d5781602001602082028036833780820191505090505b50905030815f815181106117b4576117b3612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611858573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187c9190612470565b816001815181106118905761188f612b38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118f630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611958959493929190612c1c565b5f604051808303815f87803b15801561196f575f80fd5b505af1158015611981573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b6119ae838383611a25565b505050565b5f805f6119be611be5565b915091506119d581836119dc90919063ffffffff16565b9250505090565b5f611a1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c3e565b905092915050565b5f805f805f80611a3487611c9f565b955095509550955095509550611a908660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b218560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b6b81611da5565b611b758483611e5c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bd291906121de565b60405180910390a3505050505050505050565b5f805f60075490505f66038d7ea4c680009050611c1466038d7ea4c680006007546119dc90919063ffffffff16565b821015611c315760075466038d7ea4c68000935093505050611c3a565b81819350935050505b9091565b5f8083118290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b91906120ad565b60405180910390fd5b505f8385611c929190612ca1565b9050809150509392505050565b5f805f805f805f805f611cb78a600954600a54611e96565b9250925092505f611cc66119b3565b90505f805f611cd78e878787611f28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611d4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611602565b905092915050565b5f808284611d569190612988565b905083811015611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290612d1b565b60405180910390fd5b8091505092915050565b5f611dae6119b3565b90505f611dc48284611fac90919063ffffffff16565b9050611e168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611e7182600754611cff90919063ffffffff16565b600781905550611e8c81600854611d4890919063ffffffff16565b6008819055505050565b5f805f80611ec06064611eb2888a611fac90919063ffffffff16565b6119dc90919063ffffffff16565b90505f611ee96064611edb888b611fac90919063ffffffff16565b6119dc90919063ffffffff16565b90505f611f1182611f03858c611cff90919063ffffffff16565b611cff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611f3f8589611fac90919063ffffffff16565b90505f611f558689611fac90919063ffffffff16565b90505f611f6b8789611fac90919063ffffffff16565b90505f611f9382611f858587611cff90919063ffffffff16565b611cff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611fbc575f905061201d565b5f8284611fc99190612d39565b9050828482611fd89190612ca1565b14612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f90612dea565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561205a57808201518184015260208101905061203f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207f82612023565b612089818561202d565b935061209981856020860161203d565b6120a281612065565b840191505092915050565b5f6020820190508181035f8301526120c58184612075565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120fa826120d1565b9050919050565b61210a816120f0565b8114612114575f80fd5b50565b5f8135905061212581612101565b92915050565b5f819050919050565b61213d8161212b565b8114612147575f80fd5b50565b5f8135905061215881612134565b92915050565b5f8060408385031215612174576121736120cd565b5b5f61218185828601612117565b92505060206121928582860161214a565b9150509250929050565b5f8115159050919050565b6121b08161219c565b82525050565b5f6020820190506121c95f8301846121a7565b92915050565b6121d88161212b565b82525050565b5f6020820190506121f15f8301846121cf565b92915050565b5f805f6060848603121561220e5761220d6120cd565b5b5f61221b86828701612117565b935050602061222c86828701612117565b925050604061223d8682870161214a565b9150509250925092565b5f60ff82169050919050565b61225c81612247565b82525050565b5f6020820190506122755f830184612253565b92915050565b6122848161219c565b811461228e575f80fd5b50565b5f8135905061229f8161227b565b92915050565b5f602082840312156122ba576122b96120cd565b5b5f6122c784828501612291565b91505092915050565b5f602082840312156122e5576122e46120cd565b5b5f6122f28482850161214a565b91505092915050565b5f602082840312156123105761230f6120cd565b5b5f61231d84828501612117565b91505092915050565b61232f816120f0565b82525050565b5f6020820190506123485f830184612326565b92915050565b5f8060408385031215612364576123636120cd565b5b5f61237185828601612117565b925050602061238285828601612117565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123c060208361202d565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61242860178361202d565b9150612433826123f4565b602082019050919050565b5f6020820190508181035f8301526124558161241c565b9050919050565b5f8151905061246a81612101565b92915050565b5f60208284031215612485576124846120cd565b5b5f6124928482850161245c565b91505092915050565b5f6040820190506124ae5f830185612326565b6124bb6020830184612326565b9392505050565b5f819050919050565b5f819050919050565b5f6124ee6124e96124e4846124c2565b6124cb565b61212b565b9050919050565b6124fe816124d4565b82525050565b5f60c0820190506125175f830189612326565b61252460208301886121cf565b61253160408301876124f5565b61253e60608301866124f5565b61254b6080830185612326565b61255860a08301846121cf565b979650505050505050565b5f8151905061257181612134565b92915050565b5f805f6060848603121561258e5761258d6120cd565b5b5f61259b86828701612563565b93505060206125ac86828701612563565b92505060406125bd86828701612563565b9150509250925092565b5f6040820190506125da5f830185612326565b6125e760208301846121cf565b9392505050565b5f815190506125fc8161227b565b92915050565b5f60208284031215612617576126166120cd565b5b5f612624848285016125ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61268760248361202d565b91506126928261262d565b604082019050919050565b5f6020820190508181035f8301526126b48161267b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61271560228361202d565b9150612720826126bb565b604082019050919050565b5f6020820190508181035f83015261274281612709565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6127a360258361202d565b91506127ae82612749565b604082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61283160238361202d565b915061283c826127d7565b604082019050919050565b5f6020820190508181035f83015261285e81612825565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128bf60298361202d565b91506128ca82612865565b604082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61292760198361202d565b9150612932826128f3565b602082019050919050565b5f6020820190508181035f8301526129548161291b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129928261212b565b915061299d8361212b565b92508282019050808211156129b5576129b461295b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129ef601a8361202d565b91506129fa826129bb565b602082019050919050565b5f6020820190508181035f830152612a1c816129e3565b9050919050565b5f612a2d8261212b565b91505f8203612a3f57612a3e61295b565b5b600182039050919050565b5f612a548261212b565b9150612a5f8361212b565b9250828203905081811115612a7757612a7661295b565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612ad7602a8361202d565b9150612ae282612a7d565b604082019050919050565b5f6020820190508181035f830152612b0481612acb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b97816120f0565b82525050565b5f612ba88383612b8e565b60208301905092915050565b5f602082019050919050565b5f612bca82612b65565b612bd48185612b6f565b9350612bdf83612b7f565b805f5b83811015612c0f578151612bf68882612b9d565b9750612c0183612bb4565b925050600181019050612be2565b5085935050505092915050565b5f60a082019050612c2f5f8301886121cf565b612c3c60208301876124f5565b8181036040830152612c4e8186612bc0565b9050612c5d6060830185612326565b612c6a60808301846121cf565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cab8261212b565b9150612cb68361212b565b925082612cc657612cc5612c74565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d05601b8361202d565b9150612d1082612cd1565b602082019050919050565b5f6020820190508181035f830152612d3281612cf9565b9050919050565b5f612d438261212b565b9150612d4e8361212b565b9250828202612d5c8161212b565b91508282048414831517612d7357612d7261295b565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd460218361202d565b9150612ddf82612d7a565b604082019050919050565b5f6020820190508181035f830152612e0181612dc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4254cc3186616d0511bea0cb8515a421e540917e5ade86dd745bff0b3f9d80164736f6c63430008160033

Deployed Bytecode Sourcemap

4092:10217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5939:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6890:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6216:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7059:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6125:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6319:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7989:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10165:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12424:193;;;;;;;;;;;;;:::i;:::-;;6418:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3173:148;;;;;;;;;;;;;:::i;:::-;;10039:118;;;;;;;;;;;;;:::i;:::-;;2959:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6030:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6564:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12222:194;;;;;;;;;;;;;:::i;:::-;;10382:771;;;;;;;;;;;;;:::i;:::-;;6739:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5939:83;5976:13;6009:5;;;;;;;;;;;;;;;;;6002:12;;5939:83;:::o;6890:161::-;6965:4;6982:39;6991:12;:10;:12::i;:::-;7005:7;7014:6;6982:8;:39::i;:::-;7039:4;7032:11;;6890:161;;;;:::o;6216:95::-;6269:7;4546:17;6289:14;;6216:95;:::o;7059:313::-;7157:4;7174:36;7184:6;7192:9;7203:6;7174:9;:36::i;:::-;7221:121;7230:6;7238:12;:10;:12::i;:::-;7252:89;7290:6;7252:89;;;;;;;;;;;;;;;;;:11;:19;7264:6;7252:19;;;;;;;;;;;;;;;:33;7272:12;:10;:12::i;:::-;7252:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7221:8;:121::i;:::-;7360:4;7353:11;;7059:313;;;;;:::o;6125:83::-;6166:5;5028:1;6184:16;;6125:83;:::o;6319:91::-;6368:7;4546:17;6388:14;;6319:91;:::o;7989:103::-;3096:12;:10;:12::i;:::-;3086:22;;:6;;;;;;;;;;:22;;;3078:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8079:5:::1;8061:15;;:23;;;;;;;;;;;;;;;;;;7989:103:::0;:::o;10165:99::-;3096:12;:10;:12::i;:::-;3086:22;;:6;;;;;;;;;;:22;;;3078:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10249:6:::1;10234:11;:22;;;;10165:99:::0;:::o;12424:193::-;12490:14;;;;;;;;;;;12474:30;;:12;:10;:12::i;:::-;:30;;;12466:39;;;;;;12516:26;12545:21;12516:50;;12577:32;12590:18;12577:12;:32::i;:::-;12455:162;12424:193::o;6418:138::-;6484:7;6511:37;6531:7;:16;6539:7;6531:16;;;;;;;;;;;;;;;;6511:19;:37::i;:::-;6504:44;;6418:138;;;:::o;3173:148::-;3096:12;:10;:12::i;:::-;3086:22;;:6;;;;;;;;;;:22;;;3078:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3280:1:::1;3243:40;;3264:6;::::0;::::1;;;;;;;;3243:40;;;;;;;;;;;;3311:1;3294:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3173:148::o:0;10039:118::-;3096:12;:10;:12::i;:::-;3086:22;;:6;;;;;;;;;;:22;;;3078:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:17:::1;10092:12;:22;;;;4546:17;10125:14;:24;;;;10039:118::o:0;2959:79::-;2997:7;3024:6;;;;;;;;;;;3017:13;;2959:79;:::o;6030:87::-;6069:13;6102:7;;;;;;;;;;;;;;;;;6095:14;;6030:87;:::o;6564:167::-;6642:4;6659:42;6669:12;:10;:12::i;:::-;6683:9;6694:6;6659:9;:42::i;:::-;6719:4;6712:11;;6564:167;;;;:::o;12222:194::-;12288:14;;;;;;;;;;;12272:30;;:12;:10;:12::i;:::-;:30;;;12264:39;;;;;;12314:23;12340:24;12358:4;12340:9;:24::i;:::-;12314:50;;12375:33;12392:15;12375:16;:33::i;:::-;12253:163;12222:194::o;10382:771::-;3096:12;:10;:12::i;:::-;3086:22;;:6;;;;;;;;;;:22;;;3078:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10446:11:::1;;;;;;;;;;;10445:12;10437:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10495:35;10552:42;10495:100;;10624:16;10606:15;;:34;;;;;;;;;;;;;;;;;;10651:58;10668:4;10683:15;;;;;;;;;;;4546:17;10651:8;:58::i;:::-;10754:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10736:56;;;10801:4;10808:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10736:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10720:13;;:112;;;;;;;;;;;;;;;;;;10843:15;;;;;;;;;;;:31;;;10882:21;10913:4;10919:24;10937:4;10919:9;:24::i;:::-;10944:1;10946::::0;10948:7:::1;:5;:7::i;:::-;10956:15;10843:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10997:4;10983:11;;:18;;;;;;;;;;;;;;;;;;11030:4;11012:15;;:22;;;;;;;;;;;;;;;;;;11059:4;11045:11;;:18;;;;;;;;;;;;;;;;;;11081:13;;;;;;;;;;;11074:29;;;11112:15;;;;;;;;;;;11130:14;11074:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10426:727;10382:771::o:0;6739:143::-;6820:7;6847:11;:18;6859:5;6847:18;;;;;;;;;;;;;;;:27;6866:7;6847:27;;;;;;;;;;;;;;;;6840:34;;6739:143;;;;:::o;677:98::-;730:7;757:10;750:17;;677:98;:::o;7646:335::-;7756:1;7739:19;;:5;:19;;;7731:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7837:1;7818:21;;:7;:21;;;7810:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7919:6;7889:11;:18;7901:5;7889:18;;;;;;;;;;;;;;;:27;7908:7;7889:27;;;;;;;;;;;;;;;:36;;;;7957:7;7941:32;;7950:5;7941:32;;;7966:6;7941:32;;;;;;:::i;:::-;;;;;;;;7646:335;;;:::o;8102:1438::-;8206:1;8190:18;;:4;:18;;;8182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8283:1;8269:16;;:2;:16;;;8261:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8353:1;8344:6;:10;8336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8427:7;:5;:7::i;:::-;8419:15;;:4;:15;;;;:32;;;;;8444:7;:5;:7::i;:::-;8438:13;;:2;:13;;;;8419:32;8415:1075;;;8480:1;8468:9;:13;;;;8530:1;8509:19;;:22;8508:46;;8543:11;;8508:46;;;8533:9;;8508:46;8496:9;:58;;;;8581:13;;;;;;;;;;;8573:21;;:4;:21;;;:55;;;;;8612:15;;;;;;;;;;;8598:30;;:2;:30;;;;8573:55;:83;;;;;8634:18;:22;8653:2;8634:22;;;;;;;;;;;;;;;;;;;;;;;;;8632:24;8573:83;:102;;;;;8660:15;;;;;;;;;;;8573:102;8569:412;;;8743:12;;8733:6;:22;;8725:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8838:14;;8828:6;8812:13;8822:2;8812:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8804:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8925:1;8905:19;;:21;8902:49;;;8928:19;;:21;;;;;;;;;:::i;:::-;;;;;;8902:49;8569:412;8997:28;9028:24;9046:4;9028:9;:24::i;:::-;8997:55;;9072:6;;;;;;;;;;;9071:7;:32;;;;;9090:13;;;;;;;;;;;9082:21;;:4;:21;;;;9071:32;:47;;;;;9107:11;;;;;;;;;;;9071:47;:73;;;;;9143:1;9122:20;:22;9071:73;9067:344;;;9165:38;9182:20;9165:16;:38::i;:::-;9222:26;9251:21;9222:50;;9315:1;9294:18;:22;9291:105;;;9341:35;9354:21;9341:12;:35::i;:::-;9291:105;9146:265;9067:344;8453:969;8415:1075;;;9451:1;9439:9;:13;;;;9477:1;9465:9;:13;;;;8415:1075;9502:30;9517:4;9522:2;9525:6;9502:14;:30::i;:::-;8102:1438;;;:::o;1814:190::-;1900:7;1933:1;1928;:6;;1936:12;1920:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1960:9;1976:1;1972;:5;;;;:::i;:::-;1960:17;;1995:1;1988:8;;;1814:190;;;;;:::o;10278:96::-;10335:14;;;;;;;;;;;:23;;:31;10359:6;10335:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10278:96;:::o;7384:254::-;7451:7;7490;;7479;:18;;7471:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7555:19;7578:10;:8;:10::i;:::-;7555:33;;7606:24;7618:11;7606:7;:11;;:24;;;;:::i;:::-;7599:31;;;7384:254;;;:::o;9548:483::-;5470:4;5461:6;;:13;;;;;;;;;;;;;;;;;;9626:21:::1;9664:1;9650:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9626:40;;9695:4;9677;9682:1;9677:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9721:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9711:4;9716:1;9711:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9754:62;9771:4;9786:15;;;;;;;;;;;9804:11;9754:8;:62::i;:::-;9827:15;;;;;;;;;;;:66;;;9908:11;9934:1;9950:4;9977;9997:15;9827:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9615:416;5506:5:::0;5497:6;;:14;;;;;;;;;;;;;;;;;;9548:483;:::o;11161:146::-;11255:44;11273:6;11281:9;11292:6;11255:17;:44::i;:::-;11161:146;;;:::o;13879:163::-;13920:7;13941:15;13958;13977:19;:17;:19::i;:::-;13940:56;;;;14014:20;14026:7;14014;:11;;:20;;;;:::i;:::-;14007:27;;;;13879:163;:::o;2266:132::-;2324:7;2351:39;2355:1;2358;2351:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2344:46;;2266:132;;;;:::o;11315:487::-;11414:15;11431:23;11456:12;11470:23;11495:12;11509:13;11526:19;11537:7;11526:10;:19::i;:::-;11413:132;;;;;;;;;;;;11574:28;11594:7;11574;:15;11582:6;11574:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11556:7;:15;11564:6;11556:15;;;;;;;;;;;;;;;:46;;;;11634:39;11657:15;11634:7;:18;11642:9;11634:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11613:7;:18;11621:9;11613:18;;;;;;;;;;;;;;;:60;;;;11684:16;11694:5;11684:9;:16::i;:::-;11711:23;11723:4;11729;11711:11;:23::i;:::-;11767:9;11750:44;;11759:6;11750:44;;;11778:15;11750:44;;;;;;:::i;:::-;;;;;;;;11402:400;;;;;;11315:487;;;:::o;14050:256::-;14100:7;14109;14129:15;14147:7;;14129:25;;14165:15;4546:17;14165:25;;14215:20;4546:17;14215:7;;:11;;:20;;;;:::i;:::-;14205:7;:30;14201:61;;;14245:7;;4546:17;14237:25;;;;;;;;14201:61;14281:7;14290;14273:25;;;;;;14050:256;;;:::o;2406:189::-;2492:7;2524:1;2520;:5;2527:12;2512:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2551:9;2567:1;2563;:5;;;;:::i;:::-;2551:17;;2586:1;2579:8;;;2406:189;;;;;:::o;12627:471::-;12686:7;12695;12704;12713;12722;12731;12752:23;12777:12;12791:13;12808:42;12820:7;12829:9;;12840;;12808:11;:42::i;:::-;12751:99;;;;;;12861:19;12884:10;:8;:10::i;:::-;12861:33;;12906:15;12923:23;12948:12;12964:46;12976:7;12985:4;12991:5;12998:11;12964;:46::i;:::-;12905:105;;;;;;13029:7;13038:15;13055:4;13061:15;13078:4;13084:5;13021:69;;;;;;;;;;;;;;;;;;;12627:471;;;;;;;:::o;1670:136::-;1728:7;1755:43;1759:1;1762;1755:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1748:50;;1670:136;;;;:::o;1483:179::-;1541:7;1561:9;1577:1;1573;:5;;;;:::i;:::-;1561:17;;1602:1;1597;:6;;1589:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1653:1;1646:8;;;1483:179;;;;:::o;11810:212::-;11863:19;11886:10;:8;:10::i;:::-;11863:33;;11907:13;11923:22;11933:11;11923:5;:9;;:22;;;;:::i;:::-;11907:38;;11981:33;12008:5;11981:7;:22;11997:4;11981:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11956:7;:22;11972:4;11956:22;;;;;;;;;;;;;;;:58;;;;11852:170;;11810:212;:::o;12030:147::-;12108:17;12120:4;12108:7;;:11;;:17;;;;:::i;:::-;12098:7;:27;;;;12149:20;12164:4;12149:10;;:14;;:20;;;;:::i;:::-;12136:10;:33;;;;12030:147;;:::o;13106:351::-;13199:7;13208;13217;13237:12;13252:28;13276:3;13252:19;13264:6;13252:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13237:43;;13291:13;13307:29;13332:3;13307:20;13319:7;13307;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13291:45;;13347:23;13373:28;13395:5;13373:17;13385:4;13373:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13347:54;;13420:15;13437:4;13443:5;13412:37;;;;;;;;;13106:351;;;;;;;:::o;13465:409::-;13575:7;13584;13593;13613:15;13631:24;13643:11;13631:7;:11;;:24;;;;:::i;:::-;13613:42;;13666:12;13681:21;13690:11;13681:4;:8;;:21;;;;:::i;:::-;13666:36;;13713:13;13729:22;13739:11;13729:5;:9;;:22;;;;:::i;:::-;13713:38;;13762:23;13788:28;13810:5;13788:17;13800:4;13788:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13762:54;;13835:7;13844:15;13861:4;13827:39;;;;;;;;;;13465:409;;;;;;;;:::o;2012:246::-;2070:7;2099:1;2094;:6;2090:47;;2124:1;2117:8;;;;2090:47;2147:9;2163:1;2159;:5;;;;:::i;:::-;2147:17;;2192:1;2187;2183;:5;;;;:::i;:::-;:10;2175:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2249:1;2242:8;;;2012:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:118::-;6200:24;6218:5;6200:24;:::i;:::-;6195:3;6188:37;6113:118;;:::o;6237:222::-;6330:4;6368:2;6357:9;6353:18;6345:26;;6381:71;6449:1;6438:9;6434:17;6425:6;6381:71;:::i;:::-;6237:222;;;;:::o;6465:474::-;6533:6;6541;6590:2;6578:9;6569:7;6565:23;6561:32;6558:119;;;6596:79;;:::i;:::-;6558:119;6716:1;6741:53;6786:7;6777:6;6766:9;6762:22;6741:53;:::i;:::-;6731:63;;6687:117;6843:2;6869:53;6914:7;6905:6;6894:9;6890:22;6869:53;:::i;:::-;6859:63;;6814:118;6465:474;;;;;:::o;6945:182::-;7085:34;7081:1;7073:6;7069:14;7062:58;6945:182;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7133:366;;;:::o;7505:419::-;7671:4;7709:2;7698:9;7694:18;7686:26;;7758:9;7752:4;7748:20;7744:1;7733:9;7729:17;7722:47;7786:131;7912:4;7786:131;:::i;:::-;7778:139;;7505:419;;;:::o;7930:173::-;8070:25;8066:1;8058:6;8054:14;8047:49;7930:173;:::o;8109:366::-;8251:3;8272:67;8336:2;8331:3;8272:67;:::i;:::-;8265:74;;8348:93;8437:3;8348:93;:::i;:::-;8466:2;8461:3;8457:12;8450:19;;8109:366;;;:::o;8481:419::-;8647:4;8685:2;8674:9;8670:18;8662:26;;8734:9;8728:4;8724:20;8720:1;8709:9;8705:17;8698:47;8762:131;8888:4;8762:131;:::i;:::-;8754:139;;8481:419;;;:::o;8906:143::-;8963:5;8994:6;8988:13;8979:22;;9010:33;9037:5;9010:33;:::i;:::-;8906:143;;;;:::o;9055:351::-;9125:6;9174:2;9162:9;9153:7;9149:23;9145:32;9142:119;;;9180:79;;:::i;:::-;9142:119;9300:1;9325:64;9381:7;9372:6;9361:9;9357:22;9325:64;:::i;:::-;9315:74;;9271:128;9055:351;;;;:::o;9412:332::-;9533:4;9571:2;9560:9;9556:18;9548:26;;9584:71;9652:1;9641:9;9637:17;9628:6;9584:71;:::i;:::-;9665:72;9733:2;9722:9;9718:18;9709:6;9665:72;:::i;:::-;9412:332;;;;;:::o;9750:85::-;9795:7;9824:5;9813:16;;9750:85;;;:::o;9841:60::-;9869:3;9890:5;9883:12;;9841:60;;;:::o;9907:158::-;9965:9;9998:61;10016:42;10025:32;10051:5;10025:32;:::i;:::-;10016:42;:::i;:::-;9998:61;:::i;:::-;9985:74;;9907:158;;;:::o;10071:147::-;10166:45;10205:5;10166:45;:::i;:::-;10161:3;10154:58;10071:147;;:::o;10224:807::-;10473:4;10511:3;10500:9;10496:19;10488:27;;10525:71;10593:1;10582:9;10578:17;10569:6;10525:71;:::i;:::-;10606:72;10674:2;10663:9;10659:18;10650:6;10606:72;:::i;:::-;10688:80;10764:2;10753:9;10749:18;10740:6;10688:80;:::i;:::-;10778;10854:2;10843:9;10839:18;10830:6;10778:80;:::i;:::-;10868:73;10936:3;10925:9;10921:19;10912:6;10868:73;:::i;:::-;10951;11019:3;11008:9;11004:19;10995:6;10951:73;:::i;:::-;10224:807;;;;;;;;;:::o;11037:143::-;11094:5;11125:6;11119:13;11110:22;;11141:33;11168:5;11141:33;:::i;:::-;11037:143;;;;:::o;11186:663::-;11274:6;11282;11290;11339:2;11327:9;11318:7;11314:23;11310:32;11307:119;;;11345:79;;:::i;:::-;11307:119;11465:1;11490:64;11546:7;11537:6;11526:9;11522:22;11490:64;:::i;:::-;11480:74;;11436:128;11603:2;11629:64;11685:7;11676:6;11665:9;11661:22;11629:64;:::i;:::-;11619:74;;11574:129;11742:2;11768:64;11824:7;11815:6;11804:9;11800:22;11768:64;:::i;:::-;11758:74;;11713:129;11186:663;;;;;:::o;11855:332::-;11976:4;12014:2;12003:9;11999:18;11991:26;;12027:71;12095:1;12084:9;12080:17;12071:6;12027:71;:::i;:::-;12108:72;12176:2;12165:9;12161:18;12152:6;12108:72;:::i;:::-;11855:332;;;;;:::o;12193:137::-;12247:5;12278:6;12272:13;12263:22;;12294:30;12318:5;12294:30;:::i;:::-;12193:137;;;;:::o;12336:345::-;12403:6;12452:2;12440:9;12431:7;12427:23;12423:32;12420:119;;;12458:79;;:::i;:::-;12420:119;12578:1;12603:61;12656:7;12647:6;12636:9;12632:22;12603:61;:::i;:::-;12593:71;;12549:125;12336:345;;;;:::o;12687:223::-;12827:34;12823:1;12815:6;12811:14;12804:58;12896:6;12891:2;12883:6;12879:15;12872:31;12687:223;:::o;12916:366::-;13058:3;13079:67;13143:2;13138:3;13079:67;:::i;:::-;13072:74;;13155:93;13244:3;13155:93;:::i;:::-;13273:2;13268:3;13264:12;13257:19;;12916:366;;;:::o;13288:419::-;13454:4;13492:2;13481:9;13477:18;13469:26;;13541:9;13535:4;13531:20;13527:1;13516:9;13512:17;13505:47;13569:131;13695:4;13569:131;:::i;:::-;13561:139;;13288:419;;;:::o;13713:221::-;13853:34;13849:1;13841:6;13837:14;13830:58;13922:4;13917:2;13909:6;13905:15;13898:29;13713:221;:::o;13940:366::-;14082:3;14103:67;14167:2;14162:3;14103:67;:::i;:::-;14096:74;;14179:93;14268:3;14179:93;:::i;:::-;14297:2;14292:3;14288:12;14281:19;;13940:366;;;:::o;14312:419::-;14478:4;14516:2;14505:9;14501:18;14493:26;;14565:9;14559:4;14555:20;14551:1;14540:9;14536:17;14529:47;14593:131;14719:4;14593:131;:::i;:::-;14585:139;;14312:419;;;:::o;14737:224::-;14877:34;14873:1;14865:6;14861:14;14854:58;14946:7;14941:2;14933:6;14929:15;14922:32;14737:224;:::o;14967:366::-;15109:3;15130:67;15194:2;15189:3;15130:67;:::i;:::-;15123:74;;15206:93;15295:3;15206:93;:::i;:::-;15324:2;15319:3;15315:12;15308:19;;14967:366;;;:::o;15339:419::-;15505:4;15543:2;15532:9;15528:18;15520:26;;15592:9;15586:4;15582:20;15578:1;15567:9;15563:17;15556:47;15620:131;15746:4;15620:131;:::i;:::-;15612:139;;15339:419;;;:::o;15764:222::-;15904:34;15900:1;15892:6;15888:14;15881:58;15973:5;15968:2;15960:6;15956:15;15949:30;15764:222;:::o;15992:366::-;16134:3;16155:67;16219:2;16214:3;16155:67;:::i;:::-;16148:74;;16231:93;16320:3;16231:93;:::i;:::-;16349:2;16344:3;16340:12;16333:19;;15992:366;;;:::o;16364:419::-;16530:4;16568:2;16557:9;16553:18;16545:26;;16617:9;16611:4;16607:20;16603:1;16592:9;16588:17;16581:47;16645:131;16771:4;16645:131;:::i;:::-;16637:139;;16364:419;;;:::o;16789:228::-;16929:34;16925:1;16917:6;16913:14;16906:58;16998:11;16993:2;16985:6;16981:15;16974:36;16789:228;:::o;17023:366::-;17165:3;17186:67;17250:2;17245:3;17186:67;:::i;:::-;17179:74;;17262:93;17351:3;17262:93;:::i;:::-;17380:2;17375:3;17371:12;17364:19;;17023:366;;;:::o;17395:419::-;17561:4;17599:2;17588:9;17584:18;17576:26;;17648:9;17642:4;17638:20;17634:1;17623:9;17619:17;17612:47;17676:131;17802:4;17676:131;:::i;:::-;17668:139;;17395:419;;;:::o;17820:175::-;17960:27;17956:1;17948:6;17944:14;17937:51;17820:175;:::o;18001:366::-;18143:3;18164:67;18228:2;18223:3;18164:67;:::i;:::-;18157:74;;18240:93;18329:3;18240:93;:::i;:::-;18358:2;18353:3;18349:12;18342:19;;18001:366;;;:::o;18373:419::-;18539:4;18577:2;18566:9;18562:18;18554:26;;18626:9;18620:4;18616:20;18612:1;18601:9;18597:17;18590:47;18654:131;18780:4;18654:131;:::i;:::-;18646:139;;18373:419;;;:::o;18798:180::-;18846:77;18843:1;18836:88;18943:4;18940:1;18933:15;18967:4;18964:1;18957:15;18984:191;19024:3;19043:20;19061:1;19043:20;:::i;:::-;19038:25;;19077:20;19095:1;19077:20;:::i;:::-;19072:25;;19120:1;19117;19113:9;19106:16;;19141:3;19138:1;19135:10;19132:36;;;19148:18;;:::i;:::-;19132:36;18984:191;;;;:::o;19181:176::-;19321:28;19317:1;19309:6;19305:14;19298:52;19181:176;:::o;19363:366::-;19505:3;19526:67;19590:2;19585:3;19526:67;:::i;:::-;19519:74;;19602:93;19691:3;19602:93;:::i;:::-;19720:2;19715:3;19711:12;19704:19;;19363:366;;;:::o;19735:419::-;19901:4;19939:2;19928:9;19924:18;19916:26;;19988:9;19982:4;19978:20;19974:1;19963:9;19959:17;19952:47;20016:131;20142:4;20016:131;:::i;:::-;20008:139;;19735:419;;;:::o;20160:171::-;20199:3;20222:24;20240:5;20222:24;:::i;:::-;20213:33;;20268:4;20261:5;20258:15;20255:41;;20276:18;;:::i;:::-;20255:41;20323:1;20316:5;20312:13;20305:20;;20160:171;;;:::o;20337:194::-;20377:4;20397:20;20415:1;20397:20;:::i;:::-;20392:25;;20431:20;20449:1;20431:20;:::i;:::-;20426:25;;20475:1;20472;20468:9;20460:17;;20499:1;20493:4;20490:11;20487:37;;;20504:18;;:::i;:::-;20487:37;20337:194;;;;:::o;20537:229::-;20677:34;20673:1;20665:6;20661:14;20654:58;20746:12;20741:2;20733:6;20729:15;20722:37;20537:229;:::o;20772:366::-;20914:3;20935:67;20999:2;20994:3;20935:67;:::i;:::-;20928:74;;21011:93;21100:3;21011:93;:::i;:::-;21129:2;21124:3;21120:12;21113:19;;20772:366;;;:::o;21144:419::-;21310:4;21348:2;21337:9;21333:18;21325:26;;21397:9;21391:4;21387:20;21383:1;21372:9;21368:17;21361:47;21425:131;21551:4;21425:131;:::i;:::-;21417:139;;21144:419;;;:::o;21569:180::-;21617:77;21614:1;21607:88;21714:4;21711:1;21704:15;21738:4;21735:1;21728:15;21755:180;21803:77;21800:1;21793:88;21900:4;21897:1;21890:15;21924:4;21921:1;21914:15;21941:114;22008:6;22042:5;22036:12;22026:22;;21941:114;;;:::o;22061:184::-;22160:11;22194:6;22189:3;22182:19;22234:4;22229:3;22225:14;22210:29;;22061:184;;;;:::o;22251:132::-;22318:4;22341:3;22333:11;;22371:4;22366:3;22362:14;22354:22;;22251:132;;;:::o;22389:108::-;22466:24;22484:5;22466:24;:::i;:::-;22461:3;22454:37;22389:108;;:::o;22503:179::-;22572:10;22593:46;22635:3;22627:6;22593:46;:::i;:::-;22671:4;22666:3;22662:14;22648:28;;22503:179;;;;:::o;22688:113::-;22758:4;22790;22785:3;22781:14;22773:22;;22688:113;;;:::o;22837:732::-;22956:3;22985:54;23033:5;22985:54;:::i;:::-;23055:86;23134:6;23129:3;23055:86;:::i;:::-;23048:93;;23165:56;23215:5;23165:56;:::i;:::-;23244:7;23275:1;23260:284;23285:6;23282:1;23279:13;23260:284;;;23361:6;23355:13;23388:63;23447:3;23432:13;23388:63;:::i;:::-;23381:70;;23474:60;23527:6;23474:60;:::i;:::-;23464:70;;23320:224;23307:1;23304;23300:9;23295:14;;23260:284;;;23264:14;23560:3;23553:10;;22961:608;;;22837:732;;;;:::o;23575:831::-;23838:4;23876:3;23865:9;23861:19;23853:27;;23890:71;23958:1;23947:9;23943:17;23934:6;23890:71;:::i;:::-;23971:80;24047:2;24036:9;24032:18;24023:6;23971:80;:::i;:::-;24098:9;24092:4;24088:20;24083:2;24072:9;24068:18;24061:48;24126:108;24229:4;24220:6;24126:108;:::i;:::-;24118:116;;24244:72;24312:2;24301:9;24297:18;24288:6;24244:72;:::i;:::-;24326:73;24394:3;24383:9;24379:19;24370:6;24326:73;:::i;:::-;23575:831;;;;;;;;:::o;24412:180::-;24460:77;24457:1;24450:88;24557:4;24554:1;24547:15;24581:4;24578:1;24571:15;24598:185;24638:1;24655:20;24673:1;24655:20;:::i;:::-;24650:25;;24689:20;24707:1;24689:20;:::i;:::-;24684:25;;24728:1;24718:35;;24733:18;;:::i;:::-;24718:35;24775:1;24772;24768:9;24763:14;;24598:185;;;;:::o;24789:177::-;24929:29;24925:1;24917:6;24913:14;24906:53;24789:177;:::o;24972:366::-;25114:3;25135:67;25199:2;25194:3;25135:67;:::i;:::-;25128:74;;25211:93;25300:3;25211:93;:::i;:::-;25329:2;25324:3;25320:12;25313:19;;24972:366;;;:::o;25344:419::-;25510:4;25548:2;25537:9;25533:18;25525:26;;25597:9;25591:4;25587:20;25583:1;25572:9;25568:17;25561:47;25625:131;25751:4;25625:131;:::i;:::-;25617:139;;25344:419;;;:::o;25769:410::-;25809:7;25832:20;25850:1;25832:20;:::i;:::-;25827:25;;25866:20;25884:1;25866:20;:::i;:::-;25861:25;;25921:1;25918;25914:9;25943:30;25961:11;25943:30;:::i;:::-;25932:41;;26122:1;26113:7;26109:15;26106:1;26103:22;26083:1;26076:9;26056:83;26033:139;;26152:18;;:::i;:::-;26033:139;25817:362;25769:410;;;;:::o;26185:220::-;26325:34;26321:1;26313:6;26309:14;26302:58;26394:3;26389:2;26381:6;26377:15;26370:28;26185:220;:::o;26411:366::-;26553:3;26574:67;26638:2;26633:3;26574:67;:::i;:::-;26567:74;;26650:93;26739:3;26650:93;:::i;:::-;26768:2;26763:3;26759:12;26752:19;;26411:366;;;:::o;26783:419::-;26949:4;26987:2;26976:9;26972:18;26964:26;;27036:9;27030:4;27026:20;27022:1;27011:9;27007:17;27000:47;27064:131;27190:4;27064:131;:::i;:::-;27056:139;;26783:419;;;:::o

Swarm Source

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