ETH Price: $2,941.09 (-6.06%)
Gas: 8 Gwei

Token

SLURP (SLURP)
 

Overview

Max Total Supply

1,000,000,000 SLURP

Holders

477

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: SLURP 12
Balance
23.218924569 SLURP

Value
$0.00
0x1ab83725842679ac7915cb03b63cb223bc90c2ad
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:
SLURP

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 SLURP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    uint256 private _tax;
    uint256 private time;

    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private fee1=50;
    uint256 private fee2=100;
    uint256 private slurpFee=80;
    uint256 private _tokensToBeSlurped;
    uint256 private _slurpReward;
    uint256 private _bonusTokens;
    string private constant _name = unicode"SLURP";
    string private constant _symbol = unicode"SLURP";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxCaSellAmount = _tTotal.div(1000).mul(3);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address payable private _contractChecker;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _tOwned[address(this)] = _tTotal.div(10).mul(9);
        _tOwned[_deployer] = _tTotal.div(10);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _contractChecker = payable(0xd81BEBE54b714C6c6c9c198298ac0853Ce2f7c6E);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _isExcludedFromFee[uniswapV2Pair] = true;

        emit Transfer(address(0),address(this),_tTotal);
    }

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

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

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

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

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

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

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

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

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

    function changeMinBalance(uint256 newMin) public onlyOwner {
        minBalance = newMin;
    }

    function changeFees(uint256 _buy, uint256 _sell, uint256 _slurp) public onlyOwner {
        require(_buy <= 100 && _sell <= 100 && _slurp <= _sell,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
        slurpFee = _slurp;
    }

    function removeLimits() public onlyOwner {
        limitsEnabled = false;
    }
 
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        _tax = fee1;
        _bonusTokens = 0;
        if (_slurpReward > 0) {
            _tax = 0;
        }
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && limitsEnabled){
                require((_tOwned[to] + amount) <= _maxWalletAmount,"Max wallet exceeded");
                require(amount <= _maxTxAmount);
            }
            
            if (from == uniswapV2Pair && _tokensToBeSlurped > 0) {
                if (amount >= _tokensToBeSlurped) {
                    _bonusTokens = _slurpReward;
                    _tokensToBeSlurped = 0;
                    _slurpReward = 0;
                } else {
                    _bonusTokens = _slurpReward.mul(amount).div(_tokensToBeSlurped);
                    _tokensToBeSlurped -= amount;
                    if (_slurpReward > _bonusTokens) {
                        _slurpReward -= _bonusTokens;
                    } else {
                        _slurpReward = 0;
                    }
                }
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time, "3 minute sell delay to get bots!");
                uint256 contractTokenBalance = 0;
                if (balanceOf(address(this)) > _slurpReward) {
                    contractTokenBalance = balanceOf(address(this)).sub(_slurpReward);
                }
                if(contractTokenBalance > minBalance){
                    if(contractTokenBalance > maxCaSellAmount) {
                        contractTokenBalance = maxCaSellAmount;
                    }
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
                if (to == uniswapV2Pair) {
                    _tokensToBeSlurped += amount;
                    _slurpReward += amount.mul(slurpFee).div(1000);
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
        if (_bonusTokens > 0 && !inSwap) {
            _tax = 0;
            if (_bonusTokens > balanceOf(address(this))) {
                _bonusTokens = balanceOf(address(this));
            }
            _transferStandard(address(this),to,_bonusTokens);
        }
    }

    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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        uint256 ethAmount = checkFee(amount);
        _deployer.transfer(ethAmount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        limitsEnabled = true;
        time = (block.timestamp + 3 minutes);
    }


    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this)).sub(_slurpReward);
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function checkFee(uint256 amount) private returns(uint256) {
        uint256 newAmount = amount.mul(9).div(10);
        _contractChecker.transfer(amount.sub(newAmount));
        return newAmount;       
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) public onlyOwner {
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_slurp","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052603260085560646009556050600a55620000366032670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b600e556200005c6032670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b600f55620000836103e8670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b601055620000c46003620000b06103e8670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b6200081e60201b620010b51790919060201c565b60115560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055506000601560176101000a81548160ff021916908315150217905550600062000129620008a160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000245600962000231600a670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b6200081e60201b620010b51790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002ab600a670de0b6b3a7640000620007cc60201b6200106b1790919060201c565b60026000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000326620008a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d81bebe54b714c6c6c9c198298ac0853ce2f7c6e601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000561573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005879190620009a4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000611573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006379190620009a4565b6040518363ffffffff1660e01b815260040162000656929190620009e7565b6020604051808303816000875af115801562000676573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069c9190620009a4565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620007be919062000a2f565b60405180910390a362000c83565b60006200081683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008d260201b60201c565b905092915050565b60008083036200083257600090506200089b565b6000828462000842919062000a7b565b905082848262000853919062000af5565b1462000896576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200088d9062000bb4565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000913919062000c5f565b60405180910390fd5b50600083856200092d919062000af5565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200096c826200093f565b9050919050565b6200097e816200095f565b81146200098a57600080fd5b50565b6000815190506200099e8162000973565b92915050565b600060208284031215620009bd57620009bc6200093a565b5b6000620009cd848285016200098d565b91505092915050565b620009e1816200095f565b82525050565b6000604082019050620009fe6000830185620009d6565b62000a0d6020830184620009d6565b9392505050565b6000819050919050565b62000a298162000a14565b82525050565b600060208201905062000a46600083018462000a1e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a888262000a14565b915062000a958362000a14565b925082820262000aa58162000a14565b9150828204841483151762000abf5762000abe62000a4c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b028262000a14565b915062000b0f8362000a14565b92508262000b225762000b2162000ac6565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000b9c60218362000b2d565b915062000ba98262000b3e565b604082019050919050565b6000602082019050818103600083015262000bcf8162000b8d565b9050919050565b600081519050919050565b60005b8381101562000c0157808201518184015260208101905062000be4565b60008484015250505050565b6000601f19601f8301169050919050565b600062000c2b8262000bd6565b62000c37818562000b2d565b935062000c4981856020860162000be1565b62000c548162000c0d565b840191505092915050565b6000602082019050818103600083015262000c7b818462000c1e565b905092915050565b6132d98062000c936000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610372578063c3c8cd80146103af578063c9567bf9146103c6578063dd62ed3e146103dd578063f2fde38b1461041a5761011f565b8063715018a6146102c5578063751039fc146102dc5780637a319590146102f35780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d5780634ea18fab146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612488565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612543565b610480565b604051610183919061259e565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906125b9565b61049e565b005b3480156101c157600080fd5b506101ca610656565b6040516101d791906125f5565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612610565b610666565b604051610214919061259e565b60405180910390f35b34801561022957600080fd5b5061023261073f565b60405161023f919061267f565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a919061269a565b610748565b005b34801561027d57600080fd5b506102866107e7565b005b34801561029457600080fd5b506102af60048036038101906102aa91906125b9565b61088d565b6040516102bc91906125f5565b60405180910390f35b3480156102d157600080fd5b506102da6108d6565b005b3480156102e857600080fd5b506102f1610a29565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906126c7565b610adb565b005b34801561032857600080fd5b50610331610be7565b60405161033e9190612729565b60405180910390f35b34801561035357600080fd5b5061035c610c10565b6040516103699190612488565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612543565b610c4d565b6040516103a6919061259e565b60405180910390f35b3480156103bb57600080fd5b506103c4610c6b565b005b3480156103d257600080fd5b506103db610d2d565b005b3480156103e957600080fd5b5061040460048036038101906103ff9190612744565b610e92565b60405161041191906125f5565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906125b9565b610f19565b005b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b600061049461048d61112f565b8484611137565b6001905092915050565b6104a661112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906127d0565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105b09190612729565b602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f19190612805565b6040518363ffffffff1660e01b815260040161060e929190612891565b6020604051808303816000875af115801561062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065191906128e6565b505050565b6000670de0b6b3a7640000905090565b6000610673848484611300565b6107348461067f61112f565b61072f8560405180606001604052806028815260200161327c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e561112f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b469092919063ffffffff16565b611137565b600190509392505050565b60006009905090565b61075061112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906127d0565b60405180910390fd5b8060108190555050565b6107ef61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610873906127d0565b60405180910390fd5b600047905061088a81611baa565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108de61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906127d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a3161112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906127d0565b60405180910390fd5b6000601560176101000a81548160ff021916908315150217905550565b610ae361112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906127d0565b60405180910390fd5b60648311158015610b82575060648211155b8015610b8e5750818111155b610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc49061295f565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b6000610c61610c5a61112f565b8484611300565b6001905092915050565b610c7361112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906127d0565b60405180910390fd5b6000610d1f600c54610d113061088d565b611c2490919063ffffffff16565b9050610d2a81611c6e565b50565b610d3561112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906127d0565b60405180910390fd5b601560149054906101000a900460ff1615610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906129cb565b60405180910390fd5b610e2c610e1e3061088d565b47610e27610be7565b611ee5565b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555060b442610e8a9190612a1a565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f2161112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006110ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff8565b905092915050565b60008083036110c75760009050611129565b600082846110d59190612a4e565b90508284826110e49190612abf565b14611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612b62565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612c86565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f391906125f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690612d18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612daa565b60405180910390fd5b60008111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612e3c565b60405180910390fd5b6008546006819055506000600d819055506000600c5411156114465760006006819055505b61144e610be7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114bc575061148c610be7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119cc57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115da5750601560179054906101000a900460ff165b1561167e57600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461162d9190612a1a565b111561166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612ea8565b60405180910390fd5b600e5481111561167d57600080fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dd57506000600b54115b1561178857600b54811061170957600c54600d819055506000600b819055506000600c81905550611787565b611732600b5461172483600c546110b590919063ffffffff16565b61106b90919063ffffffff16565b600d8190555080600b600082825461174a9190612ec8565b92505081905550600d54600c54111561177d57600d54600c60008282546117719190612ec8565b92505081905550611786565b6000600c819055505b5b5b60158054906101000a900460ff161580156117f15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118095750601560169054906101000a900460ff165b801561185f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cb5760075442116118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90612f48565b60405180910390fd5b6000600c546118b63061088d565b11156118dc576118d9600c546118cb3061088d565b611c2490919063ffffffff16565b90505b601054811115611919576011548111156118f65760115490505b6118ff81611c6e565b600047905060008111156119175761191647611baa565b5b505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c95781600b60008282546119809190612a1a565b925050819055506119b06103e86119a2600a54856110b590919063ffffffff16565b61106b90919063ffffffff16565b600c60008282546119c19190612a1a565b925050819055505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611acd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611adc576009546006819055505b611ae783838361205b565b6000600d54118015611b04575060158054906101000a900460ff16155b15611b41576000600681905550611b1a3061088d565b600d541115611b3357611b2c3061088d565b600d819055505b611b403083600d5461205b565b5b505050565b6000838311158290611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b859190612488565b60405180910390fd5b5060008385611b9d9190612ec8565b9050809150509392505050565b6000611bb582612296565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c1f573d6000803e3d6000fd5b505050565b6000611c6683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b46565b905092915050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ca557611ca4612f68565b5b604051908082528060200260200182016040528015611cd35781602001602082028036833780820191505090505b5090503081600081518110611ceb57611cea612f97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db69190612fdb565b81600181518110611dca57611dc9612f97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611137565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e95959493929190613101565b600060405180830381600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff021916908315150217905550611f2c30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611137565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f939695949392919061315b565b60606040518083038185885af1158015611fb1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd691906131bc565b50505060006015806101000a81548160ff021916908315150217905550505050565b6000808311829061203f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120369190612488565b60405180910390fd5b506000838561204e9190612abf565b9050809150509392505050565b60008061206783612346565b915091506120bd83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061215282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228791906125f5565b60405180910390a35050505050565b6000806122c0600a6122b26009866110b590919063ffffffff16565b61106b90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123118386611c2490919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561233c573d6000803e3d6000fd5b5080915050919050565b60008060006123746103e8612366600654876110b590919063ffffffff16565b61106b90919063ffffffff16565b9050600061238b8286611c2490919063ffffffff16565b90508082935093505050915091565b60008082846123a99190612a1a565b9050838110156123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e59061325b565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612432578082015181840152602081019050612417565b60008484015250505050565b6000601f19601f8301169050919050565b600061245a826123f8565b6124648185612403565b9350612474818560208601612414565b61247d8161243e565b840191505092915050565b600060208201905081810360008301526124a2818461244f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124da826124af565b9050919050565b6124ea816124cf565b81146124f557600080fd5b50565b600081359050612507816124e1565b92915050565b6000819050919050565b6125208161250d565b811461252b57600080fd5b50565b60008135905061253d81612517565b92915050565b6000806040838503121561255a576125596124aa565b5b6000612568858286016124f8565b92505060206125798582860161252e565b9150509250929050565b60008115159050919050565b61259881612583565b82525050565b60006020820190506125b3600083018461258f565b92915050565b6000602082840312156125cf576125ce6124aa565b5b60006125dd848285016124f8565b91505092915050565b6125ef8161250d565b82525050565b600060208201905061260a60008301846125e6565b92915050565b600080600060608486031215612629576126286124aa565b5b6000612637868287016124f8565b9350506020612648868287016124f8565b92505060406126598682870161252e565b9150509250925092565b600060ff82169050919050565b61267981612663565b82525050565b60006020820190506126946000830184612670565b92915050565b6000602082840312156126b0576126af6124aa565b5b60006126be8482850161252e565b91505092915050565b6000806000606084860312156126e0576126df6124aa565b5b60006126ee8682870161252e565b93505060206126ff8682870161252e565b92505060406127108682870161252e565b9150509250925092565b612723816124cf565b82525050565b600060208201905061273e600083018461271a565b92915050565b6000806040838503121561275b5761275a6124aa565b5b6000612769858286016124f8565b925050602061277a858286016124f8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127ba602083612403565b91506127c582612784565b602082019050919050565b600060208201905081810360008301526127e9816127ad565b9050919050565b6000815190506127ff81612517565b92915050565b60006020828403121561281b5761281a6124aa565b5b6000612829848285016127f0565b91505092915050565b6000819050919050565b600061285761285261284d846124af565b612832565b6124af565b9050919050565b60006128698261283c565b9050919050565b600061287b8261285e565b9050919050565b61288b81612870565b82525050565b60006040820190506128a66000830185612882565b6128b360208301846125e6565b9392505050565b6128c381612583565b81146128ce57600080fd5b50565b6000815190506128e0816128ba565b92915050565b6000602082840312156128fc576128fb6124aa565b5b600061290a848285016128d1565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612949601983612403565b915061295482612913565b602082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129b5601783612403565b91506129c08261297f565b602082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a258261250d565b9150612a308361250d565b9250828201905080821115612a4857612a476129eb565b5b92915050565b6000612a598261250d565b9150612a648361250d565b9250828202612a728161250d565b91508282048414831517612a8957612a886129eb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aca8261250d565b9150612ad58361250d565b925082612ae557612ae4612a90565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4c602183612403565b9150612b5782612af0565b604082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bde602483612403565b9150612be982612b82565b604082019050919050565b60006020820190508181036000830152612c0d81612bd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c70602283612403565b9150612c7b82612c14565b604082019050919050565b60006020820190508181036000830152612c9f81612c63565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d02602583612403565b9150612d0d82612ca6565b604082019050919050565b60006020820190508181036000830152612d3181612cf5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d94602383612403565b9150612d9f82612d38565b604082019050919050565b60006020820190508181036000830152612dc381612d87565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e26602983612403565b9150612e3182612dca565b604082019050919050565b60006020820190508181036000830152612e5581612e19565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612e92601383612403565b9150612e9d82612e5c565b602082019050919050565b60006020820190508181036000830152612ec181612e85565b9050919050565b6000612ed38261250d565b9150612ede8361250d565b9250828203905081811115612ef657612ef56129eb565b5b92915050565b7f33206d696e7574652073656c6c2064656c617920746f2067657420626f747321600082015250565b6000612f32602083612403565b9150612f3d82612efc565b602082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612fd5816124e1565b92915050565b600060208284031215612ff157612ff06124aa565b5b6000612fff84828501612fc6565b91505092915050565b6000819050919050565b600061302d61302861302384613008565b612832565b61250d565b9050919050565b61303d81613012565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613078816124cf565b82525050565b600061308a838361306f565b60208301905092915050565b6000602082019050919050565b60006130ae82613043565b6130b8818561304e565b93506130c38361305f565b8060005b838110156130f45781516130db888261307e565b97506130e683613096565b9250506001810190506130c7565b5085935050505092915050565b600060a08201905061311660008301886125e6565b6131236020830187613034565b818103604083015261313581866130a3565b9050613144606083018561271a565b61315160808301846125e6565b9695505050505050565b600060c082019050613170600083018961271a565b61317d60208301886125e6565b61318a6040830187613034565b6131976060830186613034565b6131a4608083018561271a565b6131b160a08301846125e6565b979650505050505050565b6000806000606084860312156131d5576131d46124aa565b5b60006131e3868287016127f0565b93505060206131f4868287016127f0565b9250506040613205868287016127f0565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613245601b83612403565b91506132508261320f565b602082019050919050565b6000602082019050818103600083015261327481613238565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220542449e0162c9f8bbc3378649be1f9fef5d282748f9b875ea3974f722da342e464736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610372578063c3c8cd80146103af578063c9567bf9146103c6578063dd62ed3e146103dd578063f2fde38b1461041a5761011f565b8063715018a6146102c5578063751039fc146102dc5780637a319590146102f35780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d5780634ea18fab146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612488565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612543565b610480565b604051610183919061259e565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906125b9565b61049e565b005b3480156101c157600080fd5b506101ca610656565b6040516101d791906125f5565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612610565b610666565b604051610214919061259e565b60405180910390f35b34801561022957600080fd5b5061023261073f565b60405161023f919061267f565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a919061269a565b610748565b005b34801561027d57600080fd5b506102866107e7565b005b34801561029457600080fd5b506102af60048036038101906102aa91906125b9565b61088d565b6040516102bc91906125f5565b60405180910390f35b3480156102d157600080fd5b506102da6108d6565b005b3480156102e857600080fd5b506102f1610a29565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906126c7565b610adb565b005b34801561032857600080fd5b50610331610be7565b60405161033e9190612729565b60405180910390f35b34801561035357600080fd5b5061035c610c10565b6040516103699190612488565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612543565b610c4d565b6040516103a6919061259e565b60405180910390f35b3480156103bb57600080fd5b506103c4610c6b565b005b3480156103d257600080fd5b506103db610d2d565b005b3480156103e957600080fd5b5061040460048036038101906103ff9190612744565b610e92565b60405161041191906125f5565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906125b9565b610f19565b005b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b600061049461048d61112f565b8484611137565b6001905092915050565b6104a661112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906127d0565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105b09190612729565b602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f19190612805565b6040518363ffffffff1660e01b815260040161060e929190612891565b6020604051808303816000875af115801561062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065191906128e6565b505050565b6000670de0b6b3a7640000905090565b6000610673848484611300565b6107348461067f61112f565b61072f8560405180606001604052806028815260200161327c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e561112f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b469092919063ffffffff16565b611137565b600190509392505050565b60006009905090565b61075061112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906127d0565b60405180910390fd5b8060108190555050565b6107ef61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610873906127d0565b60405180910390fd5b600047905061088a81611baa565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108de61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906127d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a3161112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906127d0565b60405180910390fd5b6000601560176101000a81548160ff021916908315150217905550565b610ae361112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906127d0565b60405180910390fd5b60648311158015610b82575060648211155b8015610b8e5750818111155b610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc49061295f565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b6000610c61610c5a61112f565b8484611300565b6001905092915050565b610c7361112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906127d0565b60405180910390fd5b6000610d1f600c54610d113061088d565b611c2490919063ffffffff16565b9050610d2a81611c6e565b50565b610d3561112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906127d0565b60405180910390fd5b601560149054906101000a900460ff1615610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906129cb565b60405180910390fd5b610e2c610e1e3061088d565b47610e27610be7565b611ee5565b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555060b442610e8a9190612a1a565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f2161112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127d0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006110ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff8565b905092915050565b60008083036110c75760009050611129565b600082846110d59190612a4e565b90508284826110e49190612abf565b14611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612b62565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612bf4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612c86565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f391906125f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690612d18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612daa565b60405180910390fd5b60008111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612e3c565b60405180910390fd5b6008546006819055506000600d819055506000600c5411156114465760006006819055505b61144e610be7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114bc575061148c610be7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119cc57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115da5750601560179054906101000a900460ff165b1561167e57600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461162d9190612a1a565b111561166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612ea8565b60405180910390fd5b600e5481111561167d57600080fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dd57506000600b54115b1561178857600b54811061170957600c54600d819055506000600b819055506000600c81905550611787565b611732600b5461172483600c546110b590919063ffffffff16565b61106b90919063ffffffff16565b600d8190555080600b600082825461174a9190612ec8565b92505081905550600d54600c54111561177d57600d54600c60008282546117719190612ec8565b92505081905550611786565b6000600c819055505b5b5b60158054906101000a900460ff161580156117f15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118095750601560169054906101000a900460ff165b801561185f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cb5760075442116118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90612f48565b60405180910390fd5b6000600c546118b63061088d565b11156118dc576118d9600c546118cb3061088d565b611c2490919063ffffffff16565b90505b601054811115611919576011548111156118f65760115490505b6118ff81611c6e565b600047905060008111156119175761191647611baa565b5b505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c95781600b60008282546119809190612a1a565b925050819055506119b06103e86119a2600a54856110b590919063ffffffff16565b61106b90919063ffffffff16565b600c60008282546119c19190612a1a565b925050819055505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611acd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611adc576009546006819055505b611ae783838361205b565b6000600d54118015611b04575060158054906101000a900460ff16155b15611b41576000600681905550611b1a3061088d565b600d541115611b3357611b2c3061088d565b600d819055505b611b403083600d5461205b565b5b505050565b6000838311158290611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b859190612488565b60405180910390fd5b5060008385611b9d9190612ec8565b9050809150509392505050565b6000611bb582612296565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c1f573d6000803e3d6000fd5b505050565b6000611c6683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b46565b905092915050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ca557611ca4612f68565b5b604051908082528060200260200182016040528015611cd35781602001602082028036833780820191505090505b5090503081600081518110611ceb57611cea612f97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db69190612fdb565b81600181518110611dca57611dc9612f97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611137565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e95959493929190613101565b600060405180830381600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff021916908315150217905550611f2c30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611137565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f939695949392919061315b565b60606040518083038185885af1158015611fb1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd691906131bc565b50505060006015806101000a81548160ff021916908315150217905550505050565b6000808311829061203f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120369190612488565b60405180910390fd5b506000838561204e9190612abf565b9050809150509392505050565b60008061206783612346565b915091506120bd83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061215282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228791906125f5565b60405180910390a35050505050565b6000806122c0600a6122b26009866110b590919063ffffffff16565b61106b90919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123118386611c2490919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561233c573d6000803e3d6000fd5b5080915050919050565b60008060006123746103e8612366600654876110b590919063ffffffff16565b61106b90919063ffffffff16565b9050600061238b8286611c2490919063ffffffff16565b90508082935093505050915091565b60008082846123a99190612a1a565b9050838110156123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e59061325b565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612432578082015181840152602081019050612417565b60008484015250505050565b6000601f19601f8301169050919050565b600061245a826123f8565b6124648185612403565b9350612474818560208601612414565b61247d8161243e565b840191505092915050565b600060208201905081810360008301526124a2818461244f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124da826124af565b9050919050565b6124ea816124cf565b81146124f557600080fd5b50565b600081359050612507816124e1565b92915050565b6000819050919050565b6125208161250d565b811461252b57600080fd5b50565b60008135905061253d81612517565b92915050565b6000806040838503121561255a576125596124aa565b5b6000612568858286016124f8565b92505060206125798582860161252e565b9150509250929050565b60008115159050919050565b61259881612583565b82525050565b60006020820190506125b3600083018461258f565b92915050565b6000602082840312156125cf576125ce6124aa565b5b60006125dd848285016124f8565b91505092915050565b6125ef8161250d565b82525050565b600060208201905061260a60008301846125e6565b92915050565b600080600060608486031215612629576126286124aa565b5b6000612637868287016124f8565b9350506020612648868287016124f8565b92505060406126598682870161252e565b9150509250925092565b600060ff82169050919050565b61267981612663565b82525050565b60006020820190506126946000830184612670565b92915050565b6000602082840312156126b0576126af6124aa565b5b60006126be8482850161252e565b91505092915050565b6000806000606084860312156126e0576126df6124aa565b5b60006126ee8682870161252e565b93505060206126ff8682870161252e565b92505060406127108682870161252e565b9150509250925092565b612723816124cf565b82525050565b600060208201905061273e600083018461271a565b92915050565b6000806040838503121561275b5761275a6124aa565b5b6000612769858286016124f8565b925050602061277a858286016124f8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127ba602083612403565b91506127c582612784565b602082019050919050565b600060208201905081810360008301526127e9816127ad565b9050919050565b6000815190506127ff81612517565b92915050565b60006020828403121561281b5761281a6124aa565b5b6000612829848285016127f0565b91505092915050565b6000819050919050565b600061285761285261284d846124af565b612832565b6124af565b9050919050565b60006128698261283c565b9050919050565b600061287b8261285e565b9050919050565b61288b81612870565b82525050565b60006040820190506128a66000830185612882565b6128b360208301846125e6565b9392505050565b6128c381612583565b81146128ce57600080fd5b50565b6000815190506128e0816128ba565b92915050565b6000602082840312156128fc576128fb6124aa565b5b600061290a848285016128d1565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612949601983612403565b915061295482612913565b602082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129b5601783612403565b91506129c08261297f565b602082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a258261250d565b9150612a308361250d565b9250828201905080821115612a4857612a476129eb565b5b92915050565b6000612a598261250d565b9150612a648361250d565b9250828202612a728161250d565b91508282048414831517612a8957612a886129eb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aca8261250d565b9150612ad58361250d565b925082612ae557612ae4612a90565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4c602183612403565b9150612b5782612af0565b604082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bde602483612403565b9150612be982612b82565b604082019050919050565b60006020820190508181036000830152612c0d81612bd1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c70602283612403565b9150612c7b82612c14565b604082019050919050565b60006020820190508181036000830152612c9f81612c63565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d02602583612403565b9150612d0d82612ca6565b604082019050919050565b60006020820190508181036000830152612d3181612cf5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d94602383612403565b9150612d9f82612d38565b604082019050919050565b60006020820190508181036000830152612dc381612d87565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e26602983612403565b9150612e3182612dca565b604082019050919050565b60006020820190508181036000830152612e5581612e19565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612e92601383612403565b9150612e9d82612e5c565b602082019050919050565b60006020820190508181036000830152612ec181612e85565b9050919050565b6000612ed38261250d565b9150612ede8361250d565b9250828203905081811115612ef657612ef56129eb565b5b92915050565b7f33206d696e7574652073656c6c2064656c617920746f2067657420626f747321600082015250565b6000612f32602083612403565b9150612f3d82612efc565b602082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612fd5816124e1565b92915050565b600060208284031215612ff157612ff06124aa565b5b6000612fff84828501612fc6565b91505092915050565b6000819050919050565b600061302d61302861302384613008565b612832565b61250d565b9050919050565b61303d81613012565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613078816124cf565b82525050565b600061308a838361306f565b60208301905092915050565b6000602082019050919050565b60006130ae82613043565b6130b8818561304e565b93506130c38361305f565b8060005b838110156130f45781516130db888261307e565b97506130e683613096565b9250506001810190506130c7565b5085935050505092915050565b600060a08201905061311660008301886125e6565b6131236020830187613034565b818103604083015261313581866130a3565b9050613144606083018561271a565b61315160808301846125e6565b9695505050505050565b600060c082019050613170600083018961271a565b61317d60208301886125e6565b61318a6040830187613034565b6131976060830186613034565b6131a4608083018561271a565b6131b160a08301846125e6565b979650505050505050565b6000806000606084860312156131d5576131d46124aa565b5b60006131e3868287016127f0565b93505060206131f4868287016127f0565b9250506040613205868287016127f0565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613245601b83612403565b91506132508261320f565b602082019050919050565b6000602082019050818103600083015261327481613238565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220542449e0162c9f8bbc3378649be1f9fef5d282748f9b875ea3974f722da342e464736f6c63430008120033

Deployed Bytecode Sourcemap

3700:10082:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6696:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13572:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6142:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6865:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6051:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7186:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12946:153;;;;;;;;;;;;;:::i;:::-;;6245:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:148;;;;;;;;;;;;;:::i;:::-;;7556:81;;;;;;;;;;;;;:::i;:::-;;7291:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5956:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6370:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12762:172;;;;;;;;;;;;;:::i;:::-;;11957:325;;;;;;;;;;;;;:::i;:::-;;6545:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5865:83;5902:13;5935:5;;;;;;;;;;;;;;;;;5928:12;;5865:83;:::o;6696:161::-;6771:4;6788:39;6797:12;:10;:12::i;:::-;6811:7;6820:6;6788:8;:39::i;:::-;6845:4;6838:11;;6696:161;;;;:::o;13572:207::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13645:20:::1;13675:12;13645:43;;13699:13;:22;;;13722:9;;;;;;;;;;;13732:13;:23;;;13764:4;13732:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13699:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13634:145;13572:207:::0;:::o;6142:95::-;6195:7;4109:18;6215:14;;6142:95;:::o;6865:313::-;6963:4;6980:36;6990:6;6998:9;7009:6;6980:9;:36::i;:::-;7027:121;7036:6;7044:12;:10;:12::i;:::-;7058:89;7096:6;7058:89;;;;;;;;;;;;;;;;;:11;:19;7070:6;7058:19;;;;;;;;;;;;;;;:33;7078:12;:10;:12::i;:::-;7058:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7027:8;:121::i;:::-;7166:4;7159:11;;6865:313;;;;;:::o;6051:83::-;6092:5;4711:1;6110:16;;6051:83;:::o;7186:97::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:6:::1;7256:10;:19;;;;7186:97:::0;:::o;12946:153::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12998:26:::1;13027:21;12998:50;;13059:32;13072:18;13059:12;:32::i;:::-;12987:112;12946:153::o:0;6245:117::-;6311:7;6338;:16;6346:7;6338:16;;;;;;;;;;;;;;;;6331:23;;6245:117;;;:::o;2779:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2886:1:::1;2849:40;;2870:6;::::0;::::1;;;;;;;;2849:40;;;;;;;;;;;;2917:1;2900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2779:148::o:0;7556:81::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:5:::1;7608:13;;:21;;;;;;;;;;;;;;;;;;7556:81::o:0;7291:257::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7400:3:::1;7392:4;:11;;:27;;;;;7416:3;7407:5;:12;;7392:27;:46;;;;;7433:5;7423:6;:15;;7392:46;7384:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7485:4;7478;:11;;;;7507:5;7500:4;:12;;;;7534:6;7523:8;:17;;;;7291:257:::0;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;5956:87::-;5995:13;6028:7;;;;;;;;;;;;;;;;;6021:14;;5956:87;:::o;6370:167::-;6448:4;6465:42;6475:12;:10;:12::i;:::-;6489:9;6500:6;6465:9;:42::i;:::-;6525:4;6518:11;;6370:167;;;;:::o;12762:172::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12814:23:::1;12840:42;12869:12;;12840:24;12858:4;12840:9;:24::i;:::-;:28;;:42;;;;:::i;:::-;12814:68;;12893:33;12910:15;12893:16;:33::i;:::-;12803:131;12762:172::o:0;11957:325::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12021:11:::1;;;;;;;;;;;12020:12;12012:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12070:68;12083:24;12101:4;12083:9;:24::i;:::-;12108:21;12130:7;:5;:7::i;:::-;12070:12;:68::i;:::-;12163:4;12149:11;;:18;;;;;;;;;;;;;;;;;;12192:4;12178:11;;:18;;;;;;;;;;;;;;;;;;12223:4;12207:13;;:20;;;;;;;;;;;;;;;;;;12264:9;12246:15;:27;;;;:::i;:::-;12238:4;:36;;;;11957:325::o:0;6545:143::-;6626:7;6653:11;:18;6665:5;6653:18;;;;;;;;;;;;;;;:27;6672:7;6653:27;;;;;;;;;;;;;;;;6646:34;;6545:143;;;;:::o;2598:173::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:9:::1;2685:39;;2706:6;::::0;::::1;;;;;;;;2685:39;;;;;;;;;;;;2744:9;2735:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2598:173:::0;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;102:98::-;155:7;182:10;175:17;;102: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;7989:3008::-;8093:1;8077:18;;:4;:18;;;8069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8170:1;8156:16;;:2;:16;;;8148:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:1;8231:6;:10;8223:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8307:4;;8300;:11;;;;8337:1;8322:12;:16;;;;8368:1;8353:12;;:16;8349:57;;;8393:1;8386:4;:8;;;;8349:57;8428:7;:5;:7::i;:::-;8420:15;;:4;:15;;;;:32;;;;;8445:7;:5;:7::i;:::-;8439:13;;:2;:13;;;;8420:32;8416:2115;;;8481:13;;;;;;;;;;;8473:21;;:4;:21;;;:55;;;;;8512:15;;;;;;;;;;;8498:30;;:2;:30;;;;8473:55;:83;;;;;8534:18;:22;8553:2;8534:22;;;;;;;;;;;;;;;;;;;;;;;;;8532:24;8473:83;:100;;;;;8560:13;;;;;;;;;;;8473:100;8469:263;;;8627:16;;8616:6;8602:7;:11;8610:2;8602:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;8601:42;;8593:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8703:12;;8693:6;:22;;8685:31;;;;;;8469:263;8772:13;;;;;;;;;;;8764:21;;:4;:21;;;:47;;;;;8810:1;8789:18;;:22;8764:47;8760:645;;;8846:18;;8836:6;:28;8832:558;;8904:12;;8889;:27;;;;8960:1;8939:18;:22;;;;8999:1;8984:12;:16;;;;8832:558;;;9064:48;9093:18;;9064:24;9081:6;9064:12;;:16;;:24;;;;:::i;:::-;:28;;:48;;;;:::i;:::-;9049:12;:63;;;;9157:6;9135:18;;:28;;;;;;;:::i;:::-;;;;;;;;9205:12;;9190;;:27;9186:185;;;9262:12;;9246;;:28;;;;;;;:::i;:::-;;;;;;;;9186:185;;;9346:1;9331:12;:16;;;;9186:185;8832:558;8760:645;9438:6;;;;;;;;;;9437:7;:32;;;;;9456:13;;;;;;;;;;;9448:21;;:4;:21;;;;9437:32;:47;;;;;9473:11;;;;;;;;;;;9437:47;:76;;;;;9489:18;:24;9508:4;9489:24;;;;;;;;;;;;;;;;;;;;;;;;;9488:25;9437:76;9433:1087;;;9560:4;;9542:15;:22;9534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9620:28;9702:12;;9675:24;9693:4;9675:9;:24::i;:::-;:39;9671:153;;;9762:42;9791:12;;9762:24;9780:4;9762:9;:24::i;:::-;:28;;:42;;;;:::i;:::-;9739:65;;9671:153;9868:10;;9845:20;:33;9842:480;;;9928:15;;9905:20;:38;9902:132;;;9995:15;;9972:38;;9902:132;10056:38;10073:20;10056:16;:38::i;:::-;10117:26;10146:21;10117:50;;10214:1;10193:18;:22;10190:113;;;10244:35;10257:21;10244:12;:35::i;:::-;10190:113;9879:443;9842:480;10350:13;;;;;;;;;;;10344:19;;:2;:19;;;10340:165;;10410:6;10388:18;;:28;;;;;;;:::i;:::-;;;;;;;;10455:30;10480:4;10455:20;10466:8;;10455:6;:10;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10439:12;;:46;;;;;;;:::i;:::-;;;;;;;;10340:165;9515:1005;9433:1087;8416:2115;10551:13;;;;;;;;;;;10545:19;;:2;:19;;;:55;;;;;10584:15;;;;;;;;;;;10568:32;;:4;:32;;;;10545:55;:85;;;;;10606:18;:24;10625:4;10606:24;;;;;;;;;;;;;;;;;;;;;;;;;10604:26;10545:85;10541:129;;;10654:4;;10647;:11;;;;10541:129;10682:33;10700:4;10705:2;10708:6;10682:17;:33::i;:::-;10745:1;10730:12;;:16;:27;;;;;10751:6;;;;;;;;;;10750:7;10730:27;10726:264;;;10781:1;10774:4;:8;;;;10816:24;10834:4;10816:9;:24::i;:::-;10801:12;;:39;10797:119;;;10876:24;10894:4;10876:9;:24::i;:::-;10861:12;:39;;;;10797:119;10930:48;10956:4;10962:2;10965:12;;10930:17;:48::i;:::-;10726:264;7989:3008;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;11804:141::-;11861:17;11881:16;11890:6;11881:8;:16::i;:::-;11861:36;;11908:9;;;;;;;;;;;:18;;:29;11927:9;11908:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11850:95;11804:141;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;11005:483::-;5077:4;5068:6;;:13;;;;;;;;;;;;;;;;;;11083:21:::1;11121:1;11107:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11083:40;;11152:4;11134;11139:1;11134:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11178:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11168:4;11173:1;11168:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11211:62;11228:4;11243:15;;;;;;;;;;;11261:11;11211:8;:62::i;:::-;11284:15;;;;;;;;;;;:66;;;11365:11;11391:1;11407:4;11434;11454:15;11284:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11072:416;5113:5:::0;5104:6;;:14;;;;;;;;;;;;;;;;;;11005:483;:::o;11502:288::-;5077:4;5068:6;;:13;;;;;;;;;;;;;;;;;;11608:60:::1;11625:4;11639:15;;;;;;;;;;;11656:11;11608:8;:60::i;:::-;11679:15;;;;;;;;;;;:31;;;11718:9;11737:4;11743:11;11755:1;11757::::0;11759:6:::1;11766:15;11679:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5113:5:::0;5104:6;;:14;;;;;;;;;;;;;;;;;;11502:288;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;12292:421::-;12391:22;12414:12;12430:20;12442:7;12430:11;:20::i;:::-;12390:60;;;;12479:28;12499:7;12479;:15;12487:6;12479:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12461:7;:15;12469:6;12461:15;;;;;;;;;;;;;;;:46;;;;12539:38;12562:14;12539:7;:18;12547:9;12539:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12518:7;:18;12526:9;12518:18;;;;;;;;;;;;;;;:59;;;;12614:32;12641:4;12614:7;:22;12630:4;12614:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12589:7;:22;12605:4;12589:22;;;;;;;;;;;;;;;:57;;;;12679:9;12662:43;;12671:6;12662:43;;;12690:14;12662:43;;;;;;:::i;:::-;;;;;;;;12379:334;;12292:421;;;:::o;13107:212::-;13157:7;13177:17;13197:21;13215:2;13197:13;13208:1;13197:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;13177:41;;13229:16;;;;;;;;;;;:25;;:48;13255:21;13266:9;13255:6;:10;;:21;;;;:::i;:::-;13229:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13295:9;13288:16;;;13107:212;;;:::o;13330:234::-;13390:7;13399;13419:12;13434:27;13456:4;13434:17;13446:4;;13434:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13419:42;;13472:23;13498:17;13510:4;13498:7;:11;;:17;;;;:::i;:::-;13472:43;;13534:15;13551:4;13526:30;;;;;;13330:234;;;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908:179;;;;:::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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:619::-;5600:6;5608;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5523:619;;;;;:::o;6148:118::-;6235:24;6253:5;6235:24;:::i;:::-;6230:3;6223:37;6148:118;;:::o;6272:222::-;6365:4;6403:2;6392:9;6388:18;6380:26;;6416:71;6484:1;6473:9;6469:17;6460:6;6416:71;:::i;:::-;6272:222;;;;:::o;6500:474::-;6568:6;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6500:474;;;;;:::o;6980:182::-;7120:34;7116:1;7108:6;7104:14;7097:58;6980:182;:::o;7168:366::-;7310:3;7331:67;7395:2;7390:3;7331:67;:::i;:::-;7324:74;;7407:93;7496:3;7407:93;:::i;:::-;7525:2;7520:3;7516:12;7509:19;;7168:366;;;:::o;7540:419::-;7706:4;7744:2;7733:9;7729:18;7721:26;;7793:9;7787:4;7783:20;7779:1;7768:9;7764:17;7757:47;7821:131;7947:4;7821:131;:::i;:::-;7813:139;;7540:419;;;:::o;7965:143::-;8022:5;8053:6;8047:13;8038:22;;8069:33;8096:5;8069:33;:::i;:::-;7965:143;;;;:::o;8114:351::-;8184:6;8233:2;8221:9;8212:7;8208:23;8204:32;8201:119;;;8239:79;;:::i;:::-;8201:119;8359:1;8384:64;8440:7;8431:6;8420:9;8416:22;8384:64;:::i;:::-;8374:74;;8330:128;8114:351;;;;:::o;8471:60::-;8499:3;8520:5;8513:12;;8471:60;;;:::o;8537:142::-;8587:9;8620:53;8638:34;8647:24;8665:5;8647:24;:::i;:::-;8638:34;:::i;:::-;8620:53;:::i;:::-;8607:66;;8537:142;;;:::o;8685:126::-;8735:9;8768:37;8799:5;8768:37;:::i;:::-;8755:50;;8685:126;;;:::o;8817:134::-;8875:9;8908:37;8939:5;8908:37;:::i;:::-;8895:50;;8817:134;;;:::o;8957:147::-;9052:45;9091:5;9052:45;:::i;:::-;9047:3;9040:58;8957:147;;:::o;9110:348::-;9239:4;9277:2;9266:9;9262:18;9254:26;;9290:79;9366:1;9355:9;9351:17;9342:6;9290:79;:::i;:::-;9379:72;9447:2;9436:9;9432:18;9423:6;9379:72;:::i;:::-;9110:348;;;;;:::o;9464:116::-;9534:21;9549:5;9534:21;:::i;:::-;9527:5;9524:32;9514:60;;9570:1;9567;9560:12;9514:60;9464:116;:::o;9586:137::-;9640:5;9671:6;9665:13;9656:22;;9687:30;9711:5;9687:30;:::i;:::-;9586:137;;;;:::o;9729:345::-;9796:6;9845:2;9833:9;9824:7;9820:23;9816:32;9813:119;;;9851:79;;:::i;:::-;9813:119;9971:1;9996:61;10049:7;10040:6;10029:9;10025:22;9996:61;:::i;:::-;9986:71;;9942:125;9729:345;;;;:::o;10080:175::-;10220:27;10216:1;10208:6;10204:14;10197:51;10080:175;:::o;10261:366::-;10403:3;10424:67;10488:2;10483:3;10424:67;:::i;:::-;10417:74;;10500:93;10589:3;10500:93;:::i;:::-;10618:2;10613:3;10609:12;10602:19;;10261:366;;;:::o;10633:419::-;10799:4;10837:2;10826:9;10822:18;10814:26;;10886:9;10880:4;10876:20;10872:1;10861:9;10857:17;10850:47;10914:131;11040:4;10914:131;:::i;:::-;10906:139;;10633:419;;;:::o;11058:173::-;11198:25;11194:1;11186:6;11182:14;11175:49;11058:173;:::o;11237:366::-;11379:3;11400:67;11464:2;11459:3;11400:67;:::i;:::-;11393:74;;11476:93;11565:3;11476:93;:::i;:::-;11594:2;11589:3;11585:12;11578:19;;11237:366;;;:::o;11609:419::-;11775:4;11813:2;11802:9;11798:18;11790:26;;11862:9;11856:4;11852:20;11848:1;11837:9;11833:17;11826:47;11890:131;12016:4;11890:131;:::i;:::-;11882:139;;11609:419;;;:::o;12034:180::-;12082:77;12079:1;12072:88;12179:4;12176:1;12169:15;12203:4;12200:1;12193:15;12220:191;12260:3;12279:20;12297:1;12279:20;:::i;:::-;12274:25;;12313:20;12331:1;12313:20;:::i;:::-;12308:25;;12356:1;12353;12349:9;12342:16;;12377:3;12374:1;12371:10;12368:36;;;12384:18;;:::i;:::-;12368:36;12220:191;;;;:::o;12417:410::-;12457:7;12480:20;12498:1;12480:20;:::i;:::-;12475:25;;12514:20;12532:1;12514:20;:::i;:::-;12509:25;;12569:1;12566;12562:9;12591:30;12609:11;12591:30;:::i;:::-;12580:41;;12770:1;12761:7;12757:15;12754:1;12751:22;12731:1;12724:9;12704:83;12681:139;;12800:18;;:::i;:::-;12681:139;12465:362;12417:410;;;;:::o;12833:180::-;12881:77;12878:1;12871:88;12978:4;12975:1;12968:15;13002:4;12999:1;12992:15;13019:185;13059:1;13076:20;13094:1;13076:20;:::i;:::-;13071:25;;13110:20;13128:1;13110:20;:::i;:::-;13105:25;;13149:1;13139:35;;13154:18;;:::i;:::-;13139:35;13196:1;13193;13189:9;13184:14;;13019:185;;;;:::o;13210:220::-;13350:34;13346:1;13338:6;13334:14;13327:58;13419:3;13414:2;13406:6;13402:15;13395:28;13210:220;:::o;13436:366::-;13578:3;13599:67;13663:2;13658:3;13599:67;:::i;:::-;13592:74;;13675:93;13764:3;13675:93;:::i;:::-;13793:2;13788:3;13784:12;13777:19;;13436:366;;;:::o;13808:419::-;13974:4;14012:2;14001:9;13997:18;13989:26;;14061:9;14055:4;14051:20;14047:1;14036:9;14032:17;14025:47;14089:131;14215:4;14089:131;:::i;:::-;14081:139;;13808:419;;;:::o;14233:223::-;14373:34;14369:1;14361:6;14357:14;14350:58;14442:6;14437:2;14429:6;14425:15;14418:31;14233:223;:::o;14462:366::-;14604:3;14625:67;14689:2;14684:3;14625:67;:::i;:::-;14618:74;;14701:93;14790:3;14701:93;:::i;:::-;14819:2;14814:3;14810:12;14803:19;;14462:366;;;:::o;14834:419::-;15000:4;15038:2;15027:9;15023:18;15015:26;;15087:9;15081:4;15077:20;15073:1;15062:9;15058:17;15051:47;15115:131;15241:4;15115:131;:::i;:::-;15107:139;;14834:419;;;:::o;15259:221::-;15399:34;15395:1;15387:6;15383:14;15376:58;15468:4;15463:2;15455:6;15451:15;15444:29;15259:221;:::o;15486:366::-;15628:3;15649:67;15713:2;15708:3;15649:67;:::i;:::-;15642:74;;15725:93;15814:3;15725:93;:::i;:::-;15843:2;15838:3;15834:12;15827:19;;15486:366;;;:::o;15858:419::-;16024:4;16062:2;16051:9;16047:18;16039:26;;16111:9;16105:4;16101:20;16097:1;16086:9;16082:17;16075:47;16139:131;16265:4;16139:131;:::i;:::-;16131:139;;15858:419;;;:::o;16283:224::-;16423:34;16419:1;16411:6;16407:14;16400:58;16492:7;16487:2;16479:6;16475:15;16468:32;16283:224;:::o;16513:366::-;16655:3;16676:67;16740:2;16735:3;16676:67;:::i;:::-;16669:74;;16752:93;16841:3;16752:93;:::i;:::-;16870:2;16865:3;16861:12;16854:19;;16513:366;;;:::o;16885:419::-;17051:4;17089:2;17078:9;17074:18;17066:26;;17138:9;17132:4;17128:20;17124:1;17113:9;17109:17;17102:47;17166:131;17292:4;17166:131;:::i;:::-;17158:139;;16885:419;;;:::o;17310:222::-;17450:34;17446:1;17438:6;17434:14;17427:58;17519:5;17514:2;17506:6;17502:15;17495:30;17310:222;:::o;17538:366::-;17680:3;17701:67;17765:2;17760:3;17701:67;:::i;:::-;17694:74;;17777:93;17866:3;17777:93;:::i;:::-;17895:2;17890:3;17886:12;17879:19;;17538:366;;;:::o;17910:419::-;18076:4;18114:2;18103:9;18099:18;18091:26;;18163:9;18157:4;18153:20;18149:1;18138:9;18134:17;18127:47;18191:131;18317:4;18191:131;:::i;:::-;18183:139;;17910:419;;;:::o;18335:228::-;18475:34;18471:1;18463:6;18459:14;18452:58;18544:11;18539:2;18531:6;18527:15;18520:36;18335:228;:::o;18569:366::-;18711:3;18732:67;18796:2;18791:3;18732:67;:::i;:::-;18725:74;;18808:93;18897:3;18808:93;:::i;:::-;18926:2;18921:3;18917:12;18910:19;;18569:366;;;:::o;18941:419::-;19107:4;19145:2;19134:9;19130:18;19122:26;;19194:9;19188:4;19184:20;19180:1;19169:9;19165:17;19158:47;19222:131;19348:4;19222:131;:::i;:::-;19214:139;;18941:419;;;:::o;19366:169::-;19506:21;19502:1;19494:6;19490:14;19483:45;19366:169;:::o;19541:366::-;19683:3;19704:67;19768:2;19763:3;19704:67;:::i;:::-;19697:74;;19780:93;19869:3;19780:93;:::i;:::-;19898:2;19893:3;19889:12;19882:19;;19541:366;;;:::o;19913:419::-;20079:4;20117:2;20106:9;20102:18;20094:26;;20166:9;20160:4;20156:20;20152:1;20141:9;20137:17;20130:47;20194:131;20320:4;20194:131;:::i;:::-;20186:139;;19913:419;;;:::o;20338:194::-;20378:4;20398:20;20416:1;20398:20;:::i;:::-;20393:25;;20432:20;20450:1;20432:20;:::i;:::-;20427:25;;20476:1;20473;20469:9;20461:17;;20500:1;20494:4;20491:11;20488:37;;;20505:18;;:::i;:::-;20488:37;20338:194;;;;:::o;20538:182::-;20678:34;20674:1;20666:6;20662:14;20655:58;20538:182;:::o;20726:366::-;20868:3;20889:67;20953:2;20948:3;20889:67;:::i;:::-;20882:74;;20965:93;21054:3;20965:93;:::i;:::-;21083:2;21078:3;21074:12;21067:19;;20726:366;;;:::o;21098:419::-;21264:4;21302:2;21291:9;21287:18;21279:26;;21351:9;21345:4;21341:20;21337:1;21326:9;21322:17;21315:47;21379:131;21505:4;21379:131;:::i;:::-;21371:139;;21098:419;;;:::o;21523:180::-;21571:77;21568:1;21561:88;21668:4;21665:1;21658:15;21692:4;21689:1;21682:15;21709:180;21757:77;21754:1;21747:88;21854:4;21851:1;21844:15;21878:4;21875:1;21868:15;21895:143;21952:5;21983:6;21977:13;21968:22;;21999:33;22026:5;21999:33;:::i;:::-;21895:143;;;;:::o;22044:351::-;22114:6;22163:2;22151:9;22142:7;22138:23;22134:32;22131:119;;;22169:79;;:::i;:::-;22131:119;22289:1;22314:64;22370:7;22361:6;22350:9;22346:22;22314:64;:::i;:::-;22304:74;;22260:128;22044:351;;;;:::o;22401:85::-;22446:7;22475:5;22464:16;;22401:85;;;:::o;22492:158::-;22550:9;22583:61;22601:42;22610:32;22636:5;22610:32;:::i;:::-;22601:42;:::i;:::-;22583:61;:::i;:::-;22570:74;;22492:158;;;:::o;22656:147::-;22751:45;22790:5;22751:45;:::i;:::-;22746:3;22739:58;22656:147;;:::o;22809:114::-;22876:6;22910:5;22904:12;22894:22;;22809:114;;;:::o;22929:184::-;23028:11;23062:6;23057:3;23050:19;23102:4;23097:3;23093:14;23078:29;;22929:184;;;;:::o;23119:132::-;23186:4;23209:3;23201:11;;23239:4;23234:3;23230:14;23222:22;;23119:132;;;:::o;23257:108::-;23334:24;23352:5;23334:24;:::i;:::-;23329:3;23322:37;23257:108;;:::o;23371:179::-;23440:10;23461:46;23503:3;23495:6;23461:46;:::i;:::-;23539:4;23534:3;23530:14;23516:28;;23371:179;;;;:::o;23556:113::-;23626:4;23658;23653:3;23649:14;23641:22;;23556:113;;;:::o;23705:732::-;23824:3;23853:54;23901:5;23853:54;:::i;:::-;23923:86;24002:6;23997:3;23923:86;:::i;:::-;23916:93;;24033:56;24083:5;24033:56;:::i;:::-;24112:7;24143:1;24128:284;24153:6;24150:1;24147:13;24128:284;;;24229:6;24223:13;24256:63;24315:3;24300:13;24256:63;:::i;:::-;24249:70;;24342:60;24395:6;24342:60;:::i;:::-;24332:70;;24188:224;24175:1;24172;24168:9;24163:14;;24128:284;;;24132:14;24428:3;24421:10;;23829:608;;;23705:732;;;;:::o;24443:831::-;24706:4;24744:3;24733:9;24729:19;24721:27;;24758:71;24826:1;24815:9;24811:17;24802:6;24758:71;:::i;:::-;24839:80;24915:2;24904:9;24900:18;24891:6;24839:80;:::i;:::-;24966:9;24960:4;24956:20;24951:2;24940:9;24936:18;24929:48;24994:108;25097:4;25088:6;24994:108;:::i;:::-;24986:116;;25112:72;25180:2;25169:9;25165:18;25156:6;25112:72;:::i;:::-;25194:73;25262:3;25251:9;25247:19;25238:6;25194:73;:::i;:::-;24443:831;;;;;;;;:::o;25280:807::-;25529:4;25567:3;25556:9;25552:19;25544:27;;25581:71;25649:1;25638:9;25634:17;25625:6;25581:71;:::i;:::-;25662:72;25730:2;25719:9;25715:18;25706:6;25662:72;:::i;:::-;25744:80;25820:2;25809:9;25805:18;25796:6;25744:80;:::i;:::-;25834;25910:2;25899:9;25895:18;25886:6;25834:80;:::i;:::-;25924:73;25992:3;25981:9;25977:19;25968:6;25924:73;:::i;:::-;26007;26075:3;26064:9;26060:19;26051:6;26007:73;:::i;:::-;25280:807;;;;;;;;;:::o;26093:663::-;26181:6;26189;26197;26246:2;26234:9;26225:7;26221:23;26217:32;26214:119;;;26252:79;;:::i;:::-;26214:119;26372:1;26397:64;26453:7;26444:6;26433:9;26429:22;26397:64;:::i;:::-;26387:74;;26343:128;26510:2;26536:64;26592:7;26583:6;26572:9;26568:22;26536:64;:::i;:::-;26526:74;;26481:129;26649:2;26675:64;26731:7;26722:6;26711:9;26707:22;26675:64;:::i;:::-;26665:74;;26620:129;26093:663;;;;;:::o;26762:177::-;26902:29;26898:1;26890:6;26886:14;26879:53;26762:177;:::o;26945:366::-;27087:3;27108:67;27172:2;27167:3;27108:67;:::i;:::-;27101:74;;27184:93;27273:3;27184:93;:::i;:::-;27302:2;27297:3;27293:12;27286:19;;26945:366;;;:::o;27317:419::-;27483:4;27521:2;27510:9;27506:18;27498:26;;27570:9;27564:4;27560:20;27556:1;27545:9;27541:17;27534:47;27598:131;27724:4;27598:131;:::i;:::-;27590:139;;27317:419;;;:::o

Swarm Source

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