ETH Price: $2,495.43 (-0.65%)
Gas: 3.33 Gwei

Token

TRUMP (INJUSTICE)
 

Overview

Max Total Supply

1,000,000,000 INJUSTICE

Holders

21

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
INJUSTICE

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-17
*/

// SPDX-License-Identifier: UNLICENSE

/*
Portal: https://t.me/injusticeerc20
Website: https://injusticeerc.com
Twitter: https://x.com/injusticeerc
*/

pragma solidity 0.8.25;

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;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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

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

contract INJUSTICE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"TRUMP";
    string private constant _symbol = unicode"INJUSTICE";
    uint256 public _maxTxAmount = (_tTotal * 2) / 100;
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 10000;
    uint256 public _maxTaxSwap = (_tTotal * 2) / 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private firstBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

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

            if(_buyCount == 0){
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if(_buyCount > 0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if(block.number == firstBlock){
                require(_buyCount < 20, "Exceeds buys on the first block.");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this) ){
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");

                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount > 0){
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a > b) ? b : a;
    }

    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 removeLimit() external onlyOwner{
        _maxTxAmount =_tTotal;
        _maxWalletSize =_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax= 0;
        emit TransferTaxUpdated(0);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

    function manualSend() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance = address(this).balance;
        require(ethBalance > 0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance= balanceOf(address(this));
        if(tokenBalance > 0){
          swapTokensForEth( tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance> 0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601460055560146006555f6007555f60085560146009556014600a556014600b555f600c555f600d55606460026009600a61003f919061061c565b633b9aca0061004e9190610666565b6100589190610666565b61006291906106d4565b600e55606460026009600a610077919061061c565b633b9aca006100869190610666565b6100909190610666565b61009a91906106d4565b600f5561271060016009600a6100b0919061061c565b633b9aca006100bf9190610666565b6100c99190610666565b6100d391906106d4565b601055606460026009600a6100e8919061061c565b633b9aca006100f79190610666565b6101019190610666565b61010b91906106d4565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015555f601655348015610159575f80fd5b505f61016961047d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061021361047d60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a610260919061061c565b633b9aca0061026f9190610666565b60015f61028061047d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102d061048460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103f861047d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610454919061061c565b633b9aca006104639190610666565b6040516104709190610713565b60405180910390a361072c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561052d57808604811115610509576105086104ab565b5b60018516156105185780820291505b8081029050610526856104d8565b94506104ed565b94509492505050565b5f826105455760019050610600565b81610552575f9050610600565b81600181146105685760028114610572576105a1565b6001915050610600565b60ff841115610584576105836104ab565b5b8360020a91508482111561059b5761059a6104ab565b5b50610600565b5060208310610133831016604e8410600b84101617156105d65782820a9050838111156105d1576105d06104ab565b5b610600565b6105e384848460016104e4565b925090508184048111156105fa576105f96104ab565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61062682610607565b915061063183610610565b925061065e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610536565b905092915050565b5f61067082610607565b915061067b83610607565b925082820261068981610607565b915082820484148315176106a05761069f6104ab565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106de82610607565b91506106e983610607565b9250826106f9576106f86106a7565b5b828204905092915050565b61070d81610607565b82525050565b5f6020820190506107265f830184610704565b92915050565b613122806107395f395ff3fe608060405260043610610122575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb14610389578063bf474bed146103c5578063c9567bf9146103ef578063dd62ed3e14610405578063f42938901461044157610129565b8063715018a6146102cb5780637d1db4a5146102e15780638da5cb5b1461030b5780638f9a55c01461033557806395d89b411461035f57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c8514610263578063622565891461027957806370a082311461028f57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610457565b60405161014e9190612151565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612202565b610494565b60405161018a919061225a565b60405180910390f35b34801561019e575f80fd5b506101a76104b1565b6040516101b49190612282565b60405180910390f35b3480156101c8575f80fd5b506101d16104b7565b005b3480156101de575f80fd5b506101e761058b565b6040516101f49190612282565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061229b565b6105ae565b604051610230919061225a565b60405180910390f35b348015610244575f80fd5b5061024d610682565b60405161025a9190612306565b60405180910390f35b34801561026e575f80fd5b5061027761068a565b005b348015610284575f80fd5b5061028d610721565b005b34801561029a575f80fd5b506102b560048036038101906102b0919061231f565b610850565b6040516102c29190612282565b60405180910390f35b3480156102d6575f80fd5b506102df610896565b005b3480156102ec575f80fd5b506102f56109e4565b6040516103029190612282565b60405180910390f35b348015610316575f80fd5b5061031f6109ea565b60405161032c9190612359565b60405180910390f35b348015610340575f80fd5b50610349610a11565b6040516103569190612282565b60405180910390f35b34801561036a575f80fd5b50610373610a17565b6040516103809190612151565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190612202565b610a54565b6040516103bc919061225a565b60405180910390f35b3480156103d0575f80fd5b506103d9610a71565b6040516103e69190612282565b60405180910390f35b3480156103fa575f80fd5b50610403610a77565b005b348015610410575f80fd5b5061042b60048036038101906104269190612372565b610fa0565b6040516104389190612282565b60405180910390f35b34801561044c575f80fd5b50610455611022565b005b60606040518060400160405280600581526020017f5452554d50000000000000000000000000000000000000000000000000000000815250905090565b5f6104a76104a06110d3565b84846110da565b6001905092915050565b60115481565b6104bf6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610542906123fa565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610581919061245a565b60405180910390a1565b5f6009600a61059a91906125cf565b633b9aca006105a99190612619565b905090565b5f6105ba84848461129d565b610677846105c66110d3565b610672856040518060600160405280602881526020016130c56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106296110d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bcd9092919063ffffffff16565b6110da565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ca6110d3565b73ffffffffffffffffffffffffffffffffffffffff16146106e9575f80fd5b5f6106f330610850565b90505f8111156107075761070681611c2f565b5b5f4790505f81111561071d5761071c81611e9a565b5b5050565b6107296110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906123fa565b60405180910390fd5b6009600a6107c391906125cf565b633b9aca006107d29190612619565b600e819055506009600a6107e691906125cf565b633b9aca006107f59190612619565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61082a91906125cf565b633b9aca006108399190612619565b6040516108469190612282565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61089e6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610921906123fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f494e4a5553544943450000000000000000000000000000000000000000000000815250905090565b5f610a67610a606110d3565b848461129d565b6001905092915050565b60105481565b610a7f6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b02906123fa565b60405180910390fd5b601360149054906101000a900460ff1615610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b52906126a4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bf73060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610be391906125cf565b633b9aca00610bf29190612619565b6110da565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906126d6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2f91906126d6565b6040518363ffffffff1660e01b8152600401610d4c929190612701565b6020604051808303815f875af1158015610d68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8c91906126d6565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e1330610850565b5f80610e1d6109ea565b426040518863ffffffff1660e01b8152600401610e3f96959493929190612728565b60606040518083038185885af1158015610e5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e80919061279b565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f209291906127eb565b6020604051808303815f875af1158015610f3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f60919061283c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043601681905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110626110d3565b73ffffffffffffffffffffffffffffffffffffffff1614611081575f80fd5b5f4790505f81116110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906128d7565b60405180910390fd5b6110d081611e9a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612965565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad906129f3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112909190612282565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612a81565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090612b0f565b60405180910390fd5b5f81116113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b290612b9d565b60405180910390fd5b5f6113c46109ea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561143257506114026109ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191d575f600d540361147f5761147c606461146e600954600d541161145b5760055461145f565b6007545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b5f600d5411156114b4576114b160646114a3600c5485611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b6016544303611503576014600d5410611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f990612c05565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115ac575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115ff575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116f757600e54821115611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090612c6d565b60405180910390fd5b600f548261165685610850565b6116609190612c8b565b11156116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612d08565b60405180910390fd5b6116dd60646116cf600954600d54116116bc576005546116c0565b6007545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b9050600d5f8154809291906116f190612d26565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561177f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117c3576117c060646117b2600a54600d541161179f576006546117a3565b6008545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b5f6117cd30610850565b9050601360159054906101000a900460ff16158015611838575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118505750601360169054906101000a900460ff165b801561185d575060105481115b801561186c5750600b54600d54115b1561191b57601554431115611883575f6014819055505b6003601454106118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612db7565b60405180910390fd5b6118e56118e0846118db84601154611fc2565b611fc2565b611c2f565b5f4790505f8111156118fb576118fa47611e9a565b5b60145f81548092919061190d90612d26565b919050555043601581905550505b505b5f811115611a1c576119758160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a139190612282565b60405180910390a35b611a6c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b0f611ac3828461203790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bb2848661203790919063ffffffff16565b604051611bbf9190612282565b60405180910390a350505050565b5f838311158290611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b9190612151565b60405180910390fd5b505f8385611c229190612dd5565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c6657611c65612e08565b5b604051908082528060200260200182016040528015611c945781602001602082028036833780820191505090505b50905030815f81518110611cab57611caa612e35565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7391906126d6565b81600181518110611d8757611d86612e35565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ded3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110da565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e4f959493929190612f19565b5f604051808303815f87803b158015611e66575f80fd5b505af1158015611e78573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611efe573d5f803e3d5ffd5b5050565b5f808303611f12575f9050611f73565b5f8284611f1f9190612619565b9050828482611f2e9190612f9e565b14611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f659061303e565b60405180910390fd5b809150505b92915050565b5f611fba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612080565b905092915050565b5f818311611fd05782611fd2565b815b905092915050565b5f808284611fe89190612c8b565b90508381101561202d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612024906130a6565b60405180910390fd5b8091505092915050565b5f61207883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bcd565b905092915050565b5f80831182906120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd9190612151565b60405180910390fd5b505f83856120d49190612f9e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612123826120e1565b61212d81856120eb565b935061213d8185602086016120fb565b61214681612109565b840191505092915050565b5f6020820190508181035f8301526121698184612119565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61219e82612175565b9050919050565b6121ae81612194565b81146121b8575f80fd5b50565b5f813590506121c9816121a5565b92915050565b5f819050919050565b6121e1816121cf565b81146121eb575f80fd5b50565b5f813590506121fc816121d8565b92915050565b5f806040838503121561221857612217612171565b5b5f612225858286016121bb565b9250506020612236858286016121ee565b9150509250929050565b5f8115159050919050565b61225481612240565b82525050565b5f60208201905061226d5f83018461224b565b92915050565b61227c816121cf565b82525050565b5f6020820190506122955f830184612273565b92915050565b5f805f606084860312156122b2576122b1612171565b5b5f6122bf868287016121bb565b93505060206122d0868287016121bb565b92505060406122e1868287016121ee565b9150509250925092565b5f60ff82169050919050565b612300816122eb565b82525050565b5f6020820190506123195f8301846122f7565b92915050565b5f6020828403121561233457612333612171565b5b5f612341848285016121bb565b91505092915050565b61235381612194565b82525050565b5f60208201905061236c5f83018461234a565b92915050565b5f806040838503121561238857612387612171565b5b5f612395858286016121bb565b92505060206123a6858286016121bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123e46020836120eb565b91506123ef826123b0565b602082019050919050565b5f6020820190508181035f830152612411816123d8565b9050919050565b5f819050919050565b5f819050919050565b5f61244461243f61243a84612418565b612421565b6121cf565b9050919050565b6124548161242a565b82525050565b5f60208201905061246d5f83018461244b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124f5578086048111156124d1576124d0612473565b5b60018516156124e05780820291505b80810290506124ee856124a0565b94506124b5565b94509492505050565b5f8261250d57600190506125c8565b8161251a575f90506125c8565b8160018114612530576002811461253a57612569565b60019150506125c8565b60ff84111561254c5761254b612473565b5b8360020a91508482111561256357612562612473565b5b506125c8565b5060208310610133831016604e8410600b841016171561259e5782820a90508381111561259957612598612473565b5b6125c8565b6125ab84848460016124ac565b925090508184048111156125c2576125c1612473565b5b81810290505b9392505050565b5f6125d9826121cf565b91506125e4836122eb565b92506126117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124fe565b905092915050565b5f612623826121cf565b915061262e836121cf565b925082820261263c816121cf565b9150828204841483151761265357612652612473565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61268e6017836120eb565b91506126998261265a565b602082019050919050565b5f6020820190508181035f8301526126bb81612682565b9050919050565b5f815190506126d0816121a5565b92915050565b5f602082840312156126eb576126ea612171565b5b5f6126f8848285016126c2565b91505092915050565b5f6040820190506127145f83018561234a565b612721602083018461234a565b9392505050565b5f60c08201905061273b5f83018961234a565b6127486020830188612273565b612755604083018761244b565b612762606083018661244b565b61276f608083018561234a565b61277c60a0830184612273565b979650505050505050565b5f81519050612795816121d8565b92915050565b5f805f606084860312156127b2576127b1612171565b5b5f6127bf86828701612787565b93505060206127d086828701612787565b92505060406127e186828701612787565b9150509250925092565b5f6040820190506127fe5f83018561234a565b61280b6020830184612273565b9392505050565b61281b81612240565b8114612825575f80fd5b50565b5f8151905061283681612812565b92915050565b5f6020828403121561285157612850612171565b5b5f61285e84828501612828565b91505092915050565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f6128c1602a836120eb565b91506128cc82612867565b604082019050919050565b5f6020820190508181035f8301526128ee816128b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61294f6024836120eb565b915061295a826128f5565b604082019050919050565b5f6020820190508181035f83015261297c81612943565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129dd6022836120eb565b91506129e882612983565b604082019050919050565b5f6020820190508181035f830152612a0a816129d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a6b6025836120eb565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612af96023836120eb565b9150612b0482612a9f565b604082019050919050565b5f6020820190508181035f830152612b2681612aed565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b876029836120eb565b9150612b9282612b2d565b604082019050919050565b5f6020820190508181035f830152612bb481612b7b565b9050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f612bef6020836120eb565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c576019836120eb565b9150612c6282612c23565b602082019050919050565b5f6020820190508181035f830152612c8481612c4b565b9050919050565b5f612c95826121cf565b9150612ca0836121cf565b9250828201905080821115612cb857612cb7612473565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cf2601a836120eb565b9150612cfd82612cbe565b602082019050919050565b5f6020820190508181035f830152612d1f81612ce6565b9050919050565b5f612d30826121cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d6257612d61612473565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612da16017836120eb565b9150612dac82612d6d565b602082019050919050565b5f6020820190508181035f830152612dce81612d95565b9050919050565b5f612ddf826121cf565b9150612dea836121cf565b9250828203905081811115612e0257612e01612473565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e9481612194565b82525050565b5f612ea58383612e8b565b60208301905092915050565b5f602082019050919050565b5f612ec782612e62565b612ed18185612e6c565b9350612edc83612e7c565b805f5b83811015612f0c578151612ef38882612e9a565b9750612efe83612eb1565b925050600181019050612edf565b5085935050505092915050565b5f60a082019050612f2c5f830188612273565b612f39602083018761244b565b8181036040830152612f4b8186612ebd565b9050612f5a606083018561234a565b612f676080830184612273565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fa8826121cf565b9150612fb3836121cf565b925082612fc357612fc2612f71565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130286021836120eb565b915061303382612fce565b604082019050919050565b5f6020820190508181035f8301526130558161301c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613090601b836120eb565b915061309b8261305c565b602082019050919050565b5f6020820190508181035f8301526130bd81613084565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205eeadd08edbdf28105ffa7746c3fb651ea13e2e8a5a642c305c84d97583deef864736f6c63430008190033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb14610389578063bf474bed146103c5578063c9567bf9146103ef578063dd62ed3e14610405578063f42938901461044157610129565b8063715018a6146102cb5780637d1db4a5146102e15780638da5cb5b1461030b5780638f9a55c01461033557806395d89b411461035f57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c8514610263578063622565891461027957806370a082311461028f57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610457565b60405161014e9190612151565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612202565b610494565b60405161018a919061225a565b60405180910390f35b34801561019e575f80fd5b506101a76104b1565b6040516101b49190612282565b60405180910390f35b3480156101c8575f80fd5b506101d16104b7565b005b3480156101de575f80fd5b506101e761058b565b6040516101f49190612282565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061229b565b6105ae565b604051610230919061225a565b60405180910390f35b348015610244575f80fd5b5061024d610682565b60405161025a9190612306565b60405180910390f35b34801561026e575f80fd5b5061027761068a565b005b348015610284575f80fd5b5061028d610721565b005b34801561029a575f80fd5b506102b560048036038101906102b0919061231f565b610850565b6040516102c29190612282565b60405180910390f35b3480156102d6575f80fd5b506102df610896565b005b3480156102ec575f80fd5b506102f56109e4565b6040516103029190612282565b60405180910390f35b348015610316575f80fd5b5061031f6109ea565b60405161032c9190612359565b60405180910390f35b348015610340575f80fd5b50610349610a11565b6040516103569190612282565b60405180910390f35b34801561036a575f80fd5b50610373610a17565b6040516103809190612151565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190612202565b610a54565b6040516103bc919061225a565b60405180910390f35b3480156103d0575f80fd5b506103d9610a71565b6040516103e69190612282565b60405180910390f35b3480156103fa575f80fd5b50610403610a77565b005b348015610410575f80fd5b5061042b60048036038101906104269190612372565b610fa0565b6040516104389190612282565b60405180910390f35b34801561044c575f80fd5b50610455611022565b005b60606040518060400160405280600581526020017f5452554d50000000000000000000000000000000000000000000000000000000815250905090565b5f6104a76104a06110d3565b84846110da565b6001905092915050565b60115481565b6104bf6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610542906123fa565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610581919061245a565b60405180910390a1565b5f6009600a61059a91906125cf565b633b9aca006105a99190612619565b905090565b5f6105ba84848461129d565b610677846105c66110d3565b610672856040518060600160405280602881526020016130c56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106296110d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bcd9092919063ffffffff16565b6110da565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ca6110d3565b73ffffffffffffffffffffffffffffffffffffffff16146106e9575f80fd5b5f6106f330610850565b90505f8111156107075761070681611c2f565b5b5f4790505f81111561071d5761071c81611e9a565b5b5050565b6107296110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906123fa565b60405180910390fd5b6009600a6107c391906125cf565b633b9aca006107d29190612619565b600e819055506009600a6107e691906125cf565b633b9aca006107f59190612619565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61082a91906125cf565b633b9aca006108399190612619565b6040516108469190612282565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61089e6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610921906123fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f494e4a5553544943450000000000000000000000000000000000000000000000815250905090565b5f610a67610a606110d3565b848461129d565b6001905092915050565b60105481565b610a7f6110d3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b02906123fa565b60405180910390fd5b601360149054906101000a900460ff1615610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b52906126a4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bf73060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610be391906125cf565b633b9aca00610bf29190612619565b6110da565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906126d6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2f91906126d6565b6040518363ffffffff1660e01b8152600401610d4c929190612701565b6020604051808303815f875af1158015610d68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8c91906126d6565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e1330610850565b5f80610e1d6109ea565b426040518863ffffffff1660e01b8152600401610e3f96959493929190612728565b60606040518083038185885af1158015610e5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e80919061279b565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f209291906127eb565b6020604051808303815f875af1158015610f3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f60919061283c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043601681905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110626110d3565b73ffffffffffffffffffffffffffffffffffffffff1614611081575f80fd5b5f4790505f81116110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906128d7565b60405180910390fd5b6110d081611e9a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612965565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad906129f3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112909190612282565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612a81565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090612b0f565b60405180910390fd5b5f81116113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b290612b9d565b60405180910390fd5b5f6113c46109ea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561143257506114026109ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191d575f600d540361147f5761147c606461146e600954600d541161145b5760055461145f565b6007545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b5f600d5411156114b4576114b160646114a3600c5485611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b6016544303611503576014600d5410611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f990612c05565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115ac575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115ff575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116f757600e54821115611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090612c6d565b60405180910390fd5b600f548261165685610850565b6116609190612c8b565b11156116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612d08565b60405180910390fd5b6116dd60646116cf600954600d54116116bc576005546116c0565b6007545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b9050600d5f8154809291906116f190612d26565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561177f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117c3576117c060646117b2600a54600d541161179f576006546117a3565b6008545b85611f0290919063ffffffff16565b611f7990919063ffffffff16565b90505b5f6117cd30610850565b9050601360159054906101000a900460ff16158015611838575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118505750601360169054906101000a900460ff165b801561185d575060105481115b801561186c5750600b54600d54115b1561191b57601554431115611883575f6014819055505b6003601454106118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612db7565b60405180910390fd5b6118e56118e0846118db84601154611fc2565b611fc2565b611c2f565b5f4790505f8111156118fb576118fa47611e9a565b5b60145f81548092919061190d90612d26565b919050555043601581905550505b505b5f811115611a1c576119758160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a139190612282565b60405180910390a35b611a6c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b0f611ac3828461203790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bb2848661203790919063ffffffff16565b604051611bbf9190612282565b60405180910390a350505050565b5f838311158290611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b9190612151565b60405180910390fd5b505f8385611c229190612dd5565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c6657611c65612e08565b5b604051908082528060200260200182016040528015611c945781602001602082028036833780820191505090505b50905030815f81518110611cab57611caa612e35565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7391906126d6565b81600181518110611d8757611d86612e35565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ded3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110da565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e4f959493929190612f19565b5f604051808303815f87803b158015611e66575f80fd5b505af1158015611e78573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611efe573d5f803e3d5ffd5b5050565b5f808303611f12575f9050611f73565b5f8284611f1f9190612619565b9050828482611f2e9190612f9e565b14611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f659061303e565b60405180910390fd5b809150505b92915050565b5f611fba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612080565b905092915050565b5f818311611fd05782611fd2565b815b905092915050565b5f808284611fe89190612c8b565b90508381101561202d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612024906130a6565b60405180910390fd5b8091505092915050565b5f61207883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bcd565b905092915050565b5f80831182906120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd9190612151565b60405180910390fd5b505f83856120d49190612f9e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612123826120e1565b61212d81856120eb565b935061213d8185602086016120fb565b61214681612109565b840191505092915050565b5f6020820190508181035f8301526121698184612119565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61219e82612175565b9050919050565b6121ae81612194565b81146121b8575f80fd5b50565b5f813590506121c9816121a5565b92915050565b5f819050919050565b6121e1816121cf565b81146121eb575f80fd5b50565b5f813590506121fc816121d8565b92915050565b5f806040838503121561221857612217612171565b5b5f612225858286016121bb565b9250506020612236858286016121ee565b9150509250929050565b5f8115159050919050565b61225481612240565b82525050565b5f60208201905061226d5f83018461224b565b92915050565b61227c816121cf565b82525050565b5f6020820190506122955f830184612273565b92915050565b5f805f606084860312156122b2576122b1612171565b5b5f6122bf868287016121bb565b93505060206122d0868287016121bb565b92505060406122e1868287016121ee565b9150509250925092565b5f60ff82169050919050565b612300816122eb565b82525050565b5f6020820190506123195f8301846122f7565b92915050565b5f6020828403121561233457612333612171565b5b5f612341848285016121bb565b91505092915050565b61235381612194565b82525050565b5f60208201905061236c5f83018461234a565b92915050565b5f806040838503121561238857612387612171565b5b5f612395858286016121bb565b92505060206123a6858286016121bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123e46020836120eb565b91506123ef826123b0565b602082019050919050565b5f6020820190508181035f830152612411816123d8565b9050919050565b5f819050919050565b5f819050919050565b5f61244461243f61243a84612418565b612421565b6121cf565b9050919050565b6124548161242a565b82525050565b5f60208201905061246d5f83018461244b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124f5578086048111156124d1576124d0612473565b5b60018516156124e05780820291505b80810290506124ee856124a0565b94506124b5565b94509492505050565b5f8261250d57600190506125c8565b8161251a575f90506125c8565b8160018114612530576002811461253a57612569565b60019150506125c8565b60ff84111561254c5761254b612473565b5b8360020a91508482111561256357612562612473565b5b506125c8565b5060208310610133831016604e8410600b841016171561259e5782820a90508381111561259957612598612473565b5b6125c8565b6125ab84848460016124ac565b925090508184048111156125c2576125c1612473565b5b81810290505b9392505050565b5f6125d9826121cf565b91506125e4836122eb565b92506126117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124fe565b905092915050565b5f612623826121cf565b915061262e836121cf565b925082820261263c816121cf565b9150828204841483151761265357612652612473565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61268e6017836120eb565b91506126998261265a565b602082019050919050565b5f6020820190508181035f8301526126bb81612682565b9050919050565b5f815190506126d0816121a5565b92915050565b5f602082840312156126eb576126ea612171565b5b5f6126f8848285016126c2565b91505092915050565b5f6040820190506127145f83018561234a565b612721602083018461234a565b9392505050565b5f60c08201905061273b5f83018961234a565b6127486020830188612273565b612755604083018761244b565b612762606083018661244b565b61276f608083018561234a565b61277c60a0830184612273565b979650505050505050565b5f81519050612795816121d8565b92915050565b5f805f606084860312156127b2576127b1612171565b5b5f6127bf86828701612787565b93505060206127d086828701612787565b92505060406127e186828701612787565b9150509250925092565b5f6040820190506127fe5f83018561234a565b61280b6020830184612273565b9392505050565b61281b81612240565b8114612825575f80fd5b50565b5f8151905061283681612812565b92915050565b5f6020828403121561285157612850612171565b5b5f61285e84828501612828565b91505092915050565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f6128c1602a836120eb565b91506128cc82612867565b604082019050919050565b5f6020820190508181035f8301526128ee816128b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61294f6024836120eb565b915061295a826128f5565b604082019050919050565b5f6020820190508181035f83015261297c81612943565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129dd6022836120eb565b91506129e882612983565b604082019050919050565b5f6020820190508181035f830152612a0a816129d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a6b6025836120eb565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612af96023836120eb565b9150612b0482612a9f565b604082019050919050565b5f6020820190508181035f830152612b2681612aed565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b876029836120eb565b9150612b9282612b2d565b604082019050919050565b5f6020820190508181035f830152612bb481612b7b565b9050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f612bef6020836120eb565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c576019836120eb565b9150612c6282612c23565b602082019050919050565b5f6020820190508181035f830152612c8481612c4b565b9050919050565b5f612c95826121cf565b9150612ca0836121cf565b9250828201905080821115612cb857612cb7612473565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cf2601a836120eb565b9150612cfd82612cbe565b602082019050919050565b5f6020820190508181035f830152612d1f81612ce6565b9050919050565b5f612d30826121cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d6257612d61612473565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612da16017836120eb565b9150612dac82612d6d565b602082019050919050565b5f6020820190508181035f830152612dce81612d95565b9050919050565b5f612ddf826121cf565b9150612dea836121cf565b9250828203905081811115612e0257612e01612473565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e9481612194565b82525050565b5f612ea58383612e8b565b60208301905092915050565b5f602082019050919050565b5f612ec782612e62565b612ed18185612e6c565b9350612edc83612e7c565b805f5b83811015612f0c578151612ef38882612e9a565b9750612efe83612eb1565b925050600181019050612edf565b5085935050505092915050565b5f60a082019050612f2c5f830188612273565b612f39602083018761244b565b8181036040830152612f4b8186612ebd565b9050612f5a606083018561234a565b612f676080830184612273565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fa8826121cf565b9150612fb3836121cf565b925082612fc357612fc2612f71565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130286021836120eb565b915061303382612fce565b604082019050919050565b5f6020820190508181035f8301526130558161301c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613090601b836120eb565b915061309b8261305c565b602082019050919050565b5f6020820190508181035f8301526130bd81613084565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205eeadd08edbdf28105ffa7746c3fb651ea13e2e8a5a642c305c84d97583deef864736f6c63430008190033

Deployed Bytecode Sourcemap

3598:8676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5639:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6472:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4693:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10664:118;;;;;;;;;;;;;:::i;:::-;;5916:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6641:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5825:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11910:361;;;;;;;;;;;;;:::i;:::-;;10498:158;;;;;;;;;;;;;:::i;:::-;;6019:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2679:148;;;;;;;;;;;;;:::i;:::-;;4516:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2465:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4572:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5730:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6146:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4630:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10890:712;;;;;;;;;;;;;:::i;:::-;;6321:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11647:255;;;;;;;;;;;;;:::i;:::-;;5639:83;5676:13;5709:5;;;;;;;;;;;;;;;;;5702:12;;5639:83;:::o;6472:161::-;6547:4;6564:39;6573:12;:10;:12::i;:::-;6587:7;6596:6;6564:8;:39::i;:::-;6621:4;6614:11;;6472:161;;;;:::o;4693:48::-;;;;:::o;10664:118::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10736:1:::1;10722:12;:15;;;;10753:21;10772:1;10753:21;;;;;;:::i;:::-;;;;;;;;10664:118::o:0;5916:95::-;5969:7;4325:1;4384:2;:13;;;;:::i;:::-;4368;:29;;;;:::i;:::-;5989:14;;5916:95;:::o;6641:313::-;6739:4;6756:36;6766:6;6774:9;6785:6;6756:9;:36::i;:::-;6803:121;6812:6;6820:12;:10;:12::i;:::-;6834:89;6872:6;6834:89;;;;;;;;;;;;;;;;;:11;:19;6846:6;6834:19;;;;;;;;;;;;;;;:33;6854:12;:10;:12::i;:::-;6834:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6803:8;:121::i;:::-;6942:4;6935:11;;6641:313;;;;;:::o;5825:83::-;5866:5;4325:1;5884:16;;5825:83;:::o;11910:361::-;11976:10;;;;;;;;;;;11960:26;;:12;:10;:12::i;:::-;:26;;;11952:35;;;;;;12000:20;12022:24;12040:4;12022:9;:24::i;:::-;12000:46;;12075:1;12060:12;:16;12057:76;;;12090:31;12108:12;12090:16;:31::i;:::-;12057:76;12145:18;12166:21;12145:42;;12213:1;12201:10;:13;12198:66;;;12228:24;12241:10;12228:12;:24::i;:::-;12198:66;11941:330;;11910:361::o;10498:158::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4325:1:::1;4384:2;:13;;;;:::i;:::-;4368;:29;;;;:::i;:::-;10550:12;:21;;;;4325:1;4384:2;:13;;;;:::i;:::-;4368;:29;;;;:::i;:::-;10582:14;:23;;;;10621:27;4325:1;4384:2;:13;;;;:::i;:::-;4368;:29;;;;:::i;:::-;10621:27;;;;;;:::i;:::-;;;;;;;;10498:158::o:0;6019:119::-;6085:7;6112:9;:18;6122:7;6112:18;;;;;;;;;;;;;;;;6105:25;;6019:119;;;:::o;2679:148::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2786:1:::1;2749:40;;2770:6;::::0;::::1;;;;;;;;2749:40;;;;;;;;;;;;2817:1;2800:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2679:148::o:0;4516:49::-;;;;:::o;2465:79::-;2503:7;2530:6;;;;;;;;;;;2523:13;;2465:79;:::o;4572:51::-;;;;:::o;5730:87::-;5769:13;5802:7;;;;;;;;;;;;;;;;;5795:14;;5730:87;:::o;6146:167::-;6224:4;6241:42;6251:12;:10;:12::i;:::-;6265:9;6276:6;6241:9;:42::i;:::-;6301:4;6294:11;;6146:167;;;;:::o;4630:56::-;;;;:::o;10890:712::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10954:11:::1;;;;;;;;;;;10953:12;10945:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11040:42;11003:15;;:80;;;;;;;;;;;;;;;;;;11094:58;11111:4;11126:15;;;;;;;;;;;4325:1;4384:2;:13;;;;:::i;:::-;4368;:29;;;;:::i;:::-;11094:8;:58::i;:::-;11197:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11179:55;;;11243:4;11250:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11179:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11163:13;;:110;;;;;;;;;;;;;;;;;;11284:15;;;;;;;;;;;:31;;;11323:21;11354:4;11361:24;11379:4;11361:9;:24::i;:::-;11387:1;11390::::0;11393:7:::1;:5;:7::i;:::-;11402:15;11284:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11436:13;;;;;;;;;;;11429:29;;;11467:15;;;;;;;;;;;11485:14;11429:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11525:4;11511:11;;:18;;;;;;;;;;;;;;;;;;11554:4;11540:11;;:18;;;;;;;;;;;;;;;;;;11582:12;11569:10;:25;;;;10890:712::o:0;6321:143::-;6402:7;6429:11;:18;6441:5;6429:18;;;;;;;;;;;;;;;:27;6448:7;6429:27;;;;;;;;;;;;;;;;6422:34;;6321:143;;;;:::o;11647:255::-;11713:10;;;;;;;;;;;11697:26;;:12;:10;:12::i;:::-;:26;;;11689:35;;;;;;11737:18;11758:21;11737:42;;11811:1;11798:10;:14;11790:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11870:24;11883:10;11870:12;:24::i;:::-;11678:224;11647:255::o;220:98::-;273:7;300:10;293:17;;220:98;:::o;6962:335::-;7072:1;7055:19;;:5;:19;;;7047:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7153:1;7134:21;;:7;:21;;;7126:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7235:6;7205:11;:18;7217:5;7205:18;;;;;;;;;;;;;;;:27;7224:7;7205:27;;;;;;;;;;;;;;;:36;;;;7273:7;7257:32;;7266:5;7257:32;;;7282:6;7257:32;;;;;;:::i;:::-;;;;;;;;6962:335;;;:::o;7305:2580::-;7409:1;7393:18;;:4;:18;;;7385:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7486:1;7472:16;;:2;:16;;;7464:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7556:1;7547:6;:10;7539:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7614:17;7658:7;:5;:7::i;:::-;7650:15;;:4;:15;;;;:32;;;;;7675:7;:5;:7::i;:::-;7669:13;;:2;:13;;;;7650:32;7646:1872;;;7717:1;7704:9;;:14;7701:147;;7750:82;7828:3;7750:73;7774:15;;7762:9;;:27;7761:61;;7808:14;;7761:61;;;7793:12;;7761:61;7750:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;7738:94;;7701:147;7879:1;7867:9;;:13;7864:97;;;7912:33;7941:3;7912:24;7923:12;;7912:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7900:45;;7864:97;7996:10;;7980:12;:26;7977:124;;8046:2;8034:9;;:14;8026:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7977:124;8129:13;;;;;;;;;;;8121:21;;:4;:21;;;:55;;;;;8160:15;;;;;;;;;;;8146:30;;:2;:30;;;;8121:55;:83;;;;;8182:18;:22;8201:2;8182:22;;;;;;;;;;;;;;;;;;;;;;;;;8180:24;8121:83;8117:426;;;8244:12;;8234:6;:22;;8226:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8339:14;;8329:6;8313:13;8323:2;8313:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8305:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8415:82;8493:3;8415:73;8439:15;;8427:9;;:27;8426:61;;8473:14;;8426:61;;;8458:12;;8426:61;8415:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8403:94;;8516:9;;:11;;;;;;;;;:::i;:::-;;;;;;8117:426;8568:13;;;;;;;;;;;8562:19;;:2;:19;;;:44;;;;;8601:4;8585:21;;:4;:21;;;;8562:44;8559:181;;;8639:85;8720:3;8639:76;8663:16;;8651:9;;:28;8650:64;;8699:15;;8650:64;;;8683:13;;8650:64;8639:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;8627:97;;8559:181;8756:28;8787:24;8805:4;8787:9;:24::i;:::-;8756:55;;8831:6;;;;;;;;;;;8830:7;:30;;;;;8847:13;;;;;;;;;;;8841:19;;:2;:19;;;8830:30;:45;;;;;8864:11;;;;;;;;;;;8830:45;:89;;;;;8902:17;;8879:20;:40;8830:89;:123;;;;;8935:18;;8923:9;;:30;8830:123;8826:681;;;8993:13;;8978:12;:28;8974:90;;;9043:1;9031:9;:13;;;;8974:90;9102:1;9090:9;;:13;9082:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:67;9169:49;9173:6;9180:37;9184:20;9205:11;;9180:3;:37::i;:::-;9169:3;:49::i;:::-;9152:16;:67::i;:::-;9238:26;9267:21;9238:50;;9332:1;9311:18;:22;9307:106;;;9358:35;9371:21;9358:12;:35::i;:::-;9307:106;9433:9;;:11;;;;;;;;;:::i;:::-;;;;;;9479:12;9463:13;:28;;;;8955:552;8826:681;7684:1834;7646:1872;9545:1;9533:9;:13;9530:166;;;9587:39;9616:9;9587;:24;9605:4;9587:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9560:9;:24;9578:4;9560:24;;;;;;;;;;;;;;;:66;;;;9667:4;9644:40;;9653:4;9644:40;;;9674:9;9644:40;;;;;;:::i;:::-;;;;;;;;9530:166;9726:27;9746:6;9726:9;:15;9736:4;9726:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9708:9;:15;9718:4;9708:15;;;;;;;;;;;;;;;:45;;;;9780:40;9798:21;9809:9;9798:6;:10;;:21;;;;:::i;:::-;9780:9;:13;9790:2;9780:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9764:9;:13;9774:2;9764:13;;;;;;;;;;;;;;;:56;;;;9851:2;9836:41;;9845:4;9836:41;;;9855:21;9866:9;9855:6;:10;;:21;;;;:::i;:::-;9836:41;;;;;;:::i;:::-;;;;;;;;7374:2511;7305:2580;;;:::o;1357:190::-;1443:7;1476:1;1471;:6;;1479:12;1463:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1503:9;1519:1;1515;:5;;;;:::i;:::-;1503:17;;1538:1;1531:8;;;1357:190;;;;;:::o;10007:483::-;5257:4;5248:6;;:13;;;;;;;;;;;;;;;;;;10085:21:::1;10123:1;10109:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10085:40;;10154:4;10136;10141:1;10136:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10180:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10170:4;10175:1;10170:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10213:62;10230:4;10245:15;;;;;;;;;;;10263:11;10213:8;:62::i;:::-;10286:15;;;;;;;;;;;:66;;;10367:11;10393:1;10409:4;10436;10456:15;10286:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10074:416;5293:5:::0;5284:6;;:14;;;;;;;;;;;;;;;;;;10007:483;:::o;10790:92::-;10847:10;;;;;;;;;;;:19;;:27;10867:6;10847:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:92;:::o;1555:246::-;1613:7;1642:1;1637;:6;1633:47;;1667:1;1660:8;;;;1633:47;1690:9;1706:1;1702;:5;;;;:::i;:::-;1690:17;;1735:1;1730;1726;:5;;;;:::i;:::-;:10;1718:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1792:1;1785:8;;;1555:246;;;;;:::o;1809:132::-;1867:7;1894:39;1898:1;1901;1894:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1887:46;;1809:132;;;;:::o;9895:104::-;9952:7;9981:1;9977;:5;9976:15;;9990:1;9976:15;;;9986:1;9976:15;9969:22;;9895:104;;;;:::o;1026:179::-;1084:7;1104:9;1120:1;1116;:5;;;;:::i;:::-;1104:17;;1145:1;1140;:6;;1132:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1196:1;1189:8;;;1026:179;;;;:::o;1213:136::-;1271:7;1298:43;1302:1;1305;1298:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1291:50;;1213:136;;;;:::o;1949:189::-;2035:7;2067:1;2063;:5;2070:12;2055:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2094:9;2110:1;2106;:5;;;;:::i;:::-;2094:17;;2129:1;2122:8;;;1949:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:182::-;6053:34;6049:1;6041:6;6037:14;6030:58;5913:182;:::o;6101:366::-;6243:3;6264:67;6328:2;6323:3;6264:67;:::i;:::-;6257:74;;6340:93;6429:3;6340:93;:::i;:::-;6458:2;6453:3;6449:12;6442:19;;6101:366;;;:::o;6473:419::-;6639:4;6677:2;6666:9;6662:18;6654:26;;6726:9;6720:4;6716:20;6712:1;6701:9;6697:17;6690:47;6754:131;6880:4;6754:131;:::i;:::-;6746:139;;6473:419;;;:::o;6898:85::-;6943:7;6972:5;6961:16;;6898:85;;;:::o;6989:60::-;7017:3;7038:5;7031:12;;6989:60;;;:::o;7055:158::-;7113:9;7146:61;7164:42;7173:32;7199:5;7173:32;:::i;:::-;7164:42;:::i;:::-;7146:61;:::i;:::-;7133:74;;7055:158;;;:::o;7219:147::-;7314:45;7353:5;7314:45;:::i;:::-;7309:3;7302:58;7219:147;;:::o;7372:238::-;7473:4;7511:2;7500:9;7496:18;7488:26;;7524:79;7600:1;7589:9;7585:17;7576:6;7524:79;:::i;:::-;7372:238;;;;:::o;7616:180::-;7664:77;7661:1;7654:88;7761:4;7758:1;7751:15;7785:4;7782:1;7775:15;7802:102;7844:8;7891:5;7888:1;7884:13;7863:34;;7802:102;;;:::o;7910:848::-;7971:5;7978:4;8002:6;7993:15;;8026:5;8017:14;;8040:712;8061:1;8051:8;8048:15;8040:712;;;8156:4;8151:3;8147:14;8141:4;8138:24;8135:50;;;8165:18;;:::i;:::-;8135:50;8215:1;8205:8;8201:16;8198:451;;;8630:4;8623:5;8619:16;8610:25;;8198:451;8680:4;8674;8670:15;8662:23;;8710:32;8733:8;8710:32;:::i;:::-;8698:44;;8040:712;;;7910:848;;;;;;;:::o;8764:1073::-;8818:5;9009:8;8999:40;;9030:1;9021:10;;9032:5;;8999:40;9058:4;9048:36;;9075:1;9066:10;;9077:5;;9048:36;9144:4;9192:1;9187:27;;;;9228:1;9223:191;;;;9137:277;;9187:27;9205:1;9196:10;;9207:5;;;9223:191;9268:3;9258:8;9255:17;9252:43;;;9275:18;;:::i;:::-;9252:43;9324:8;9321:1;9317:16;9308:25;;9359:3;9352:5;9349:14;9346:40;;;9366:18;;:::i;:::-;9346:40;9399:5;;;9137:277;;9523:2;9513:8;9510:16;9504:3;9498:4;9495:13;9491:36;9473:2;9463:8;9460:16;9455:2;9449:4;9446:12;9442:35;9426:111;9423:246;;;9579:8;9573:4;9569:19;9560:28;;9614:3;9607:5;9604:14;9601:40;;;9621:18;;:::i;:::-;9601:40;9654:5;;9423:246;9694:42;9732:3;9722:8;9716:4;9713:1;9694:42;:::i;:::-;9679:57;;;;9768:4;9763:3;9759:14;9752:5;9749:25;9746:51;;;9777:18;;:::i;:::-;9746:51;9826:4;9819:5;9815:16;9806:25;;8764:1073;;;;;;:::o;9843:281::-;9901:5;9925:23;9943:4;9925:23;:::i;:::-;9917:31;;9969:25;9985:8;9969:25;:::i;:::-;9957:37;;10013:104;10050:66;10040:8;10034:4;10013:104;:::i;:::-;10004:113;;9843:281;;;;:::o;10130:410::-;10170:7;10193:20;10211:1;10193:20;:::i;:::-;10188:25;;10227:20;10245:1;10227:20;:::i;:::-;10222:25;;10282:1;10279;10275:9;10304:30;10322:11;10304:30;:::i;:::-;10293:41;;10483:1;10474:7;10470:15;10467:1;10464:22;10444:1;10437:9;10417:83;10394:139;;10513:18;;:::i;:::-;10394:139;10178:362;10130:410;;;;:::o;10546:173::-;10686:25;10682:1;10674:6;10670:14;10663:49;10546:173;:::o;10725:366::-;10867:3;10888:67;10952:2;10947:3;10888:67;:::i;:::-;10881:74;;10964:93;11053:3;10964:93;:::i;:::-;11082:2;11077:3;11073:12;11066:19;;10725:366;;;:::o;11097:419::-;11263:4;11301:2;11290:9;11286:18;11278:26;;11350:9;11344:4;11340:20;11336:1;11325:9;11321:17;11314:47;11378:131;11504:4;11378:131;:::i;:::-;11370:139;;11097:419;;;:::o;11522:143::-;11579:5;11610:6;11604:13;11595:22;;11626:33;11653:5;11626:33;:::i;:::-;11522:143;;;;:::o;11671:351::-;11741:6;11790:2;11778:9;11769:7;11765:23;11761:32;11758:119;;;11796:79;;:::i;:::-;11758:119;11916:1;11941:64;11997:7;11988:6;11977:9;11973:22;11941:64;:::i;:::-;11931:74;;11887:128;11671:351;;;;:::o;12028:332::-;12149:4;12187:2;12176:9;12172:18;12164:26;;12200:71;12268:1;12257:9;12253:17;12244:6;12200:71;:::i;:::-;12281:72;12349:2;12338:9;12334:18;12325:6;12281:72;:::i;:::-;12028:332;;;;;:::o;12366:807::-;12615:4;12653:3;12642:9;12638:19;12630:27;;12667:71;12735:1;12724:9;12720:17;12711:6;12667:71;:::i;:::-;12748:72;12816:2;12805:9;12801:18;12792:6;12748:72;:::i;:::-;12830:80;12906:2;12895:9;12891:18;12882:6;12830:80;:::i;:::-;12920;12996:2;12985:9;12981:18;12972:6;12920:80;:::i;:::-;13010:73;13078:3;13067:9;13063:19;13054:6;13010:73;:::i;:::-;13093;13161:3;13150:9;13146:19;13137:6;13093:73;:::i;:::-;12366:807;;;;;;;;;:::o;13179:143::-;13236:5;13267:6;13261:13;13252:22;;13283:33;13310:5;13283:33;:::i;:::-;13179:143;;;;:::o;13328:663::-;13416:6;13424;13432;13481:2;13469:9;13460:7;13456:23;13452:32;13449:119;;;13487:79;;:::i;:::-;13449:119;13607:1;13632:64;13688:7;13679:6;13668:9;13664:22;13632:64;:::i;:::-;13622:74;;13578:128;13745:2;13771:64;13827:7;13818:6;13807:9;13803:22;13771:64;:::i;:::-;13761:74;;13716:129;13884:2;13910:64;13966:7;13957:6;13946:9;13942:22;13910:64;:::i;:::-;13900:74;;13855:129;13328:663;;;;;:::o;13997:332::-;14118:4;14156:2;14145:9;14141:18;14133:26;;14169:71;14237:1;14226:9;14222:17;14213:6;14169:71;:::i;:::-;14250:72;14318:2;14307:9;14303:18;14294:6;14250:72;:::i;:::-;13997:332;;;;;:::o;14335:116::-;14405:21;14420:5;14405:21;:::i;:::-;14398:5;14395:32;14385:60;;14441:1;14438;14431:12;14385:60;14335:116;:::o;14457:137::-;14511:5;14542:6;14536:13;14527:22;;14558:30;14582:5;14558:30;:::i;:::-;14457:137;;;;:::o;14600:345::-;14667:6;14716:2;14704:9;14695:7;14691:23;14687:32;14684:119;;;14722:79;;:::i;:::-;14684:119;14842:1;14867:61;14920:7;14911:6;14900:9;14896:22;14867:61;:::i;:::-;14857:71;;14813:125;14600:345;;;;:::o;14951:229::-;15091:34;15087:1;15079:6;15075:14;15068:58;15160:12;15155:2;15147:6;15143:15;15136:37;14951:229;:::o;15186:366::-;15328:3;15349:67;15413:2;15408:3;15349:67;:::i;:::-;15342:74;;15425:93;15514:3;15425:93;:::i;:::-;15543:2;15538:3;15534:12;15527:19;;15186:366;;;:::o;15558:419::-;15724:4;15762:2;15751:9;15747:18;15739:26;;15811:9;15805:4;15801:20;15797:1;15786:9;15782:17;15775:47;15839:131;15965:4;15839:131;:::i;:::-;15831:139;;15558:419;;;:::o;15983:223::-;16123:34;16119:1;16111:6;16107:14;16100:58;16192:6;16187:2;16179:6;16175:15;16168:31;15983:223;:::o;16212:366::-;16354:3;16375:67;16439:2;16434:3;16375:67;:::i;:::-;16368:74;;16451:93;16540:3;16451:93;:::i;:::-;16569:2;16564:3;16560:12;16553:19;;16212:366;;;:::o;16584:419::-;16750:4;16788:2;16777:9;16773:18;16765:26;;16837:9;16831:4;16827:20;16823:1;16812:9;16808:17;16801:47;16865:131;16991:4;16865:131;:::i;:::-;16857:139;;16584:419;;;:::o;17009:221::-;17149:34;17145:1;17137:6;17133:14;17126:58;17218:4;17213:2;17205:6;17201:15;17194:29;17009:221;:::o;17236:366::-;17378:3;17399:67;17463:2;17458:3;17399:67;:::i;:::-;17392:74;;17475:93;17564:3;17475:93;:::i;:::-;17593:2;17588:3;17584:12;17577:19;;17236:366;;;:::o;17608:419::-;17774:4;17812:2;17801:9;17797:18;17789:26;;17861:9;17855:4;17851:20;17847:1;17836:9;17832:17;17825:47;17889:131;18015:4;17889:131;:::i;:::-;17881:139;;17608:419;;;:::o;18033:224::-;18173:34;18169:1;18161:6;18157:14;18150:58;18242:7;18237:2;18229:6;18225:15;18218:32;18033:224;:::o;18263:366::-;18405:3;18426:67;18490:2;18485:3;18426:67;:::i;:::-;18419:74;;18502:93;18591:3;18502:93;:::i;:::-;18620:2;18615:3;18611:12;18604:19;;18263:366;;;:::o;18635:419::-;18801:4;18839:2;18828:9;18824:18;18816:26;;18888:9;18882:4;18878:20;18874:1;18863:9;18859:17;18852:47;18916:131;19042:4;18916:131;:::i;:::-;18908:139;;18635:419;;;:::o;19060:222::-;19200:34;19196:1;19188:6;19184:14;19177:58;19269:5;19264:2;19256:6;19252:15;19245:30;19060:222;:::o;19288:366::-;19430:3;19451:67;19515:2;19510:3;19451:67;:::i;:::-;19444:74;;19527:93;19616:3;19527:93;:::i;:::-;19645:2;19640:3;19636:12;19629:19;;19288:366;;;:::o;19660:419::-;19826:4;19864:2;19853:9;19849:18;19841:26;;19913:9;19907:4;19903:20;19899:1;19888:9;19884:17;19877:47;19941:131;20067:4;19941:131;:::i;:::-;19933:139;;19660:419;;;:::o;20085:228::-;20225:34;20221:1;20213:6;20209:14;20202:58;20294:11;20289:2;20281:6;20277:15;20270:36;20085:228;:::o;20319:366::-;20461:3;20482:67;20546:2;20541:3;20482:67;:::i;:::-;20475:74;;20558:93;20647:3;20558:93;:::i;:::-;20676:2;20671:3;20667:12;20660:19;;20319:366;;;:::o;20691:419::-;20857:4;20895:2;20884:9;20880:18;20872:26;;20944:9;20938:4;20934:20;20930:1;20919:9;20915:17;20908:47;20972:131;21098:4;20972:131;:::i;:::-;20964:139;;20691:419;;;:::o;21116:182::-;21256:34;21252:1;21244:6;21240:14;21233:58;21116:182;:::o;21304:366::-;21446:3;21467:67;21531:2;21526:3;21467:67;:::i;:::-;21460:74;;21543:93;21632:3;21543:93;:::i;:::-;21661:2;21656:3;21652:12;21645:19;;21304:366;;;:::o;21676:419::-;21842:4;21880:2;21869:9;21865:18;21857:26;;21929:9;21923:4;21919:20;21915:1;21904:9;21900:17;21893:47;21957:131;22083:4;21957:131;:::i;:::-;21949:139;;21676:419;;;:::o;22101:175::-;22241:27;22237:1;22229:6;22225:14;22218:51;22101:175;:::o;22282:366::-;22424:3;22445:67;22509:2;22504:3;22445:67;:::i;:::-;22438:74;;22521:93;22610:3;22521:93;:::i;:::-;22639:2;22634:3;22630:12;22623:19;;22282:366;;;:::o;22654:419::-;22820:4;22858:2;22847:9;22843:18;22835:26;;22907:9;22901:4;22897:20;22893:1;22882:9;22878:17;22871:47;22935:131;23061:4;22935:131;:::i;:::-;22927:139;;22654:419;;;:::o;23079:191::-;23119:3;23138:20;23156:1;23138:20;:::i;:::-;23133:25;;23172:20;23190:1;23172:20;:::i;:::-;23167:25;;23215:1;23212;23208:9;23201:16;;23236:3;23233:1;23230:10;23227:36;;;23243:18;;:::i;:::-;23227:36;23079:191;;;;:::o;23276:176::-;23416:28;23412:1;23404:6;23400:14;23393:52;23276:176;:::o;23458:366::-;23600:3;23621:67;23685:2;23680:3;23621:67;:::i;:::-;23614:74;;23697:93;23786:3;23697:93;:::i;:::-;23815:2;23810:3;23806:12;23799:19;;23458:366;;;:::o;23830:419::-;23996:4;24034:2;24023:9;24019:18;24011:26;;24083:9;24077:4;24073:20;24069:1;24058:9;24054:17;24047:47;24111:131;24237:4;24111:131;:::i;:::-;24103:139;;23830:419;;;:::o;24255:233::-;24294:3;24317:24;24335:5;24317:24;:::i;:::-;24308:33;;24363:66;24356:5;24353:77;24350:103;;24433:18;;:::i;:::-;24350:103;24480:1;24473:5;24469:13;24462:20;;24255:233;;;:::o;24494:173::-;24634:25;24630:1;24622:6;24618:14;24611:49;24494:173;:::o;24673:366::-;24815:3;24836:67;24900:2;24895:3;24836:67;:::i;:::-;24829:74;;24912:93;25001:3;24912:93;:::i;:::-;25030:2;25025:3;25021:12;25014:19;;24673:366;;;:::o;25045:419::-;25211:4;25249:2;25238:9;25234:18;25226:26;;25298:9;25292:4;25288:20;25284:1;25273:9;25269:17;25262:47;25326:131;25452:4;25326:131;:::i;:::-;25318:139;;25045:419;;;:::o;25470:194::-;25510:4;25530:20;25548:1;25530:20;:::i;:::-;25525:25;;25564:20;25582:1;25564:20;:::i;:::-;25559:25;;25608:1;25605;25601:9;25593:17;;25632:1;25626:4;25623:11;25620:37;;;25637:18;;:::i;:::-;25620:37;25470:194;;;;:::o;25670:180::-;25718:77;25715:1;25708:88;25815:4;25812:1;25805:15;25839:4;25836:1;25829:15;25856:180;25904:77;25901:1;25894:88;26001:4;25998:1;25991:15;26025:4;26022:1;26015:15;26042:114;26109:6;26143:5;26137:12;26127:22;;26042:114;;;:::o;26162:184::-;26261:11;26295:6;26290:3;26283:19;26335:4;26330:3;26326:14;26311:29;;26162:184;;;;:::o;26352:132::-;26419:4;26442:3;26434:11;;26472:4;26467:3;26463:14;26455:22;;26352:132;;;:::o;26490:108::-;26567:24;26585:5;26567:24;:::i;:::-;26562:3;26555:37;26490:108;;:::o;26604:179::-;26673:10;26694:46;26736:3;26728:6;26694:46;:::i;:::-;26772:4;26767:3;26763:14;26749:28;;26604:179;;;;:::o;26789:113::-;26859:4;26891;26886:3;26882:14;26874:22;;26789:113;;;:::o;26938:732::-;27057:3;27086:54;27134:5;27086:54;:::i;:::-;27156:86;27235:6;27230:3;27156:86;:::i;:::-;27149:93;;27266:56;27316:5;27266:56;:::i;:::-;27345:7;27376:1;27361:284;27386:6;27383:1;27380:13;27361:284;;;27462:6;27456:13;27489:63;27548:3;27533:13;27489:63;:::i;:::-;27482:70;;27575:60;27628:6;27575:60;:::i;:::-;27565:70;;27421:224;27408:1;27405;27401:9;27396:14;;27361:284;;;27365:14;27661:3;27654:10;;27062:608;;;26938:732;;;;:::o;27676:831::-;27939:4;27977:3;27966:9;27962:19;27954:27;;27991:71;28059:1;28048:9;28044:17;28035:6;27991:71;:::i;:::-;28072:80;28148:2;28137:9;28133:18;28124:6;28072:80;:::i;:::-;28199:9;28193:4;28189:20;28184:2;28173:9;28169:18;28162:48;28227:108;28330:4;28321:6;28227:108;:::i;:::-;28219:116;;28345:72;28413:2;28402:9;28398:18;28389:6;28345:72;:::i;:::-;28427:73;28495:3;28484:9;28480:19;28471:6;28427:73;:::i;:::-;27676:831;;;;;;;;:::o;28513:180::-;28561:77;28558:1;28551:88;28658:4;28655:1;28648:15;28682:4;28679:1;28672:15;28699:185;28739:1;28756:20;28774:1;28756:20;:::i;:::-;28751:25;;28790:20;28808:1;28790:20;:::i;:::-;28785:25;;28829:1;28819:35;;28834:18;;:::i;:::-;28819:35;28876:1;28873;28869:9;28864:14;;28699:185;;;;:::o;28890:220::-;29030:34;29026:1;29018:6;29014:14;29007:58;29099:3;29094:2;29086:6;29082:15;29075:28;28890:220;:::o;29116:366::-;29258:3;29279:67;29343:2;29338:3;29279:67;:::i;:::-;29272:74;;29355:93;29444:3;29355:93;:::i;:::-;29473:2;29468:3;29464:12;29457:19;;29116:366;;;:::o;29488:419::-;29654:4;29692:2;29681:9;29677:18;29669:26;;29741:9;29735:4;29731:20;29727:1;29716:9;29712:17;29705:47;29769:131;29895:4;29769:131;:::i;:::-;29761:139;;29488:419;;;:::o;29913:177::-;30053:29;30049:1;30041:6;30037:14;30030:53;29913:177;:::o;30096:366::-;30238:3;30259:67;30323:2;30318:3;30259:67;:::i;:::-;30252:74;;30335:93;30424:3;30335:93;:::i;:::-;30453:2;30448:3;30444:12;30437:19;;30096:366;;;:::o;30468:419::-;30634:4;30672:2;30661:9;30657:18;30649:26;;30721:9;30715:4;30711:20;30707:1;30696:9;30692:17;30685:47;30749:131;30875:4;30749:131;:::i;:::-;30741:139;;30468:419;;;:::o

Swarm Source

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