ETH Price: $3,337.63 (+0.38%)

Token

QuantumSphere (QS)
 

Overview

Max Total Supply

100,000,000 QS

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
135,132.10923734607767851 QS

Value
$0.00
0xb24cdad178f4d45e83b9cec65fbd815a42eb998e
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:
QS

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-24
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;


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;
    }

}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 QS is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    address payable public _quantumMarketingWallet = payable(0xFa0b5088662398cDC8f5b01Eb5c556a3b082445C);

    uint256 public _quantumBuy = 5;
    uint256 public _quantumSell = 5;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"QuantumSphere";
    string private constant _symbol = unicode"QS";
    uint256 public _taxSwapThreshold= 50000 * 10**_decimals;
   
    uint256 public _quantumMaxWallet = 2000000 * 10 ** decimals();

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = true;

    bool public tradeActivated = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
      //  IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //testnet router
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_quantumMarketingWallet] = 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 (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            require(tradeActivated, "Trading not activated");

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= _quantumMaxWallet, "Cant be higher than QS Max wallet amount.");
            }

            if(_quantumBuy > 0) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_quantumBuy).div(100);
            }
            }

            if(_quantumSell > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_quantumSell).div(100);
            }
            }

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

        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 {
        if(tokenAmount==0){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
       (bool callSuccess, ) = payable(_quantumMarketingWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }

    receive() external payable {}

    function activateQuantumTrading() public onlyOwner {
        require(tradeActivated != true, "Trade already enabled");
        tradeActivated = true;
    }

    function modifyQuantumTaxes(uint256 _qsBuy, uint256 _qsSell) public onlyOwner {
        _quantumBuy = _qsBuy;
        _quantumSell = _qsSell;
    }

    function changeQuantumMaxWallet(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        _quantumMaxWallet = _maxLimit;
    }

    function whiteListFromFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function pullStuckEth() public onlyOwner {
        require(address(this).balance > 0, "No stuck Ether");
        uint256 ethBalance = address(this).balance;

        (bool callSuccess, ) = payable(msg.sender).call{value: ethBalance}(
            ""
        );
        require(callSuccess, "Call failed");
    }

    function updateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner{
        _taxSwapThreshold = _taxLimit;
    }

    function includeInFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }

    
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quantumBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quantumMarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quantumMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quantumSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activateQuantumTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeQuantumMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_qsBuy","type":"uint256"},{"internalType":"uint256","name":"_qsSell","type":"uint256"}],"name":"modifyQuantumTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pullStuckEth","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":[],"name":"tradeActivated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"updateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273fa0b5088662398cdc8f5b01eb5c556a3b082445c60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005805560056006556012600a61006f919061079f565b61c35061007c91906107e9565b60075561008d61053760201b60201c565b600a610099919061079f565b621e84806100a791906107e9565b6008555f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055505f600a60166101000a81548160ff021916908315150217905550348015610104575f80fd5b5061012161011661053f60201b60201c565b61054660201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610182573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a69190610888565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f9190610888565b6040518363ffffffff1660e01b815260040161024c9291906108c2565b6020604051808303815f875af1158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c9190610888565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a610319919061079f565b6305f5e10061032891906107e9565b60015f61033961053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038961060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b161053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050d919061079f565b6305f5e10061051c91906107e9565b60405161052991906108f8565b60405180910390a350610911565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106b05780860481111561068c5761068b61062e565b5b600185161561069b5780820291505b80810290506106a98561065b565b9450610670565b94509492505050565b5f826106c85760019050610783565b816106d5575f9050610783565b81600181146106eb57600281146106f557610724565b6001915050610783565b60ff8411156107075761070661062e565b5b8360020a91508482111561071e5761071d61062e565b5b50610783565b5060208310610133831016604e8410600b84101617156107595782820a9050838111156107545761075361062e565b5b610783565b6107668484846001610667565b9250905081840481111561077d5761077c61062e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107a98261078a565b91506107b483610793565b92506107e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106b9565b905092915050565b5f6107f38261078a565b91506107fe8361078a565b925082820261080c8161078a565b915082820484148315176108235761082261062e565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108578261082e565b9050919050565b6108678161084d565b8114610871575f80fd5b50565b5f815190506108828161085e565b92915050565b5f6020828403121561089d5761089c61082a565b5b5f6108aa84828501610874565b91505092915050565b6108bc8161084d565b82525050565b5f6040820190506108d55f8301856108b3565b6108e260208301846108b3565b9392505050565b6108f28161078a565b82525050565b5f60208201905061090b5f8301846108e9565b92915050565b612c668061091e5f395ff3fe608060405260043610610184575f3560e01c80637a88f5dc116100d0578063dd62ed3e11610089578063f2fde38b11610063578063f2fde38b14610567578063f41757901461058f578063fd05829f146105b7578063fd264ddd146105e15761018b565b8063dd62ed3e146104ed578063e80a658014610529578063ea2f0b371461053f5761018b565b80637a88f5dc146103df5780638da5cb5b146104095780639486dd221461043357806395d89b411461045d578063a9059cbb14610487578063bf474bed146104c35761018b565b806337c18b751161013d5780636900e343116101175780636900e3431461032757806370a0823114610351578063715018a61461038d578063768dc710146103a35761018b565b806337c18b75146102ad578063503ad8f6146102d5578063508f6dfb146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e157806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cb1565b6105f7565b005b3480156101c2575f80fd5b506101cb610609565b6040516101d89190611d4c565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dc6565b610646565b6040516102149190611e1e565b60405180910390f35b348015610228575f80fd5b50610231610663565b60405161023e9190611e46565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611e5f565b610686565b60405161027a9190611e1e565b60405180910390f35b34801561028e575f80fd5b5061029761075a565b6040516102a49190611eca565b60405180910390f35b3480156102b8575f80fd5b506102d360048036038101906102ce9190611cb1565b610762565b005b3480156102e0575f80fd5b506102e96107d0565b6040516102f69190611e46565b60405180910390f35b34801561030a575f80fd5b5061032560048036038101906103209190611ee3565b6107d6565b005b348015610332575f80fd5b5061033b610836565b6040516103489190611f2e565b60405180910390f35b34801561035c575f80fd5b5061037760048036038101906103729190611ee3565b61085b565b6040516103849190611e46565b60405180910390f35b348015610398575f80fd5b506103a16108a1565b005b3480156103ae575f80fd5b506103c960048036038101906103c49190611ee3565b6108b4565b6040516103d69190611e1e565b60405180910390f35b3480156103ea575f80fd5b506103f36108d1565b6040516104009190611e1e565b60405180910390f35b348015610414575f80fd5b5061041d6108e4565b60405161042a9190611f56565b60405180910390f35b34801561043e575f80fd5b5061044761090b565b6040516104549190611e46565b60405180910390f35b348015610468575f80fd5b50610471610911565b60405161047e9190611d4c565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a89190611dc6565b61094e565b6040516104ba9190611e1e565b60405180910390f35b3480156104ce575f80fd5b506104d761096b565b6040516104e49190611e46565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190611f6f565b610971565b6040516105209190611e46565b60405180910390f35b348015610534575f80fd5b5061053d6109f3565b005b34801561054a575f80fd5b5061056560048036038101906105609190611ee3565b610aed565b005b348015610572575f80fd5b5061058d60048036038101906105889190611ee3565b610b4c565b005b34801561059a575f80fd5b506105b560048036038101906105b09190611fad565b610bce565b005b3480156105c2575f80fd5b506105cb610be8565b6040516105d89190611e46565b60405180910390f35b3480156105ec575f80fd5b506105f5610bee565b005b6105ff610c69565b8060078190555050565b60606040518060400160405280600d81526020017f5175616e74756d53706865726500000000000000000000000000000000000000815250905090565b5f610659610652610ce7565b8484610cee565b6001905092915050565b5f6012600a6106729190612147565b6305f5e1006106819190612191565b905090565b5f610692848484610eb1565b61074f8461069e610ce7565b61074a85604051806060016040528060288152602001612c096028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610701610ce7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164f9092919063ffffffff16565b610cee565b600190509392505050565b5f6012905090565b61076a610c69565b61078560c8610777610663565b6116b190919063ffffffff16565b81116107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd9061221c565b60405180910390fd5b8060088190555050565b60065481565b6107de610c69565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108a9610c69565b6108b25f6116fa565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b600a60169054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600281526020017f5153000000000000000000000000000000000000000000000000000000000000815250905090565b5f61096161095a610ce7565b8484610eb1565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109fb610c69565b5f4711610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3490612284565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610a66906122cf565b5f6040518083038185875af1925050503d805f8114610aa0576040519150601f19603f3d011682016040523d82523d5f602084013e610aa5565b606091505b5050905080610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061232d565b60405180910390fd5b5050565b610af5610c69565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b54610c69565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906123bb565b60405180910390fd5b610bcb816116fa565b50565b610bd6610c69565b81600581905550806006819055505050565b60055481565b610bf6610c69565b60011515600a60169054906101000a900460ff16151503610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390612423565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b610c71610ce7565b73ffffffffffffffffffffffffffffffffffffffff16610c8f6108e4565b73ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc9061248b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390612519565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc1906125a7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea49190611e46565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612635565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f84906126c3565b60405180910390fd5b5f8111610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690612751565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139f57600a60169054906101000a900460ff166110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906127b9565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116f57600854826111238561085b565b61112d91906127d7565b111561116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111659061287a565b60405180910390fd5b5b5f600554111561125357600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611222575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112525761124f6064611241600554856117bb90919063ffffffff16565b6116b190919063ffffffff16565b90505b5b5f60065411156112dd57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112dc576112d960646112cb600654856117bb90919063ffffffff16565b6116b190919063ffffffff16565b90505b5b5f6112e73061085b565b9050600a60149054906101000a900460ff161580156113525750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561136a5750600a60159054906101000a900460ff165b8015611377575060075481115b1561139d5761138581611832565b5f4790505f81111561139b5761139a47611aa6565b5b505b505b5f81111561149e576113f78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114959190611e46565b60405180910390a35b6114ee8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115916115458284611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116348486611bd090919063ffffffff16565b6040516116419190611e46565b60405180910390a350505050565b5f838311158290611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d9190611d4c565b60405180910390fd5b505f83856116a49190612898565b9050809150509392505050565b5f6116f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c19565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036117cb575f905061182c565b5f82846117d89190612191565b90508284826117e791906128f8565b14611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e90612998565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a89575f600267ffffffffffffffff811115611871576118706129b6565b5b60405190808252806020026020018201604052801561189f5781602001602082028036833780820191505090505b50905030815f815181106118b6576118b56129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197e9190612a24565b81600181518110611992576119916129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f83060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cee565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a5a959493929190612b48565b5f604051808303815f87803b158015611a71575f80fd5b505af1158015611a83573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aec906122cf565b5f6040518083038185875af1925050503d805f8114611b26576040519150601f19603f3d011682016040523d82523d5f602084013e611b2b565b606091505b5050905080611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b669061232d565b60405180910390fd5b5050565b5f808284611b8191906127d7565b905083811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612bea565b60405180910390fd5b8091505092915050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164f565b905092915050565b5f8083118290611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569190611d4c565b60405180910390fd5b505f8385611c6d91906128f8565b9050809150509392505050565b5f80fd5b5f819050919050565b611c9081611c7e565b8114611c9a575f80fd5b50565b5f81359050611cab81611c87565b92915050565b5f60208284031215611cc657611cc5611c7a565b5b5f611cd384828501611c9d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d1e82611cdc565b611d288185611ce6565b9350611d38818560208601611cf6565b611d4181611d04565b840191505092915050565b5f6020820190508181035f830152611d648184611d14565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9582611d6c565b9050919050565b611da581611d8b565b8114611daf575f80fd5b50565b5f81359050611dc081611d9c565b92915050565b5f8060408385031215611ddc57611ddb611c7a565b5b5f611de985828601611db2565b9250506020611dfa85828601611c9d565b9150509250929050565b5f8115159050919050565b611e1881611e04565b82525050565b5f602082019050611e315f830184611e0f565b92915050565b611e4081611c7e565b82525050565b5f602082019050611e595f830184611e37565b92915050565b5f805f60608486031215611e7657611e75611c7a565b5b5f611e8386828701611db2565b9350506020611e9486828701611db2565b9250506040611ea586828701611c9d565b9150509250925092565b5f60ff82169050919050565b611ec481611eaf565b82525050565b5f602082019050611edd5f830184611ebb565b92915050565b5f60208284031215611ef857611ef7611c7a565b5b5f611f0584828501611db2565b91505092915050565b5f611f1882611d6c565b9050919050565b611f2881611f0e565b82525050565b5f602082019050611f415f830184611f1f565b92915050565b611f5081611d8b565b82525050565b5f602082019050611f695f830184611f47565b92915050565b5f8060408385031215611f8557611f84611c7a565b5b5f611f9285828601611db2565b9250506020611fa385828601611db2565b9150509250929050565b5f8060408385031215611fc357611fc2611c7a565b5b5f611fd085828601611c9d565b9250506020611fe185828601611c9d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206d5780860481111561204957612048611feb565b5b60018516156120585780820291505b808102905061206685612018565b945061202d565b94509492505050565b5f826120855760019050612140565b81612092575f9050612140565b81600181146120a857600281146120b2576120e1565b6001915050612140565b60ff8411156120c4576120c3611feb565b5b8360020a9150848211156120db576120da611feb565b5b50612140565b5060208310610133831016604e8410600b84101617156121165782820a90508381111561211157612110611feb565b5b612140565b6121238484846001612024565b9250905081840481111561213a57612139611feb565b5b81810290505b9392505050565b5f61215182611c7e565b915061215c83611eaf565b92506121897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612076565b905092915050565b5f61219b82611c7e565b91506121a683611c7e565b92508282026121b481611c7e565b915082820484148315176121cb576121ca611feb565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612206600e83611ce6565b9150612211826121d2565b602082019050919050565b5f6020820190508181035f830152612233816121fa565b9050919050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f61226e600e83611ce6565b91506122798261223a565b602082019050919050565b5f6020820190508181035f83015261229b81612262565b9050919050565b5f81905092915050565b50565b5f6122ba5f836122a2565b91506122c5826122ac565b5f82019050919050565b5f6122d9826122af565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612317600b83611ce6565b9150612322826122e3565b602082019050919050565b5f6020820190508181035f8301526123448161230b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123a5602683611ce6565b91506123b08261234b565b604082019050919050565b5f6020820190508181035f8301526123d281612399565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f61240d601583611ce6565b9150612418826123d9565b602082019050919050565b5f6020820190508181035f83015261243a81612401565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612475602083611ce6565b915061248082612441565b602082019050919050565b5f6020820190508181035f8301526124a281612469565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612503602483611ce6565b915061250e826124a9565b604082019050919050565b5f6020820190508181035f830152612530816124f7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612591602283611ce6565b915061259c82612537565b604082019050919050565b5f6020820190508181035f8301526125be81612585565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261f602583611ce6565b915061262a826125c5565b604082019050919050565b5f6020820190508181035f83015261264c81612613565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ad602383611ce6565b91506126b882612653565b604082019050919050565b5f6020820190508181035f8301526126da816126a1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273b602983611ce6565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f54726164696e67206e6f742061637469766174656400000000000000000000005f82015250565b5f6127a3601583611ce6565b91506127ae8261276f565b602082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b5f6127e182611c7e565b91506127ec83611c7e565b925082820190508082111561280457612803611feb565b5b92915050565b7f43616e7420626520686967686572207468616e205153204d61782077616c6c655f8201527f7420616d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f612864602983611ce6565b915061286f8261280a565b604082019050919050565b5f6020820190508181035f83015261289181612858565b9050919050565b5f6128a282611c7e565b91506128ad83611c7e565b92508282039050818111156128c5576128c4611feb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290282611c7e565b915061290d83611c7e565b92508261291d5761291c6128cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612982602183611ce6565b915061298d82612928565b604082019050919050565b5f6020820190508181035f8301526129af81612976565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1e81611d9c565b92915050565b5f60208284031215612a3957612a38611c7a565b5b5f612a4684828501612a10565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7b612a76612a7184612a4f565b612a58565b611c7e565b9050919050565b612a8b81612a61565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac381611d8b565b82525050565b5f612ad48383612aba565b60208301905092915050565b5f602082019050919050565b5f612af682612a91565b612b008185612a9b565b9350612b0b83612aab565b805f5b83811015612b3b578151612b228882612ac9565b9750612b2d83612ae0565b925050600181019050612b0e565b5085935050505092915050565b5f60a082019050612b5b5f830188611e37565b612b686020830187612a82565b8181036040830152612b7a8186612aec565b9050612b896060830185611f47565b612b966080830184611e37565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd4601b83611ce6565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122036d5347cee0c56b44a041a98ece70f060ea7bbad13f8c71d17cf79dae1b97ef364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610184575f3560e01c80637a88f5dc116100d0578063dd62ed3e11610089578063f2fde38b11610063578063f2fde38b14610567578063f41757901461058f578063fd05829f146105b7578063fd264ddd146105e15761018b565b8063dd62ed3e146104ed578063e80a658014610529578063ea2f0b371461053f5761018b565b80637a88f5dc146103df5780638da5cb5b146104095780639486dd221461043357806395d89b411461045d578063a9059cbb14610487578063bf474bed146104c35761018b565b806337c18b751161013d5780636900e343116101175780636900e3431461032757806370a0823114610351578063715018a61461038d578063768dc710146103a35761018b565b806337c18b75146102ad578063503ad8f6146102d5578063508f6dfb146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e157806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cb1565b6105f7565b005b3480156101c2575f80fd5b506101cb610609565b6040516101d89190611d4c565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dc6565b610646565b6040516102149190611e1e565b60405180910390f35b348015610228575f80fd5b50610231610663565b60405161023e9190611e46565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611e5f565b610686565b60405161027a9190611e1e565b60405180910390f35b34801561028e575f80fd5b5061029761075a565b6040516102a49190611eca565b60405180910390f35b3480156102b8575f80fd5b506102d360048036038101906102ce9190611cb1565b610762565b005b3480156102e0575f80fd5b506102e96107d0565b6040516102f69190611e46565b60405180910390f35b34801561030a575f80fd5b5061032560048036038101906103209190611ee3565b6107d6565b005b348015610332575f80fd5b5061033b610836565b6040516103489190611f2e565b60405180910390f35b34801561035c575f80fd5b5061037760048036038101906103729190611ee3565b61085b565b6040516103849190611e46565b60405180910390f35b348015610398575f80fd5b506103a16108a1565b005b3480156103ae575f80fd5b506103c960048036038101906103c49190611ee3565b6108b4565b6040516103d69190611e1e565b60405180910390f35b3480156103ea575f80fd5b506103f36108d1565b6040516104009190611e1e565b60405180910390f35b348015610414575f80fd5b5061041d6108e4565b60405161042a9190611f56565b60405180910390f35b34801561043e575f80fd5b5061044761090b565b6040516104549190611e46565b60405180910390f35b348015610468575f80fd5b50610471610911565b60405161047e9190611d4c565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a89190611dc6565b61094e565b6040516104ba9190611e1e565b60405180910390f35b3480156104ce575f80fd5b506104d761096b565b6040516104e49190611e46565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190611f6f565b610971565b6040516105209190611e46565b60405180910390f35b348015610534575f80fd5b5061053d6109f3565b005b34801561054a575f80fd5b5061056560048036038101906105609190611ee3565b610aed565b005b348015610572575f80fd5b5061058d60048036038101906105889190611ee3565b610b4c565b005b34801561059a575f80fd5b506105b560048036038101906105b09190611fad565b610bce565b005b3480156105c2575f80fd5b506105cb610be8565b6040516105d89190611e46565b60405180910390f35b3480156105ec575f80fd5b506105f5610bee565b005b6105ff610c69565b8060078190555050565b60606040518060400160405280600d81526020017f5175616e74756d53706865726500000000000000000000000000000000000000815250905090565b5f610659610652610ce7565b8484610cee565b6001905092915050565b5f6012600a6106729190612147565b6305f5e1006106819190612191565b905090565b5f610692848484610eb1565b61074f8461069e610ce7565b61074a85604051806060016040528060288152602001612c096028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610701610ce7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164f9092919063ffffffff16565b610cee565b600190509392505050565b5f6012905090565b61076a610c69565b61078560c8610777610663565b6116b190919063ffffffff16565b81116107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd9061221c565b60405180910390fd5b8060088190555050565b60065481565b6107de610c69565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108a9610c69565b6108b25f6116fa565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b600a60169054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600281526020017f5153000000000000000000000000000000000000000000000000000000000000815250905090565b5f61096161095a610ce7565b8484610eb1565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109fb610c69565b5f4711610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3490612284565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610a66906122cf565b5f6040518083038185875af1925050503d805f8114610aa0576040519150601f19603f3d011682016040523d82523d5f602084013e610aa5565b606091505b5050905080610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061232d565b60405180910390fd5b5050565b610af5610c69565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b54610c69565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906123bb565b60405180910390fd5b610bcb816116fa565b50565b610bd6610c69565b81600581905550806006819055505050565b60055481565b610bf6610c69565b60011515600a60169054906101000a900460ff16151503610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390612423565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b610c71610ce7565b73ffffffffffffffffffffffffffffffffffffffff16610c8f6108e4565b73ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc9061248b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390612519565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc1906125a7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea49190611e46565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612635565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f84906126c3565b60405180910390fd5b5f8111610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690612751565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139f57600a60169054906101000a900460ff166110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906127b9565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116f57600854826111238561085b565b61112d91906127d7565b111561116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111659061287a565b60405180910390fd5b5b5f600554111561125357600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611222575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112525761124f6064611241600554856117bb90919063ffffffff16565b6116b190919063ffffffff16565b90505b5b5f60065411156112dd57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112dc576112d960646112cb600654856117bb90919063ffffffff16565b6116b190919063ffffffff16565b90505b5b5f6112e73061085b565b9050600a60149054906101000a900460ff161580156113525750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561136a5750600a60159054906101000a900460ff165b8015611377575060075481115b1561139d5761138581611832565b5f4790505f81111561139b5761139a47611aa6565b5b505b505b5f81111561149e576113f78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114959190611e46565b60405180910390a35b6114ee8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115916115458284611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116348486611bd090919063ffffffff16565b6040516116419190611e46565b60405180910390a350505050565b5f838311158290611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d9190611d4c565b60405180910390fd5b505f83856116a49190612898565b9050809150509392505050565b5f6116f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c19565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036117cb575f905061182c565b5f82846117d89190612191565b90508284826117e791906128f8565b14611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e90612998565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a89575f600267ffffffffffffffff811115611871576118706129b6565b5b60405190808252806020026020018201604052801561189f5781602001602082028036833780820191505090505b50905030815f815181106118b6576118b56129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197e9190612a24565b81600181518110611992576119916129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f83060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cee565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a5a959493929190612b48565b5f604051808303815f87803b158015611a71575f80fd5b505af1158015611a83573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aec906122cf565b5f6040518083038185875af1925050503d805f8114611b26576040519150601f19603f3d011682016040523d82523d5f602084013e611b2b565b606091505b5050905080611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b669061232d565b60405180910390fd5b5050565b5f808284611b8191906127d7565b905083811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612bea565b60405180910390fd5b8091505092915050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164f565b905092915050565b5f8083118290611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569190611d4c565b60405180910390fd5b505f8385611c6d91906128f8565b9050809150509392505050565b5f80fd5b5f819050919050565b611c9081611c7e565b8114611c9a575f80fd5b50565b5f81359050611cab81611c87565b92915050565b5f60208284031215611cc657611cc5611c7a565b5b5f611cd384828501611c9d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d1e82611cdc565b611d288185611ce6565b9350611d38818560208601611cf6565b611d4181611d04565b840191505092915050565b5f6020820190508181035f830152611d648184611d14565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9582611d6c565b9050919050565b611da581611d8b565b8114611daf575f80fd5b50565b5f81359050611dc081611d9c565b92915050565b5f8060408385031215611ddc57611ddb611c7a565b5b5f611de985828601611db2565b9250506020611dfa85828601611c9d565b9150509250929050565b5f8115159050919050565b611e1881611e04565b82525050565b5f602082019050611e315f830184611e0f565b92915050565b611e4081611c7e565b82525050565b5f602082019050611e595f830184611e37565b92915050565b5f805f60608486031215611e7657611e75611c7a565b5b5f611e8386828701611db2565b9350506020611e9486828701611db2565b9250506040611ea586828701611c9d565b9150509250925092565b5f60ff82169050919050565b611ec481611eaf565b82525050565b5f602082019050611edd5f830184611ebb565b92915050565b5f60208284031215611ef857611ef7611c7a565b5b5f611f0584828501611db2565b91505092915050565b5f611f1882611d6c565b9050919050565b611f2881611f0e565b82525050565b5f602082019050611f415f830184611f1f565b92915050565b611f5081611d8b565b82525050565b5f602082019050611f695f830184611f47565b92915050565b5f8060408385031215611f8557611f84611c7a565b5b5f611f9285828601611db2565b9250506020611fa385828601611db2565b9150509250929050565b5f8060408385031215611fc357611fc2611c7a565b5b5f611fd085828601611c9d565b9250506020611fe185828601611c9d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206d5780860481111561204957612048611feb565b5b60018516156120585780820291505b808102905061206685612018565b945061202d565b94509492505050565b5f826120855760019050612140565b81612092575f9050612140565b81600181146120a857600281146120b2576120e1565b6001915050612140565b60ff8411156120c4576120c3611feb565b5b8360020a9150848211156120db576120da611feb565b5b50612140565b5060208310610133831016604e8410600b84101617156121165782820a90508381111561211157612110611feb565b5b612140565b6121238484846001612024565b9250905081840481111561213a57612139611feb565b5b81810290505b9392505050565b5f61215182611c7e565b915061215c83611eaf565b92506121897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612076565b905092915050565b5f61219b82611c7e565b91506121a683611c7e565b92508282026121b481611c7e565b915082820484148315176121cb576121ca611feb565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612206600e83611ce6565b9150612211826121d2565b602082019050919050565b5f6020820190508181035f830152612233816121fa565b9050919050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f61226e600e83611ce6565b91506122798261223a565b602082019050919050565b5f6020820190508181035f83015261229b81612262565b9050919050565b5f81905092915050565b50565b5f6122ba5f836122a2565b91506122c5826122ac565b5f82019050919050565b5f6122d9826122af565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612317600b83611ce6565b9150612322826122e3565b602082019050919050565b5f6020820190508181035f8301526123448161230b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123a5602683611ce6565b91506123b08261234b565b604082019050919050565b5f6020820190508181035f8301526123d281612399565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f61240d601583611ce6565b9150612418826123d9565b602082019050919050565b5f6020820190508181035f83015261243a81612401565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612475602083611ce6565b915061248082612441565b602082019050919050565b5f6020820190508181035f8301526124a281612469565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612503602483611ce6565b915061250e826124a9565b604082019050919050565b5f6020820190508181035f830152612530816124f7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612591602283611ce6565b915061259c82612537565b604082019050919050565b5f6020820190508181035f8301526125be81612585565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261f602583611ce6565b915061262a826125c5565b604082019050919050565b5f6020820190508181035f83015261264c81612613565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ad602383611ce6565b91506126b882612653565b604082019050919050565b5f6020820190508181035f8301526126da816126a1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273b602983611ce6565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f54726164696e67206e6f742061637469766174656400000000000000000000005f82015250565b5f6127a3601583611ce6565b91506127ae8261276f565b602082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b5f6127e182611c7e565b91506127ec83611c7e565b925082820190508082111561280457612803611feb565b5b92915050565b7f43616e7420626520686967686572207468616e205153204d61782077616c6c655f8201527f7420616d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f612864602983611ce6565b915061286f8261280a565b604082019050919050565b5f6020820190508181035f83015261289181612858565b9050919050565b5f6128a282611c7e565b91506128ad83611c7e565b92508282039050818111156128c5576128c4611feb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290282611c7e565b915061290d83611c7e565b92508261291d5761291c6128cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612982602183611ce6565b915061298d82612928565b604082019050919050565b5f6020820190508181035f8301526129af81612976565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1e81611d9c565b92915050565b5f60208284031215612a3957612a38611c7a565b5b5f612a4684828501612a10565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7b612a76612a7184612a4f565b612a58565b611c7e565b9050919050565b612a8b81612a61565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac381611d8b565b82525050565b5f612ad48383612aba565b60208301905092915050565b5f602082019050919050565b5f612af682612a91565b612b008185612a9b565b9350612b0b83612aab565b805f5b83811015612b3b578151612b228882612ac9565b9750612b2d83612ae0565b925050600181019050612b0e565b5085935050505092915050565b5f60a082019050612b5b5f830188611e37565b612b686020830187612a82565b8181036040830152612b7a8186612aec565b9050612b896060830185611f47565b612b966080830184611e37565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd4601b83611ce6565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122036d5347cee0c56b44a041a98ece70f060ea7bbad13f8c71d17cf79dae1b97ef364736f6c634300081a0033

Deployed Bytecode Sourcemap

4812:7539:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12105:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6778:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7611:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7055:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7780:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6964:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11466:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5227:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11660:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5081:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7158:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3233:103;;;;;;;;;;;;;:::i;:::-;;5023:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5787:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2592:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5558:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6869:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7285:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5491:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7460:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11779:318;;;;;;;;;;;;;:::i;:::-;;12228:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3491:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11308:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5190:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11142:158;;;;;;;;;;;;;:::i;:::-;;12105:115;2478:13;:11;:13::i;:::-;12203:9:::1;12183:17;:29;;;;12105:115:::0;:::o;6778:83::-;6815:13;6848:5;;;;;;;;;;;;;;;;;6841:12;;6778:83;:::o;7611:161::-;7686:4;7703:39;7712:12;:10;:12::i;:::-;7726:7;7735:6;7703:8;:39::i;:::-;7760:4;7753:11;;7611:161;;;;:::o;7055:95::-;7108:7;5302:2;5358;:13;;;;:::i;:::-;5346:9;:25;;;;:::i;:::-;7128:14;;7055:95;:::o;7780:313::-;7878:4;7895:36;7905:6;7913:9;7924:6;7895:9;:36::i;:::-;7942:121;7951:6;7959:12;:10;:12::i;:::-;7973:89;8011:6;7973:89;;;;;;;;;;;;;;;;;:11;:19;7985:6;7973:19;;;;;;;;;;;;;;;:33;7993:12;:10;:12::i;:::-;7973:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7942:8;:121::i;:::-;8081:4;8074:11;;7780:313;;;;;:::o;6964:83::-;7005:5;5302:2;7023:16;;6964:83;:::o;11466:186::-;2478:13;:11;:13::i;:::-;11564:22:::1;11582:3;11564:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;11552:9;:34;11544:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11635:9;11615:17;:29;;;;11466:186:::0;:::o;5227:31::-;;;;:::o;11660:111::-;2478:13;:11;:13::i;:::-;11759:4:::1;11730:18;:26;11749:6;11730:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11660:111:::0;:::o;5081:100::-;;;;;;;;;;;;;:::o;7158:119::-;7224:7;7251:9;:18;7261:7;7251:18;;;;;;;;;;;;;;;;7244:25;;7158:119;;;:::o;3233:103::-;2478:13;:11;:13::i;:::-;3298:30:::1;3325:1;3298:18;:30::i;:::-;3233:103::o:0;5023:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;5787:34::-;;;;;;;;;;;;;:::o;2592:87::-;2638:7;2665:6;;;;;;;;;;;2658:13;;2592:87;:::o;5558:61::-;;;;:::o;6869:87::-;6908:13;6941:7;;;;;;;;;;;;;;;;;6934:14;;6869:87;:::o;7285:167::-;7363:4;7380:42;7390:12;:10;:12::i;:::-;7404:9;7415:6;7380:9;:42::i;:::-;7440:4;7433:11;;7285:167;;;;:::o;5491:55::-;;;;:::o;7460:143::-;7541:7;7568:11;:18;7580:5;7568:18;;;;;;;;;;;;;;;:27;7587:7;7568:27;;;;;;;;;;;;;;;;7561:34;;7460:143;;;;:::o;11779:318::-;2478:13;:11;:13::i;:::-;11863:1:::1;11839:21;:25;11831:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11894:18;11915:21;11894:42;;11950:16;11980:10;11972:24;;12004:10;11972:71;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11949:94;;;12062:11;12054:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11820:277;;11779:318::o:0;12228:108::-;2478:13;:11;:13::i;:::-;12323:5:::1;12294:18;:26;12313:6;12294:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12228:108:::0;:::o;3491:201::-;2478:13;:11;:13::i;:::-;3600:1:::1;3580:22;;:8;:22;;::::0;3572:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3656:28;3675:8;3656:18;:28::i;:::-;3491:201:::0;:::o;11308:150::-;2478:13;:11;:13::i;:::-;11411:6:::1;11397:11;:20;;;;11443:7;11428:12;:22;;;;11308:150:::0;;:::o;5190:30::-;;;;:::o;11142:158::-;2478:13;:11;:13::i;:::-;11230:4:::1;11212:22;;:14;;;;;;;;;;;:22;;::::0;11204:56:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11288:4;11271:14;;:21;;;;;;;;;;;;;;;;;;11142:158::o:0;2757:132::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2757:132::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;8101:335::-;8211:1;8194:19;;:5;:19;;;8186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8292:1;8273:21;;:7;:21;;;8265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8374:6;8344:11;:18;8356:5;8344:18;;;;;;;;;;;;;;;:27;8363:7;8344:27;;;;;;;;;;;;;;;:36;;;;8412:7;8396:32;;8405:5;8396:32;;;8421:6;8396:32;;;;;;:::i;:::-;;;;;;;;8101:335;;;:::o;8444:1820::-;8548:1;8532:18;;:4;:18;;;8524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:1;8611:16;;:2;:16;;;8603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8695:1;8686:6;:10;8678:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8753:17;8788:18;:24;8807:4;8788:24;;;;;;;;;;;;;;;;;;;;;;;;;8787:25;:52;;;;;8817:18;:22;8836:2;8817:22;;;;;;;;;;;;;;;;;;;;;;;;;8816:23;8787:52;8783:1125;;;8866:14;;;;;;;;;;;8858:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8932:13;;;;;;;;;;;8926:19;;:2;:19;;;8923:154;;8998:17;;8988:6;8972:13;8982:2;8972:9;:13::i;:::-;:22;;;;:::i;:::-;:43;;8964:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;8923:154;9110:1;9096:11;;:15;9093:190;;;9140:13;;;;;;;;;;;9132:21;;:4;:21;;;:55;;;;;9171:15;;;;;;;;;;;9157:30;;:2;:30;;;;9132:55;9128:140;;;9220:32;9248:3;9220:23;9231:11;;9220:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9208:44;;9128:140;9093:190;9317:1;9302:12;;:16;9299:154;;;9344:13;;;;;;;;;;;9338:19;;:2;:19;;;9335:103;;9389:33;9418:3;9389:24;9400:12;;9389:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9377:45;;9335:103;9299:154;9469:28;9500:24;9518:4;9500:9;:24::i;:::-;9469:55;;9544:6;;;;;;;;;;;9543:7;:30;;;;;9560:13;;;;;;;;;;;9554:19;;:2;:19;;;9543:30;:45;;;;;9577:11;;;;;;;;;;;9543:45;:87;;;;;9613:17;;9592:20;:38;9543:87;9539:358;;;9651:38;9668:20;9651:16;:38::i;:::-;9708:26;9737:21;9708:50;;9801:1;9780:18;:22;9777:105;;;9827:35;9840:21;9827:12;:35::i;:::-;9777:105;9632:265;9539:358;8841:1067;8783:1125;9933:1;9923:9;:11;9920:161;;;9973:39;10002:9;9973;:24;9991:4;9973:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9948:9;:24;9966:4;9948:24;;;;;;;;;;;;;;;:64;;;;10053:4;10030:39;;10039:4;10030:39;;;10059:9;10030:39;;;;;;:::i;:::-;;;;;;;;9920:161;10107:27;10127:6;10107:9;:15;10117:4;10107:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10091:9;:15;10101:4;10091:15;;;;;;;;;;;;;;;:43;;;;10159:40;10177:21;10188:9;10177:6;:10;;:21;;;;:::i;:::-;10159:9;:13;10169:2;10159:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10145:9;:13;10155:2;10145:13;;;;;;;;;;;;;;;:54;;;;10230:2;10215:41;;10224:4;10215:41;;;10234:21;10245:9;10234:6;:10;;:21;;;;:::i;:::-;10215:41;;;;;;:::i;:::-;;;;;;;;8513:1751;8444:1820;;;:::o;1232:190::-;1318:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1378:9;1394:1;1390;:5;;;;:::i;:::-;1378:17;;1413:1;1406:8;;;1232:190;;;;;:::o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1762:46;;1684:132;;;;:::o;3852:191::-;3926:16;3945:6;;;;;;;;;;;3926:25;;3971:8;3962:6;;:17;;;;;;;;;;;;;;;;;;4026:8;3995:40;;4016:8;3995:40;;;;;;;;;;;;3915:128;3852:191;:::o;1430:246::-;1488:7;1517:1;1512;:6;1508:47;;1542:1;1535:8;;;;1508:47;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1610:1;1605;1601;:5;;;;:::i;:::-;:10;1593:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:1;1660:8;;;1430:246;;;;;:::o;10380:520::-;5871:4;5862:6;;:13;;;;;;;;;;;;;;;;;;10474:1:::1;10461:11;:14:::0;10458:27;10477:7:::1;10458:27;10495:21;10533:1;10519:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10495:40;;10564:4;10546;10551:1;10546:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10590:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10580:4;10585:1;10580:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10623:62;10640:4;10655:15;;;;;;;;;;;10673:11;10623:8;:62::i;:::-;10696:15;;;;;;;;;;;:66;;;10777:11;10803:1;10819:4;10846;10866:15;10696:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10447:453;5886:1;5907:5:::0;5898:6;;:14;;;;;;;;;;;;;;;;;;10380:520;:::o;10908:189::-;10965:16;10995:23;;;;;;;;;;;10987:37;;11032:6;10987:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10964:79;;;11062:11;11054:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10954:143;10908:189;:::o;901:179::-;959:7;979:9;995:1;991;:5;;;;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;901:179;;;;:::o;1088:136::-;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1166:50;;1088:136;;;;:::o;1824:189::-;1910:7;1942:1;1938;:5;1945:12;1930:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1969:9;1985:1;1981;:5;;;;:::i;:::-;1969:17;;2004:1;1997:8;;;1824:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:104::-;5461:7;5490:24;5508:5;5490:24;:::i;:::-;5479:35;;5416:104;;;:::o;5526:142::-;5629:32;5655:5;5629:32;:::i;:::-;5624:3;5617:45;5526:142;;:::o;5674:254::-;5783:4;5821:2;5810:9;5806:18;5798:26;;5834:87;5918:1;5907:9;5903:17;5894:6;5834:87;:::i;:::-;5674:254;;;;:::o;5934:118::-;6021:24;6039:5;6021:24;:::i;:::-;6016:3;6009:37;5934:118;;:::o;6058:222::-;6151:4;6189:2;6178:9;6174:18;6166:26;;6202:71;6270:1;6259:9;6255:17;6246:6;6202:71;:::i;:::-;6058:222;;;;:::o;6286:474::-;6354:6;6362;6411:2;6399:9;6390:7;6386:23;6382:32;6379:119;;;6417:79;;:::i;:::-;6379:119;6537:1;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6508:117;6664:2;6690:53;6735:7;6726:6;6715:9;6711:22;6690:53;:::i;:::-;6680:63;;6635:118;6286:474;;;;;:::o;6766:::-;6834:6;6842;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7017:1;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6988:117;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;6766:474;;;;;:::o;7246:180::-;7294:77;7291:1;7284:88;7391:4;7388:1;7381:15;7415:4;7412:1;7405:15;7432:102;7474:8;7521:5;7518:1;7514:13;7493:34;;7432:102;;;:::o;7540:848::-;7601:5;7608:4;7632:6;7623:15;;7656:5;7647:14;;7670:712;7691:1;7681:8;7678:15;7670:712;;;7786:4;7781:3;7777:14;7771:4;7768:24;7765:50;;;7795:18;;:::i;:::-;7765:50;7845:1;7835:8;7831:16;7828:451;;;8260:4;8253:5;8249:16;8240:25;;7828:451;8310:4;8304;8300:15;8292:23;;8340:32;8363:8;8340:32;:::i;:::-;8328:44;;7670:712;;;7540:848;;;;;;;:::o;8394:1073::-;8448:5;8639:8;8629:40;;8660:1;8651:10;;8662:5;;8629:40;8688:4;8678:36;;8705:1;8696:10;;8707:5;;8678:36;8774:4;8822:1;8817:27;;;;8858:1;8853:191;;;;8767:277;;8817:27;8835:1;8826:10;;8837:5;;;8853:191;8898:3;8888:8;8885:17;8882:43;;;8905:18;;:::i;:::-;8882:43;8954:8;8951:1;8947:16;8938:25;;8989:3;8982:5;8979:14;8976:40;;;8996:18;;:::i;:::-;8976:40;9029:5;;;8767:277;;9153:2;9143:8;9140:16;9134:3;9128:4;9125:13;9121:36;9103:2;9093:8;9090:16;9085:2;9079:4;9076:12;9072:35;9056:111;9053:246;;;9209:8;9203:4;9199:19;9190:28;;9244:3;9237:5;9234:14;9231:40;;;9251:18;;:::i;:::-;9231:40;9284:5;;9053:246;9324:42;9362:3;9352:8;9346:4;9343:1;9324:42;:::i;:::-;9309:57;;;;9398:4;9393:3;9389:14;9382:5;9379:25;9376:51;;;9407:18;;:::i;:::-;9376:51;9456:4;9449:5;9445:16;9436:25;;8394:1073;;;;;;:::o;9473:281::-;9531:5;9555:23;9573:4;9555:23;:::i;:::-;9547:31;;9599:25;9615:8;9599:25;:::i;:::-;9587:37;;9643:104;9680:66;9670:8;9664:4;9643:104;:::i;:::-;9634:113;;9473:281;;;;:::o;9760:410::-;9800:7;9823:20;9841:1;9823:20;:::i;:::-;9818:25;;9857:20;9875:1;9857:20;:::i;:::-;9852:25;;9912:1;9909;9905:9;9934:30;9952:11;9934:30;:::i;:::-;9923:41;;10113:1;10104:7;10100:15;10097:1;10094:22;10074:1;10067:9;10047:83;10024:139;;10143:18;;:::i;:::-;10024:139;9808:362;9760:410;;;;:::o;10176:164::-;10316:16;10312:1;10304:6;10300:14;10293:40;10176:164;:::o;10346:366::-;10488:3;10509:67;10573:2;10568:3;10509:67;:::i;:::-;10502:74;;10585:93;10674:3;10585:93;:::i;:::-;10703:2;10698:3;10694:12;10687:19;;10346:366;;;:::o;10718:419::-;10884:4;10922:2;10911:9;10907:18;10899:26;;10971:9;10965:4;10961:20;10957:1;10946:9;10942:17;10935:47;10999:131;11125:4;10999:131;:::i;:::-;10991:139;;10718:419;;;:::o;11143:164::-;11283:16;11279:1;11271:6;11267:14;11260:40;11143:164;:::o;11313:366::-;11455:3;11476:67;11540:2;11535:3;11476:67;:::i;:::-;11469:74;;11552:93;11641:3;11552:93;:::i;:::-;11670:2;11665:3;11661:12;11654:19;;11313:366;;;:::o;11685:419::-;11851:4;11889:2;11878:9;11874:18;11866:26;;11938:9;11932:4;11928:20;11924:1;11913:9;11909:17;11902:47;11966:131;12092:4;11966:131;:::i;:::-;11958:139;;11685:419;;;:::o;12110:147::-;12211:11;12248:3;12233:18;;12110:147;;;;:::o;12263:114::-;;:::o;12383:398::-;12542:3;12563:83;12644:1;12639:3;12563:83;:::i;:::-;12556:90;;12655:93;12744:3;12655:93;:::i;:::-;12773:1;12768:3;12764:11;12757:18;;12383:398;;;:::o;12787:379::-;12971:3;12993:147;13136:3;12993:147;:::i;:::-;12986:154;;13157:3;13150:10;;12787:379;;;:::o;13172:161::-;13312:13;13308:1;13300:6;13296:14;13289:37;13172:161;:::o;13339:366::-;13481:3;13502:67;13566:2;13561:3;13502:67;:::i;:::-;13495:74;;13578:93;13667:3;13578:93;:::i;:::-;13696:2;13691:3;13687:12;13680:19;;13339:366;;;:::o;13711:419::-;13877:4;13915:2;13904:9;13900:18;13892:26;;13964:9;13958:4;13954:20;13950:1;13939:9;13935:17;13928:47;13992:131;14118:4;13992:131;:::i;:::-;13984:139;;13711:419;;;:::o;14136:225::-;14276:34;14272:1;14264:6;14260:14;14253:58;14345:8;14340:2;14332:6;14328:15;14321:33;14136:225;:::o;14367:366::-;14509:3;14530:67;14594:2;14589:3;14530:67;:::i;:::-;14523:74;;14606:93;14695:3;14606:93;:::i;:::-;14724:2;14719:3;14715:12;14708:19;;14367:366;;;:::o;14739:419::-;14905:4;14943:2;14932:9;14928:18;14920:26;;14992:9;14986:4;14982:20;14978:1;14967:9;14963:17;14956:47;15020:131;15146:4;15020:131;:::i;:::-;15012:139;;14739:419;;;:::o;15164:171::-;15304:23;15300:1;15292:6;15288:14;15281:47;15164:171;:::o;15341:366::-;15483:3;15504:67;15568:2;15563:3;15504:67;:::i;:::-;15497:74;;15580:93;15669:3;15580:93;:::i;:::-;15698:2;15693:3;15689:12;15682:19;;15341:366;;;:::o;15713:419::-;15879:4;15917:2;15906:9;15902:18;15894:26;;15966:9;15960:4;15956:20;15952:1;15941:9;15937:17;15930:47;15994:131;16120:4;15994:131;:::i;:::-;15986:139;;15713:419;;;:::o;16138:182::-;16278:34;16274:1;16266:6;16262:14;16255:58;16138:182;:::o;16326:366::-;16468:3;16489:67;16553:2;16548:3;16489:67;:::i;:::-;16482:74;;16565:93;16654:3;16565:93;:::i;:::-;16683:2;16678:3;16674:12;16667:19;;16326:366;;;:::o;16698:419::-;16864:4;16902:2;16891:9;16887:18;16879:26;;16951:9;16945:4;16941:20;16937:1;16926:9;16922:17;16915:47;16979:131;17105:4;16979:131;:::i;:::-;16971:139;;16698:419;;;:::o;17123:223::-;17263:34;17259:1;17251:6;17247:14;17240:58;17332:6;17327:2;17319:6;17315:15;17308:31;17123:223;:::o;17352:366::-;17494:3;17515:67;17579:2;17574:3;17515:67;:::i;:::-;17508:74;;17591:93;17680:3;17591:93;:::i;:::-;17709:2;17704:3;17700:12;17693:19;;17352:366;;;:::o;17724:419::-;17890:4;17928:2;17917:9;17913:18;17905:26;;17977:9;17971:4;17967:20;17963:1;17952:9;17948:17;17941:47;18005:131;18131:4;18005:131;:::i;:::-;17997:139;;17724:419;;;:::o;18149:221::-;18289:34;18285:1;18277:6;18273:14;18266:58;18358:4;18353:2;18345:6;18341:15;18334:29;18149:221;:::o;18376:366::-;18518:3;18539:67;18603:2;18598:3;18539:67;:::i;:::-;18532:74;;18615:93;18704:3;18615:93;:::i;:::-;18733:2;18728:3;18724:12;18717:19;;18376:366;;;:::o;18748:419::-;18914:4;18952:2;18941:9;18937:18;18929:26;;19001:9;18995:4;18991:20;18987:1;18976:9;18972:17;18965:47;19029:131;19155:4;19029:131;:::i;:::-;19021:139;;18748:419;;;:::o;19173:224::-;19313:34;19309:1;19301:6;19297:14;19290:58;19382:7;19377:2;19369:6;19365:15;19358:32;19173:224;:::o;19403:366::-;19545:3;19566:67;19630:2;19625:3;19566:67;:::i;:::-;19559:74;;19642:93;19731:3;19642:93;:::i;:::-;19760:2;19755:3;19751:12;19744:19;;19403:366;;;:::o;19775:419::-;19941:4;19979:2;19968:9;19964:18;19956:26;;20028:9;20022:4;20018:20;20014:1;20003:9;19999:17;19992:47;20056:131;20182:4;20056:131;:::i;:::-;20048:139;;19775:419;;;:::o;20200:222::-;20340:34;20336:1;20328:6;20324:14;20317:58;20409:5;20404:2;20396:6;20392:15;20385:30;20200:222;:::o;20428:366::-;20570:3;20591:67;20655:2;20650:3;20591:67;:::i;:::-;20584:74;;20667:93;20756:3;20667:93;:::i;:::-;20785:2;20780:3;20776:12;20769:19;;20428:366;;;:::o;20800:419::-;20966:4;21004:2;20993:9;20989:18;20981:26;;21053:9;21047:4;21043:20;21039:1;21028:9;21024:17;21017:47;21081:131;21207:4;21081:131;:::i;:::-;21073:139;;20800:419;;;:::o;21225:228::-;21365:34;21361:1;21353:6;21349:14;21342:58;21434:11;21429:2;21421:6;21417:15;21410:36;21225:228;:::o;21459:366::-;21601:3;21622:67;21686:2;21681:3;21622:67;:::i;:::-;21615:74;;21698:93;21787:3;21698:93;:::i;:::-;21816:2;21811:3;21807:12;21800:19;;21459:366;;;:::o;21831:419::-;21997:4;22035:2;22024:9;22020:18;22012:26;;22084:9;22078:4;22074:20;22070:1;22059:9;22055:17;22048:47;22112:131;22238:4;22112:131;:::i;:::-;22104:139;;21831:419;;;:::o;22256:171::-;22396:23;22392:1;22384:6;22380:14;22373:47;22256:171;:::o;22433:366::-;22575:3;22596:67;22660:2;22655:3;22596:67;:::i;:::-;22589:74;;22672:93;22761:3;22672:93;:::i;:::-;22790:2;22785:3;22781:12;22774:19;;22433:366;;;:::o;22805:419::-;22971:4;23009:2;22998:9;22994:18;22986:26;;23058:9;23052:4;23048:20;23044:1;23033:9;23029:17;23022:47;23086:131;23212:4;23086:131;:::i;:::-;23078:139;;22805:419;;;:::o;23230:191::-;23270:3;23289:20;23307:1;23289:20;:::i;:::-;23284:25;;23323:20;23341:1;23323:20;:::i;:::-;23318:25;;23366:1;23363;23359:9;23352:16;;23387:3;23384:1;23381:10;23378:36;;;23394:18;;:::i;:::-;23378:36;23230:191;;;;:::o;23427:228::-;23567:34;23563:1;23555:6;23551:14;23544:58;23636:11;23631:2;23623:6;23619:15;23612:36;23427:228;:::o;23661:366::-;23803:3;23824:67;23888:2;23883:3;23824:67;:::i;:::-;23817:74;;23900:93;23989:3;23900:93;:::i;:::-;24018:2;24013:3;24009:12;24002:19;;23661:366;;;:::o;24033:419::-;24199:4;24237:2;24226:9;24222:18;24214:26;;24286:9;24280:4;24276:20;24272:1;24261:9;24257:17;24250:47;24314:131;24440:4;24314:131;:::i;:::-;24306:139;;24033:419;;;:::o;24458:194::-;24498:4;24518:20;24536:1;24518:20;:::i;:::-;24513:25;;24552:20;24570:1;24552:20;:::i;:::-;24547:25;;24596:1;24593;24589:9;24581:17;;24620:1;24614:4;24611:11;24608:37;;;24625:18;;:::i;:::-;24608:37;24458:194;;;;:::o;24658:180::-;24706:77;24703:1;24696:88;24803:4;24800:1;24793:15;24827:4;24824:1;24817:15;24844:185;24884:1;24901:20;24919:1;24901:20;:::i;:::-;24896:25;;24935:20;24953:1;24935:20;:::i;:::-;24930:25;;24974:1;24964:35;;24979:18;;:::i;:::-;24964:35;25021:1;25018;25014:9;25009:14;;24844:185;;;;:::o;25035:220::-;25175:34;25171:1;25163:6;25159:14;25152:58;25244:3;25239:2;25231:6;25227:15;25220:28;25035:220;:::o;25261:366::-;25403:3;25424:67;25488:2;25483:3;25424:67;:::i;:::-;25417:74;;25500:93;25589:3;25500:93;:::i;:::-;25618:2;25613:3;25609:12;25602:19;;25261:366;;;:::o;25633:419::-;25799:4;25837:2;25826:9;25822:18;25814:26;;25886:9;25880:4;25876:20;25872:1;25861:9;25857:17;25850:47;25914:131;26040:4;25914:131;:::i;:::-;25906:139;;25633:419;;;:::o;26058:180::-;26106:77;26103:1;26096:88;26203:4;26200:1;26193:15;26227:4;26224:1;26217:15;26244:180;26292:77;26289:1;26282:88;26389:4;26386:1;26379:15;26413:4;26410:1;26403:15;26430:143;26487:5;26518:6;26512:13;26503:22;;26534:33;26561:5;26534:33;:::i;:::-;26430:143;;;;:::o;26579:351::-;26649:6;26698:2;26686:9;26677:7;26673:23;26669:32;26666:119;;;26704:79;;:::i;:::-;26666:119;26824:1;26849:64;26905:7;26896:6;26885:9;26881:22;26849:64;:::i;:::-;26839:74;;26795:128;26579:351;;;;:::o;26936:85::-;26981:7;27010:5;26999:16;;26936:85;;;:::o;27027:60::-;27055:3;27076:5;27069:12;;27027:60;;;:::o;27093:158::-;27151:9;27184:61;27202:42;27211:32;27237:5;27211:32;:::i;:::-;27202:42;:::i;:::-;27184:61;:::i;:::-;27171:74;;27093:158;;;:::o;27257:147::-;27352:45;27391:5;27352:45;:::i;:::-;27347:3;27340:58;27257:147;;:::o;27410:114::-;27477:6;27511:5;27505:12;27495:22;;27410:114;;;:::o;27530:184::-;27629:11;27663:6;27658:3;27651:19;27703:4;27698:3;27694:14;27679:29;;27530:184;;;;:::o;27720:132::-;27787:4;27810:3;27802:11;;27840:4;27835:3;27831:14;27823:22;;27720:132;;;:::o;27858:108::-;27935:24;27953:5;27935:24;:::i;:::-;27930:3;27923:37;27858:108;;:::o;27972:179::-;28041:10;28062:46;28104:3;28096:6;28062:46;:::i;:::-;28140:4;28135:3;28131:14;28117:28;;27972:179;;;;:::o;28157:113::-;28227:4;28259;28254:3;28250:14;28242:22;;28157:113;;;:::o;28306:732::-;28425:3;28454:54;28502:5;28454:54;:::i;:::-;28524:86;28603:6;28598:3;28524:86;:::i;:::-;28517:93;;28634:56;28684:5;28634:56;:::i;:::-;28713:7;28744:1;28729:284;28754:6;28751:1;28748:13;28729:284;;;28830:6;28824:13;28857:63;28916:3;28901:13;28857:63;:::i;:::-;28850:70;;28943:60;28996:6;28943:60;:::i;:::-;28933:70;;28789:224;28776:1;28773;28769:9;28764:14;;28729:284;;;28733:14;29029:3;29022:10;;28430:608;;;28306:732;;;;:::o;29044:831::-;29307:4;29345:3;29334:9;29330:19;29322:27;;29359:71;29427:1;29416:9;29412:17;29403:6;29359:71;:::i;:::-;29440:80;29516:2;29505:9;29501:18;29492:6;29440:80;:::i;:::-;29567:9;29561:4;29557:20;29552:2;29541:9;29537:18;29530:48;29595:108;29698:4;29689:6;29595:108;:::i;:::-;29587:116;;29713:72;29781:2;29770:9;29766:18;29757:6;29713:72;:::i;:::-;29795:73;29863:3;29852:9;29848:19;29839:6;29795:73;:::i;:::-;29044:831;;;;;;;;:::o;29881:177::-;30021:29;30017:1;30009:6;30005:14;29998:53;29881:177;:::o;30064:366::-;30206:3;30227:67;30291:2;30286:3;30227:67;:::i;:::-;30220:74;;30303:93;30392:3;30303:93;:::i;:::-;30421:2;30416:3;30412:12;30405:19;;30064:366;;;:::o;30436:419::-;30602:4;30640:2;30629:9;30625:18;30617:26;;30689:9;30683:4;30679:20;30675:1;30664:9;30660:17;30653:47;30717:131;30843:4;30717:131;:::i;:::-;30709:139;;30436:419;;;:::o

Swarm Source

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