ETH Price: $3,341.56 (-1.06%)

Token

Artificial General Intelligence (AGI)
 

Overview

Max Total Supply

420,000,000,000,000 AGI

Holders

1

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TestTokenContract

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

contract Ownable {
    address private _owner;

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

    constructor() {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
}

contract Test is IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name = "Artificial General Intelligence";
    string private _symbol = "AGI";

    constructor() {
        _totalSupply = 420 * 10**12 * 10**18; // 420 trillion tokens
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer amount exceeds allowance");
        _approve(sender, msg.sender, currentAllowance - amount);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "Transfer from the zero address");
        require(recipient != address(0), "Transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer amount exceeds balance");

        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "Approve from the zero address");
        require(spender != address(0), "Approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract TestTokenContract is Test, Ownable { 
    uint256 public buyTaxRate = 69; 
    uint256 public sellTaxRate = 69;
    uint256 public accumulatedTax = 0;

    address public uniswapV2Pair;
    IUniswapV2Router02 public uniswapV2Router;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    }

    function setPairAddress(address _pairAddress) external onlyOwner {
        uniswapV2Pair = _pairAddress;
    }

    function setBuyTaxRate(uint256 newTaxRate) external onlyOwner {
        require(newTaxRate >= 0 && newTaxRate <= 100, "Invalid tax rate");
        buyTaxRate = newTaxRate;
    }

    function setSellTaxRate(uint256 newTaxRate) external onlyOwner {
        require(newTaxRate >= 0 && newTaxRate <= 100, "Invalid tax rate");
        sellTaxRate = newTaxRate;
    }

    uint256 public liquidityThreshold = 1e6 * 1e18;  // Example: 1 million AGI

    function setLiquidityThreshold(uint256 newThreshold) external onlyOwner {
        liquidityThreshold = newThreshold;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        uint256 taxAmount;
        
        if (sender == uniswapV2Pair) {  // Buy operation
            taxAmount = (buyTaxRate * amount) / 100;
        } else {  // For sells and other transfers
            taxAmount = (sellTaxRate * amount) / 100;
        }

        accumulatedTax += taxAmount;
        amount -= taxAmount;
        super._transfer(sender, recipient, amount);

        // Check if accumulated tax exceeds the threshold
        if (accumulatedTax >= liquidityThreshold) {
            autoAddLiquidity();
        }
    }

    function autoAddLiquidity() internal {
        uint256 halfTax = accumulatedTax / 2;
        uint256 otherHalfTax = accumulatedTax - halfTax;

        // Approve token transfer to cover all scenarios
        _approve(address(this), address(uniswapV2Router), accumulatedTax);

        // Convert half of the tokens to ETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Before swapping, determine the expected ETH amount
        uint256[] memory amountsOut = uniswapV2Router.getAmountsOut(halfTax, path);
        uint256 expectedETHAmount = amountsOut[1];

        // Convert half of the tokens to ETH
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        halfTax,
        halfTax - (halfTax / 200), // Minimum amount of ETH based on 0.5% slippage
        path,
        address(this),
        block.timestamp
);

        // Add liquidity using the exact ETH amount
        uniswapV2Router.addLiquidityETH{value: expectedETHAmount}(
        address(this),
        otherHalfTax,
        otherHalfTax - (otherHalfTax / 200), // Minimum amount of tokens based on 0.5% slippage
        expectedETHAmount - (expectedETHAmount / 200), // Minimum amount of ETH based on 0.5% slippage
        owner(),
        block.timestamp
);

        accumulatedTax = 0;
    }

    function withdrawAccumulatedTax() external onlyOwner {
        uint256 amount = accumulatedTax;
        accumulatedTax = 0;
        _transfer(address(this), msg.sender, amount);
    }
}

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":[],"name":"accumulatedTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxRate","type":"uint256"}],"name":"setBuyTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"setLiquidityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxRate","type":"uint256"}],"name":"setSellTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAccumulatedTax","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280601f81526020017f4172746966696369616c2047656e6572616c20496e74656c6c6967656e636500815250600390816200004a9190620004f5565b506040518060400160405280600381526020017f414749000000000000000000000000000000000000000000000000000000000081525060049081620000919190620004f5565b50604560065560456007555f60085569d3c21bcecceda1000000600b55348015620000ba575f80fd5b506d14b5253145b397d65451000000006002819055506002545f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600254604051620001749190620005ea565b60405180910390a33360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000605565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200030d57607f821691505b602082108103620003235762000322620002c8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200034a565b6200039386836200034a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003dd620003d7620003d184620003ab565b620003b4565b620003ab565b9050919050565b5f819050919050565b620003f883620003bd565b620004106200040782620003e4565b84845462000356565b825550505050565b5f90565b6200042662000418565b62000433818484620003ed565b505050565b5b818110156200045a576200044e5f826200041c565b60018101905062000439565b5050565b601f821115620004a957620004738162000329565b6200047e846200033b565b810160208510156200048e578190505b620004a66200049d856200033b565b83018262000438565b50505b505050565b5f82821c905092915050565b5f620004cb5f1984600802620004ae565b1980831691505092915050565b5f620004e58383620004ba565b9150826002028217905092915050565b620005008262000291565b67ffffffffffffffff8111156200051c576200051b6200029b565b5b620005288254620002f5565b620005358282856200045e565b5f60209050601f8311600181146200056b575f841562000556578287015190505b620005628582620004d8565b865550620005d1565b601f1984166200057b8662000329565b5f5b82811015620005a4578489015182556001820191506020850194506020810190506200057d565b86831015620005c45784890151620005c0601f891682620004ba565b8355505b6001600288020188555050505b505050505050565b620005e481620003ab565b82525050565b5f602082019050620005ff5f830184620005d9565b92915050565b6121a980620006135f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806355e2e974116100b6578063a22d48321161007a578063a22d483214610319578063a9059cbb14610335578063c968808614610365578063dd62ed3e14610383578063e5dc6b21146103b3578063f9c0a3c3146103cf57610135565b806355e2e97414610273578063691f224f1461028f57806370a08231146102ad5780638da5cb5b146102dd57806395d89b41146102fb57610135565b806324024efd116100fd57806324024efd146101f3578063313ce567146102115780633da29de51461022f57806349bd5a5e146102395780634baf59f31461025757610135565b806306fdde0314610139578063095ea7b3146101575780631694505e1461018757806318160ddd146101a557806323b872dd146101c3575b5f80fd5b6101416103ed565b60405161014e91906114f3565b60405180910390f35b610171600480360381019061016c91906115b1565b61047d565b60405161017e9190611609565b60405180910390f35b61018f610493565b60405161019c919061167d565b60405180910390f35b6101ad6104b8565b6040516101ba91906116a5565b60405180910390f35b6101dd60048036038101906101d891906116be565b6104c1565b6040516101ea9190611609565b60405180910390f35b6101fb6105ae565b60405161020891906116a5565b60405180910390f35b6102196105b4565b6040516102269190611729565b60405180910390f35b6102376105bc565b005b61024161064c565b60405161024e9190611751565b60405180910390f35b610271600480360381019061026c919061176a565b610671565b005b61028d6004803603810190610288919061176a565b6106f0565b005b6102976107bf565b6040516102a491906116a5565b60405180910390f35b6102c760048036038101906102c29190611795565b6107c5565b6040516102d491906116a5565b60405180910390f35b6102e561080a565b6040516102f29190611751565b60405180910390f35b610303610832565b60405161031091906114f3565b60405180910390f35b610333600480360381019061032e9190611795565b6108c2565b005b61034f600480360381019061034a91906115b1565b61097a565b60405161035c9190611609565b60405180910390f35b61036d610990565b60405161037a91906116a5565b60405180910390f35b61039d600480360381019061039891906117c0565b610996565b6040516103aa91906116a5565b60405180910390f35b6103cd60048036038101906103c8919061176a565b610a18565b005b6103d7610ae7565b6040516103e491906116a5565b60405180910390f35b6060600380546103fc9061182b565b80601f01602080910402602001604051908101604052809291908181526020018280546104289061182b565b80156104735780601f1061044a57610100808354040283529160200191610473565b820191905f5260205f20905b81548152906001019060200180831161045657829003601f168201915b5050505050905090565b5f610489338484610aed565b6001905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f6104cd848484610cb0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561058c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610583906118cb565b60405180910390fd5b6105a28533858461059d9190611916565b610aed565b60019150509392505050565b60075481565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff166105db61080a565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890611993565b60405180910390fd5b5f60085490505f600881905550610649303383610cb0565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1661069061080a565b73ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90611993565b60405180910390fd5b80600b8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1661070f61080a565b73ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075c90611993565b60405180910390fd5b5f8110158015610776575060648111155b6107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906119fb565b60405180910390fd5b8060068190555050565b60065481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108419061182b565b80601f016020809104026020016040519081016040528092919081815260200182805461086d9061182b565b80156108b85780601f1061088f576101008083540402835291602001916108b8565b820191905f5260205f20905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff166108e161080a565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90611993565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610986338484610cb0565b6001905092915050565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610a3761080a565b73ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490611993565b60405180910390fd5b5f8110158015610a9e575060648111155b610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad4906119fb565b60405180910390fd5b8060078190555050565b60085481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5290611a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc090611acb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca391906116a5565b60405180910390a3505050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d2657606482600654610d159190611ae9565b610d1f9190611b57565b9050610d43565b606482600754610d369190611ae9565b610d409190611b57565b90505b8060085f828254610d549190611b87565b925050819055508082610d679190611916565b9150610d74848484610d8e565b600b5460085410610d8857610d87611038565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611c04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190611c6c565b60405180910390fd5b5f8111610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390611cfa565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690611d62565b60405180910390fd5b8181610f3b9190611916565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fc69190611b87565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161102a91906116a5565b60405180910390a350505050565b5f60026008546110489190611b57565b90505f816008546110599190611916565b905061108930600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854610aed565b5f600267ffffffffffffffff8111156110a5576110a4611d80565b5b6040519080825280602002602001820160405280156110d35781602001602082028036833780820191505090505b50905030815f815181106110ea576110e9611dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b29190611dee565b816001815181106111c6576111c5611dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b815260040161125d929190611ed0565b5f60405180830381865afa158015611277573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061129f9190612025565b90505f816001815181106112b6576112b5611dad565b5b60200260200101519050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478660c88861130b9190611b57565b886113169190611916565b8630426040518663ffffffff1660e01b815260040161133995949392919061206c565b5f604051808303815f875af1158015611354573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061137c9190612025565b50600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308760c8896113ca9190611b57565b896113d59190611916565b60c8876113e29190611b57565b876113ed9190611916565b6113f561080a565b426040518863ffffffff1660e01b8152600401611417969594939291906120c4565b60606040518083038185885af1158015611433573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114589190612123565b5050505f6008819055505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156114a0578082015181840152602081019050611485565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6114c582611469565b6114cf8185611473565b93506114df818560208601611483565b6114e8816114ab565b840191505092915050565b5f6020820190508181035f83015261150b81846114bb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61154d82611524565b9050919050565b61155d81611543565b8114611567575f80fd5b50565b5f8135905061157881611554565b92915050565b5f819050919050565b6115908161157e565b811461159a575f80fd5b50565b5f813590506115ab81611587565b92915050565b5f80604083850312156115c7576115c661151c565b5b5f6115d48582860161156a565b92505060206115e58582860161159d565b9150509250929050565b5f8115159050919050565b611603816115ef565b82525050565b5f60208201905061161c5f8301846115fa565b92915050565b5f819050919050565b5f61164561164061163b84611524565b611622565b611524565b9050919050565b5f6116568261162b565b9050919050565b5f6116678261164c565b9050919050565b6116778161165d565b82525050565b5f6020820190506116905f83018461166e565b92915050565b61169f8161157e565b82525050565b5f6020820190506116b85f830184611696565b92915050565b5f805f606084860312156116d5576116d461151c565b5b5f6116e28682870161156a565b93505060206116f38682870161156a565b92505060406117048682870161159d565b9150509250925092565b5f60ff82169050919050565b6117238161170e565b82525050565b5f60208201905061173c5f83018461171a565b92915050565b61174b81611543565b82525050565b5f6020820190506117645f830184611742565b92915050565b5f6020828403121561177f5761177e61151c565b5b5f61178c8482850161159d565b91505092915050565b5f602082840312156117aa576117a961151c565b5b5f6117b78482850161156a565b91505092915050565b5f80604083850312156117d6576117d561151c565b5b5f6117e38582860161156a565b92505060206117f48582860161156a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061184257607f821691505b602082108103611855576118546117fe565b5b50919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118b5602183611473565b91506118c08261185b565b604082019050919050565b5f6020820190508181035f8301526118e2816118a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119208261157e565b915061192b8361157e565b9250828203905081811115611943576119426118e9565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61197d602083611473565b915061198882611949565b602082019050919050565b5f6020820190508181035f8301526119aa81611971565b9050919050565b7f496e76616c6964207461782072617465000000000000000000000000000000005f82015250565b5f6119e5601083611473565b91506119f0826119b1565b602082019050919050565b5f6020820190508181035f830152611a12816119d9565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f611a4d601d83611473565b9150611a5882611a19565b602082019050919050565b5f6020820190508181035f830152611a7a81611a41565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f611ab5601b83611473565b9150611ac082611a81565b602082019050919050565b5f6020820190508181035f830152611ae281611aa9565b9050919050565b5f611af38261157e565b9150611afe8361157e565b9250828202611b0c8161157e565b91508282048414831517611b2357611b226118e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b618261157e565b9150611b6c8361157e565b925082611b7c57611b7b611b2a565b5b828204905092915050565b5f611b918261157e565b9150611b9c8361157e565b9250828201905080821115611bb457611bb36118e9565b5b92915050565b7f5472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f611bee601e83611473565b9150611bf982611bba565b602082019050919050565b5f6020820190508181035f830152611c1b81611be2565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c56601c83611473565b9150611c6182611c22565b602082019050919050565b5f6020820190508181035f830152611c8381611c4a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611ce4602983611473565b9150611cef82611c8a565b604082019050919050565b5f6020820190508181035f830152611d1181611cd8565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f611d4c601f83611473565b9150611d5782611d18565b602082019050919050565b5f6020820190508181035f830152611d7981611d40565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050611de881611554565b92915050565b5f60208284031215611e0357611e0261151c565b5b5f611e1084828501611dda565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611e4b81611543565b82525050565b5f611e5c8383611e42565b60208301905092915050565b5f602082019050919050565b5f611e7e82611e19565b611e888185611e23565b9350611e9383611e33565b805f5b83811015611ec3578151611eaa8882611e51565b9750611eb583611e68565b925050600181019050611e96565b5085935050505092915050565b5f604082019050611ee35f830185611696565b8181036020830152611ef58184611e74565b90509392505050565b5f80fd5b611f0b826114ab565b810181811067ffffffffffffffff82111715611f2a57611f29611d80565b5b80604052505050565b5f611f3c611513565b9050611f488282611f02565b919050565b5f67ffffffffffffffff821115611f6757611f66611d80565b5b602082029050602081019050919050565b5f80fd5b5f81519050611f8a81611587565b92915050565b5f611fa2611f9d84611f4d565b611f33565b90508083825260208201905060208402830185811115611fc557611fc4611f78565b5b835b81811015611fee5780611fda8882611f7c565b845260208401935050602081019050611fc7565b5050509392505050565b5f82601f83011261200c5761200b611efe565b5b815161201c848260208601611f90565b91505092915050565b5f6020828403121561203a5761203961151c565b5b5f82015167ffffffffffffffff81111561205757612056611520565b5b61206384828501611ff8565b91505092915050565b5f60a08201905061207f5f830188611696565b61208c6020830187611696565b818103604083015261209e8186611e74565b90506120ad6060830185611742565b6120ba6080830184611696565b9695505050505050565b5f60c0820190506120d75f830189611742565b6120e46020830188611696565b6120f16040830187611696565b6120fe6060830186611696565b61210b6080830185611742565b61211860a0830184611696565b979650505050505050565b5f805f6060848603121561213a5761213961151c565b5b5f61214786828701611f7c565b935050602061215886828701611f7c565b925050604061216986828701611f7c565b915050925092509256fea26469706673582212205528d938f97a2d0b5fecf6f9a31d1696f22e5e4f68c540fa1fc439787409853664736f6c63430008150033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610135575f3560e01c806355e2e974116100b6578063a22d48321161007a578063a22d483214610319578063a9059cbb14610335578063c968808614610365578063dd62ed3e14610383578063e5dc6b21146103b3578063f9c0a3c3146103cf57610135565b806355e2e97414610273578063691f224f1461028f57806370a08231146102ad5780638da5cb5b146102dd57806395d89b41146102fb57610135565b806324024efd116100fd57806324024efd146101f3578063313ce567146102115780633da29de51461022f57806349bd5a5e146102395780634baf59f31461025757610135565b806306fdde0314610139578063095ea7b3146101575780631694505e1461018757806318160ddd146101a557806323b872dd146101c3575b5f80fd5b6101416103ed565b60405161014e91906114f3565b60405180910390f35b610171600480360381019061016c91906115b1565b61047d565b60405161017e9190611609565b60405180910390f35b61018f610493565b60405161019c919061167d565b60405180910390f35b6101ad6104b8565b6040516101ba91906116a5565b60405180910390f35b6101dd60048036038101906101d891906116be565b6104c1565b6040516101ea9190611609565b60405180910390f35b6101fb6105ae565b60405161020891906116a5565b60405180910390f35b6102196105b4565b6040516102269190611729565b60405180910390f35b6102376105bc565b005b61024161064c565b60405161024e9190611751565b60405180910390f35b610271600480360381019061026c919061176a565b610671565b005b61028d6004803603810190610288919061176a565b6106f0565b005b6102976107bf565b6040516102a491906116a5565b60405180910390f35b6102c760048036038101906102c29190611795565b6107c5565b6040516102d491906116a5565b60405180910390f35b6102e561080a565b6040516102f29190611751565b60405180910390f35b610303610832565b60405161031091906114f3565b60405180910390f35b610333600480360381019061032e9190611795565b6108c2565b005b61034f600480360381019061034a91906115b1565b61097a565b60405161035c9190611609565b60405180910390f35b61036d610990565b60405161037a91906116a5565b60405180910390f35b61039d600480360381019061039891906117c0565b610996565b6040516103aa91906116a5565b60405180910390f35b6103cd60048036038101906103c8919061176a565b610a18565b005b6103d7610ae7565b6040516103e491906116a5565b60405180910390f35b6060600380546103fc9061182b565b80601f01602080910402602001604051908101604052809291908181526020018280546104289061182b565b80156104735780601f1061044a57610100808354040283529160200191610473565b820191905f5260205f20905b81548152906001019060200180831161045657829003601f168201915b5050505050905090565b5f610489338484610aed565b6001905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f6104cd848484610cb0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561058c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610583906118cb565b60405180910390fd5b6105a28533858461059d9190611916565b610aed565b60019150509392505050565b60075481565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff166105db61080a565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890611993565b60405180910390fd5b5f60085490505f600881905550610649303383610cb0565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1661069061080a565b73ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90611993565b60405180910390fd5b80600b8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1661070f61080a565b73ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075c90611993565b60405180910390fd5b5f8110158015610776575060648111155b6107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906119fb565b60405180910390fd5b8060068190555050565b60065481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108419061182b565b80601f016020809104026020016040519081016040528092919081815260200182805461086d9061182b565b80156108b85780601f1061088f576101008083540402835291602001916108b8565b820191905f5260205f20905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff166108e161080a565b73ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90611993565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610986338484610cb0565b6001905092915050565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610a3761080a565b73ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490611993565b60405180910390fd5b5f8110158015610a9e575060648111155b610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad4906119fb565b60405180910390fd5b8060078190555050565b60085481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5290611a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc090611acb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca391906116a5565b60405180910390a3505050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d2657606482600654610d159190611ae9565b610d1f9190611b57565b9050610d43565b606482600754610d369190611ae9565b610d409190611b57565b90505b8060085f828254610d549190611b87565b925050819055508082610d679190611916565b9150610d74848484610d8e565b600b5460085410610d8857610d87611038565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611c04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190611c6c565b60405180910390fd5b5f8111610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390611cfa565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690611d62565b60405180910390fd5b8181610f3b9190611916565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fc69190611b87565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161102a91906116a5565b60405180910390a350505050565b5f60026008546110489190611b57565b90505f816008546110599190611916565b905061108930600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854610aed565b5f600267ffffffffffffffff8111156110a5576110a4611d80565b5b6040519080825280602002602001820160405280156110d35781602001602082028036833780820191505090505b50905030815f815181106110ea576110e9611dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b29190611dee565b816001815181106111c6576111c5611dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b815260040161125d929190611ed0565b5f60405180830381865afa158015611277573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061129f9190612025565b90505f816001815181106112b6576112b5611dad565b5b60200260200101519050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478660c88861130b9190611b57565b886113169190611916565b8630426040518663ffffffff1660e01b815260040161133995949392919061206c565b5f604051808303815f875af1158015611354573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061137c9190612025565b50600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308760c8896113ca9190611b57565b896113d59190611916565b60c8876113e29190611b57565b876113ed9190611916565b6113f561080a565b426040518863ffffffff1660e01b8152600401611417969594939291906120c4565b60606040518083038185885af1158015611433573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114589190612123565b5050505f6008819055505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156114a0578082015181840152602081019050611485565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6114c582611469565b6114cf8185611473565b93506114df818560208601611483565b6114e8816114ab565b840191505092915050565b5f6020820190508181035f83015261150b81846114bb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61154d82611524565b9050919050565b61155d81611543565b8114611567575f80fd5b50565b5f8135905061157881611554565b92915050565b5f819050919050565b6115908161157e565b811461159a575f80fd5b50565b5f813590506115ab81611587565b92915050565b5f80604083850312156115c7576115c661151c565b5b5f6115d48582860161156a565b92505060206115e58582860161159d565b9150509250929050565b5f8115159050919050565b611603816115ef565b82525050565b5f60208201905061161c5f8301846115fa565b92915050565b5f819050919050565b5f61164561164061163b84611524565b611622565b611524565b9050919050565b5f6116568261162b565b9050919050565b5f6116678261164c565b9050919050565b6116778161165d565b82525050565b5f6020820190506116905f83018461166e565b92915050565b61169f8161157e565b82525050565b5f6020820190506116b85f830184611696565b92915050565b5f805f606084860312156116d5576116d461151c565b5b5f6116e28682870161156a565b93505060206116f38682870161156a565b92505060406117048682870161159d565b9150509250925092565b5f60ff82169050919050565b6117238161170e565b82525050565b5f60208201905061173c5f83018461171a565b92915050565b61174b81611543565b82525050565b5f6020820190506117645f830184611742565b92915050565b5f6020828403121561177f5761177e61151c565b5b5f61178c8482850161159d565b91505092915050565b5f602082840312156117aa576117a961151c565b5b5f6117b78482850161156a565b91505092915050565b5f80604083850312156117d6576117d561151c565b5b5f6117e38582860161156a565b92505060206117f48582860161156a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061184257607f821691505b602082108103611855576118546117fe565b5b50919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118b5602183611473565b91506118c08261185b565b604082019050919050565b5f6020820190508181035f8301526118e2816118a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119208261157e565b915061192b8361157e565b9250828203905081811115611943576119426118e9565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61197d602083611473565b915061198882611949565b602082019050919050565b5f6020820190508181035f8301526119aa81611971565b9050919050565b7f496e76616c6964207461782072617465000000000000000000000000000000005f82015250565b5f6119e5601083611473565b91506119f0826119b1565b602082019050919050565b5f6020820190508181035f830152611a12816119d9565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f611a4d601d83611473565b9150611a5882611a19565b602082019050919050565b5f6020820190508181035f830152611a7a81611a41565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f611ab5601b83611473565b9150611ac082611a81565b602082019050919050565b5f6020820190508181035f830152611ae281611aa9565b9050919050565b5f611af38261157e565b9150611afe8361157e565b9250828202611b0c8161157e565b91508282048414831517611b2357611b226118e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b618261157e565b9150611b6c8361157e565b925082611b7c57611b7b611b2a565b5b828204905092915050565b5f611b918261157e565b9150611b9c8361157e565b9250828201905080821115611bb457611bb36118e9565b5b92915050565b7f5472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f611bee601e83611473565b9150611bf982611bba565b602082019050919050565b5f6020820190508181035f830152611c1b81611be2565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c56601c83611473565b9150611c6182611c22565b602082019050919050565b5f6020820190508181035f830152611c8381611c4a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611ce4602983611473565b9150611cef82611c8a565b604082019050919050565b5f6020820190508181035f830152611d1181611cd8565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f611d4c601f83611473565b9150611d5782611d18565b602082019050919050565b5f6020820190508181035f830152611d7981611d40565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050611de881611554565b92915050565b5f60208284031215611e0357611e0261151c565b5b5f611e1084828501611dda565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611e4b81611543565b82525050565b5f611e5c8383611e42565b60208301905092915050565b5f602082019050919050565b5f611e7e82611e19565b611e888185611e23565b9350611e9383611e33565b805f5b83811015611ec3578151611eaa8882611e51565b9750611eb583611e68565b925050600181019050611e96565b5085935050505092915050565b5f604082019050611ee35f830185611696565b8181036020830152611ef58184611e74565b90509392505050565b5f80fd5b611f0b826114ab565b810181811067ffffffffffffffff82111715611f2a57611f29611d80565b5b80604052505050565b5f611f3c611513565b9050611f488282611f02565b919050565b5f67ffffffffffffffff821115611f6757611f66611d80565b5b602082029050602081019050919050565b5f80fd5b5f81519050611f8a81611587565b92915050565b5f611fa2611f9d84611f4d565b611f33565b90508083825260208201905060208402830185811115611fc557611fc4611f78565b5b835b81811015611fee5780611fda8882611f7c565b845260208401935050602081019050611fc7565b5050509392505050565b5f82601f83011261200c5761200b611efe565b5b815161201c848260208601611f90565b91505092915050565b5f6020828403121561203a5761203961151c565b5b5f82015167ffffffffffffffff81111561205757612056611520565b5b61206384828501611ff8565b91505092915050565b5f60a08201905061207f5f830188611696565b61208c6020830187611696565b818103604083015261209e8186611e74565b90506120ad6060830185611742565b6120ba6080830184611696565b9695505050505050565b5f60c0820190506120d75f830189611742565b6120e46020830188611696565b6120f16040830187611696565b6120fe6060830186611696565b61210b6080830185611742565b61211860a0830184611696565b979650505050505050565b5f805f6060848603121561213a5761213961151c565b5b5f61214786828701611f7c565b935050602061215886828701611f7c565b925050604061216986828701611f7c565b915050925092509256fea26469706673582212205528d938f97a2d0b5fecf6f9a31d1696f22e5e4f68c540fa1fc439787409853664736f6c63430008150033

Deployed Bytecode Sourcemap

4818:3347:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2480:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3301:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5023:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2742:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:403;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4908:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2666:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7975:187;;;:::i;:::-;;4988:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5774:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5314:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4870:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2850:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1765:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2571:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2977:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3150:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5502:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4946:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2480:83;2517:13;2550:5;2543:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2480:83;:::o;3301:159::-;3376:4;3393:37;3402:10;3414:7;3423:6;3393:8;:37::i;:::-;3448:4;3441:11;;3301:159;;;;:::o;5023:41::-;;;;;;;;;;;;;:::o;2742:100::-;2795:7;2822:12;;2815:19;;2742:100;:::o;3468:403::-;3566:4;3583:36;3593:6;3601:9;3612:6;3583:9;:36::i;:::-;3632:24;3659:11;:19;3671:6;3659:19;;;;;;;;;;;;;;;:31;3679:10;3659:31;;;;;;;;;;;;;;;;3632:58;;3729:6;3709:16;:26;;3701:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3784:55;3793:6;3801:10;3832:6;3813:16;:25;;;;:::i;:::-;3784:8;:55::i;:::-;3859:4;3852:11;;;3468:403;;;;;:::o;4908:31::-;;;;:::o;2666:68::-;2707:5;2728:2;2721:9;;2666:68;:::o;7975:187::-;1903:10;1892:21;;:7;:5;:7::i;:::-;:21;;;1884:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8039:14:::1;8056;;8039:31;;8098:1;8081:14;:18;;;;8110:44;8128:4;8135:10;8147:6;8110:9;:44::i;:::-;8028:134;7975:187::o:0;4988:28::-;;;;;;;;;;;;;:::o;5774:124::-;1903:10;1892:21;;:7;:5;:7::i;:::-;:21;;;1884:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5878:12:::1;5857:18;:33;;;;5774:124:::0;:::o;5314:180::-;1903:10;1892:21;;:7;:5;:7::i;:::-;:21;;;1884:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5409:1:::1;5395:10;:15;;:36;;;;;5428:3;5414:10;:17;;5395:36;5387:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5476:10;5463;:23;;;;5314:180:::0;:::o;4870:30::-;;;;:::o;2850:119::-;2916:7;2943:9;:18;2953:7;2943:18;;;;;;;;;;;;;;;;2936:25;;2850:119;;;:::o;1765:79::-;1803:7;1830:6;;;;;;;;;;;1823:13;;1765:79;:::o;2571:87::-;2610:13;2643:7;2636:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2571:87;:::o;5194:112::-;1903:10;1892:21;;:7;:5;:7::i;:::-;:21;;;1884:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5286:12:::1;5270:13;;:28;;;;;;;;;;;;;;;;;;5194:112:::0;:::o;2977:165::-;3055:4;3072:40;3082:10;3094:9;3105:6;3072:9;:40::i;:::-;3130:4;3123:11;;2977:165;;;;:::o;5692:46::-;;;;:::o;3150:143::-;3231:7;3258:11;:18;3270:5;3258:18;;;;;;;;;;;;;;;:27;3277:7;3258:27;;;;;;;;;;;;;;;;3251:34;;3150:143;;;;:::o;5502:182::-;1903:10;1892:21;;:7;:5;:7::i;:::-;:21;;;1884:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5598:1:::1;5584:10;:15;;:36;;;;;5617:3;5603:10;:17;;5584:36;5576:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5666:10;5652:11;:24;;;;5502:182:::0;:::o;4946:33::-;;;;:::o;4487:324::-;4598:1;4581:19;;:5;:19;;;4573:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4672:1;4653:21;;:7;:21;;;4645:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4749:6;4719:11;:18;4731:5;4719:18;;;;;;;;;;;;;;;:27;4738:7;4719:27;;;;;;;;;;;;;;;:36;;;;4787:7;4771:32;;4780:5;4771:32;;;4796:6;4771:32;;;;;;:::i;:::-;;;;;;;;4487:324;;;:::o;5906:645::-;6005:17;6057:13;;;;;;;;;;;6047:23;;:6;:23;;;6043:220;;6141:3;6131:6;6118:10;;:19;;;;:::i;:::-;6117:27;;;;:::i;:::-;6105:39;;6043:220;;;6248:3;6238:6;6224:11;;:20;;;;:::i;:::-;6223:28;;;;:::i;:::-;6211:40;;6043:220;6293:9;6275:14;;:27;;;;;;;:::i;:::-;;;;;;;;6323:9;6313:19;;;;;:::i;:::-;;;6343:42;6359:6;6367:9;6378:6;6343:15;:42::i;:::-;6479:18;;6461:14;;:36;6457:87;;6514:18;:16;:18::i;:::-;6457:87;5994:557;5906:645;;;:::o;3879:600::-;4003:1;3985:20;;:6;:20;;;3977:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4080:1;4059:23;;:9;:23;;;4051:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4143:1;4134:6;:10;4126:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4203:21;4227:9;:17;4237:6;4227:17;;;;;;;;;;;;;;;;4203:41;;4280:6;4263:13;:23;;4255:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4371:6;4355:13;:22;;;;:::i;:::-;4335:9;:17;4345:6;4335:17;;;;;;;;;;;;;;;:42;;;;4412:6;4388:9;:20;4398:9;4388:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4453:9;4436:35;;4445:6;4436:35;;;4464:6;4436:35;;;;;;:::i;:::-;;;;;;;;3966:513;3879:600;;;:::o;6559:1408::-;6607:15;6642:1;6625:14;;:18;;;;:::i;:::-;6607:36;;6654:20;6694:7;6677:14;;:24;;;;:::i;:::-;6654:47;;6772:65;6789:4;6804:15;;;;;;;;;;;6822:14;;6772:8;:65::i;:::-;6896:21;6934:1;6920:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:40;;6965:4;6947;6952:1;6947:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6991:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6981:4;6986:1;6981:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;7089:27;7119:15;;;;;;;;;;;:29;;;7149:7;7158:4;7119:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7089:74;;7174:25;7202:10;7213:1;7202:13;;;;;;;;:::i;:::-;;;;;;;;7174:41;;7274:15;;;;;;;;;;;:66;;;7351:7;7390:3;7380:7;:13;;;;:::i;:::-;7369:7;:25;;;;:::i;:::-;7453:4;7476;7492:15;7274:236;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7576:15;;;;;;;;;;;:31;;;7615:17;7652:4;7668:12;7722:3;7707:12;:18;;;;:::i;:::-;7691:12;:35;;;;:::i;:::-;7829:3;7809:17;:23;;;;:::i;:::-;7788:17;:45;;;;:::i;:::-;7892:7;:5;:7::i;:::-;7910:15;7576:352;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7958:1;7941:14;:18;;;;6596:1371;;;;;6559:1408::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:474::-;6916:6;6924;6973:2;6961:9;6952:7;6948:23;6944:32;6941:119;;;6979:79;;:::i;:::-;6941:119;7099:1;7124:53;7169:7;7160:6;7149:9;7145:22;7124:53;:::i;:::-;7114:63;;7070:117;7226:2;7252:53;7297:7;7288:6;7277:9;7273:22;7252:53;:::i;:::-;7242:63;;7197:118;6848:474;;;;;:::o;7328:180::-;7376:77;7373:1;7366:88;7473:4;7470:1;7463:15;7497:4;7494:1;7487:15;7514:320;7558:6;7595:1;7589:4;7585:12;7575:22;;7642:1;7636:4;7632:12;7663:18;7653:81;;7719:4;7711:6;7707:17;7697:27;;7653:81;7781:2;7773:6;7770:14;7750:18;7747:38;7744:84;;7800:18;;:::i;:::-;7744:84;7565:269;7514:320;;;:::o;7840:220::-;7980:34;7976:1;7968:6;7964:14;7957:58;8049:3;8044:2;8036:6;8032:15;8025:28;7840:220;:::o;8066:366::-;8208:3;8229:67;8293:2;8288:3;8229:67;:::i;:::-;8222:74;;8305:93;8394:3;8305:93;:::i;:::-;8423:2;8418:3;8414:12;8407:19;;8066:366;;;:::o;8438:419::-;8604:4;8642:2;8631:9;8627:18;8619:26;;8691:9;8685:4;8681:20;8677:1;8666:9;8662:17;8655:47;8719:131;8845:4;8719:131;:::i;:::-;8711:139;;8438:419;;;:::o;8863:180::-;8911:77;8908:1;8901:88;9008:4;9005:1;8998:15;9032:4;9029:1;9022:15;9049:194;9089:4;9109:20;9127:1;9109:20;:::i;:::-;9104:25;;9143:20;9161:1;9143:20;:::i;:::-;9138:25;;9187:1;9184;9180:9;9172:17;;9211:1;9205:4;9202:11;9199:37;;;9216:18;;:::i;:::-;9199:37;9049:194;;;;:::o;9249:182::-;9389:34;9385:1;9377:6;9373:14;9366:58;9249:182;:::o;9437:366::-;9579:3;9600:67;9664:2;9659:3;9600:67;:::i;:::-;9593:74;;9676:93;9765:3;9676:93;:::i;:::-;9794:2;9789:3;9785:12;9778:19;;9437:366;;;:::o;9809:419::-;9975:4;10013:2;10002:9;9998:18;9990:26;;10062:9;10056:4;10052:20;10048:1;10037:9;10033:17;10026:47;10090:131;10216:4;10090:131;:::i;:::-;10082:139;;9809:419;;;:::o;10234:166::-;10374:18;10370:1;10362:6;10358:14;10351:42;10234:166;:::o;10406:366::-;10548:3;10569:67;10633:2;10628:3;10569:67;:::i;:::-;10562:74;;10645:93;10734:3;10645:93;:::i;:::-;10763:2;10758:3;10754:12;10747:19;;10406:366;;;:::o;10778:419::-;10944:4;10982:2;10971:9;10967:18;10959:26;;11031:9;11025:4;11021:20;11017:1;11006:9;11002:17;10995:47;11059:131;11185:4;11059:131;:::i;:::-;11051:139;;10778:419;;;:::o;11203:179::-;11343:31;11339:1;11331:6;11327:14;11320:55;11203:179;:::o;11388:366::-;11530:3;11551:67;11615:2;11610:3;11551:67;:::i;:::-;11544:74;;11627:93;11716:3;11627:93;:::i;:::-;11745:2;11740:3;11736:12;11729:19;;11388:366;;;:::o;11760:419::-;11926:4;11964:2;11953:9;11949:18;11941:26;;12013:9;12007:4;12003:20;11999:1;11988:9;11984:17;11977:47;12041:131;12167:4;12041:131;:::i;:::-;12033:139;;11760:419;;;:::o;12185:177::-;12325:29;12321:1;12313:6;12309:14;12302:53;12185:177;:::o;12368:366::-;12510:3;12531:67;12595:2;12590:3;12531:67;:::i;:::-;12524:74;;12607:93;12696:3;12607:93;:::i;:::-;12725:2;12720:3;12716:12;12709:19;;12368:366;;;:::o;12740:419::-;12906:4;12944:2;12933:9;12929:18;12921:26;;12993:9;12987:4;12983:20;12979:1;12968:9;12964:17;12957:47;13021:131;13147:4;13021:131;:::i;:::-;13013:139;;12740:419;;;:::o;13165:410::-;13205:7;13228:20;13246:1;13228:20;:::i;:::-;13223:25;;13262:20;13280:1;13262:20;:::i;:::-;13257:25;;13317:1;13314;13310:9;13339:30;13357:11;13339:30;:::i;:::-;13328:41;;13518:1;13509:7;13505:15;13502:1;13499:22;13479:1;13472:9;13452:83;13429:139;;13548:18;;:::i;:::-;13429:139;13213:362;13165:410;;;;:::o;13581:180::-;13629:77;13626:1;13619:88;13726:4;13723:1;13716:15;13750:4;13747:1;13740:15;13767:185;13807:1;13824:20;13842:1;13824:20;:::i;:::-;13819:25;;13858:20;13876:1;13858:20;:::i;:::-;13853:25;;13897:1;13887:35;;13902:18;;:::i;:::-;13887:35;13944:1;13941;13937:9;13932:14;;13767:185;;;;:::o;13958:191::-;13998:3;14017:20;14035:1;14017:20;:::i;:::-;14012:25;;14051:20;14069:1;14051:20;:::i;:::-;14046:25;;14094:1;14091;14087:9;14080:16;;14115:3;14112:1;14109:10;14106:36;;;14122:18;;:::i;:::-;14106:36;13958:191;;;;:::o;14155:180::-;14295:32;14291:1;14283:6;14279:14;14272:56;14155:180;:::o;14341:366::-;14483:3;14504:67;14568:2;14563:3;14504:67;:::i;:::-;14497:74;;14580:93;14669:3;14580:93;:::i;:::-;14698:2;14693:3;14689:12;14682:19;;14341:366;;;:::o;14713:419::-;14879:4;14917:2;14906:9;14902:18;14894:26;;14966:9;14960:4;14956:20;14952:1;14941:9;14937:17;14930:47;14994:131;15120:4;14994:131;:::i;:::-;14986:139;;14713:419;;;:::o;15138:178::-;15278:30;15274:1;15266:6;15262:14;15255:54;15138:178;:::o;15322:366::-;15464:3;15485:67;15549:2;15544:3;15485:67;:::i;:::-;15478:74;;15561:93;15650:3;15561:93;:::i;:::-;15679:2;15674:3;15670:12;15663:19;;15322:366;;;:::o;15694:419::-;15860:4;15898:2;15887:9;15883:18;15875:26;;15947:9;15941:4;15937:20;15933:1;15922:9;15918:17;15911:47;15975:131;16101:4;15975:131;:::i;:::-;15967:139;;15694:419;;;:::o;16119:228::-;16259:34;16255:1;16247:6;16243:14;16236:58;16328:11;16323:2;16315:6;16311:15;16304:36;16119:228;:::o;16353:366::-;16495:3;16516:67;16580:2;16575:3;16516:67;:::i;:::-;16509:74;;16592:93;16681:3;16592:93;:::i;:::-;16710:2;16705:3;16701:12;16694:19;;16353:366;;;:::o;16725:419::-;16891:4;16929:2;16918:9;16914:18;16906:26;;16978:9;16972:4;16968:20;16964:1;16953:9;16949:17;16942:47;17006:131;17132:4;17006:131;:::i;:::-;16998:139;;16725:419;;;:::o;17150:181::-;17290:33;17286:1;17278:6;17274:14;17267:57;17150:181;:::o;17337:366::-;17479:3;17500:67;17564:2;17559:3;17500:67;:::i;:::-;17493:74;;17576:93;17665:3;17576:93;:::i;:::-;17694:2;17689:3;17685:12;17678:19;;17337:366;;;:::o;17709:419::-;17875:4;17913:2;17902:9;17898:18;17890:26;;17962:9;17956:4;17952:20;17948:1;17937:9;17933:17;17926:47;17990:131;18116:4;17990:131;:::i;:::-;17982:139;;17709:419;;;:::o;18134:180::-;18182:77;18179:1;18172:88;18279:4;18276:1;18269:15;18303:4;18300:1;18293:15;18320:180;18368:77;18365:1;18358:88;18465:4;18462:1;18455:15;18489:4;18486:1;18479:15;18506:143;18563:5;18594:6;18588:13;18579:22;;18610:33;18637:5;18610:33;:::i;:::-;18506:143;;;;:::o;18655:351::-;18725:6;18774:2;18762:9;18753:7;18749:23;18745:32;18742:119;;;18780:79;;:::i;:::-;18742:119;18900:1;18925:64;18981:7;18972:6;18961:9;18957:22;18925:64;:::i;:::-;18915:74;;18871:128;18655:351;;;;:::o;19012:114::-;19079:6;19113:5;19107:12;19097:22;;19012:114;;;:::o;19132:184::-;19231:11;19265:6;19260:3;19253:19;19305:4;19300:3;19296:14;19281:29;;19132:184;;;;:::o;19322:132::-;19389:4;19412:3;19404:11;;19442:4;19437:3;19433:14;19425:22;;19322:132;;;:::o;19460:108::-;19537:24;19555:5;19537:24;:::i;:::-;19532:3;19525:37;19460:108;;:::o;19574:179::-;19643:10;19664:46;19706:3;19698:6;19664:46;:::i;:::-;19742:4;19737:3;19733:14;19719:28;;19574:179;;;;:::o;19759:113::-;19829:4;19861;19856:3;19852:14;19844:22;;19759:113;;;:::o;19908:732::-;20027:3;20056:54;20104:5;20056:54;:::i;:::-;20126:86;20205:6;20200:3;20126:86;:::i;:::-;20119:93;;20236:56;20286:5;20236:56;:::i;:::-;20315:7;20346:1;20331:284;20356:6;20353:1;20350:13;20331:284;;;20432:6;20426:13;20459:63;20518:3;20503:13;20459:63;:::i;:::-;20452:70;;20545:60;20598:6;20545:60;:::i;:::-;20535:70;;20391:224;20378:1;20375;20371:9;20366:14;;20331:284;;;20335:14;20631:3;20624:10;;20032:608;;;19908:732;;;;:::o;20646:483::-;20817:4;20855:2;20844:9;20840:18;20832:26;;20868:71;20936:1;20925:9;20921:17;20912:6;20868:71;:::i;:::-;20986:9;20980:4;20976:20;20971:2;20960:9;20956:18;20949:48;21014:108;21117:4;21108:6;21014:108;:::i;:::-;21006:116;;20646:483;;;;;:::o;21135:117::-;21244:1;21241;21234:12;21258:281;21341:27;21363:4;21341:27;:::i;:::-;21333:6;21329:40;21471:6;21459:10;21456:22;21435:18;21423:10;21420:34;21417:62;21414:88;;;21482:18;;:::i;:::-;21414:88;21522:10;21518:2;21511:22;21301:238;21258:281;;:::o;21545:129::-;21579:6;21606:20;;:::i;:::-;21596:30;;21635:33;21663:4;21655:6;21635:33;:::i;:::-;21545:129;;;:::o;21680:311::-;21757:4;21847:18;21839:6;21836:30;21833:56;;;21869:18;;:::i;:::-;21833:56;21919:4;21911:6;21907:17;21899:25;;21979:4;21973;21969:15;21961:23;;21680:311;;;:::o;21997:117::-;22106:1;22103;22096:12;22120:143;22177:5;22208:6;22202:13;22193:22;;22224:33;22251:5;22224:33;:::i;:::-;22120:143;;;;:::o;22286:732::-;22393:5;22418:81;22434:64;22491:6;22434:64;:::i;:::-;22418:81;:::i;:::-;22409:90;;22519:5;22548:6;22541:5;22534:21;22582:4;22575:5;22571:16;22564:23;;22635:4;22627:6;22623:17;22615:6;22611:30;22664:3;22656:6;22653:15;22650:122;;;22683:79;;:::i;:::-;22650:122;22798:6;22781:231;22815:6;22810:3;22807:15;22781:231;;;22890:3;22919:48;22963:3;22951:10;22919:48;:::i;:::-;22914:3;22907:61;22997:4;22992:3;22988:14;22981:21;;22857:155;22841:4;22836:3;22832:14;22825:21;;22781:231;;;22785:21;22399:619;;22286:732;;;;;:::o;23041:385::-;23123:5;23172:3;23165:4;23157:6;23153:17;23149:27;23139:122;;23180:79;;:::i;:::-;23139:122;23290:6;23284:13;23315:105;23416:3;23408:6;23401:4;23393:6;23389:17;23315:105;:::i;:::-;23306:114;;23129:297;23041:385;;;;:::o;23432:554::-;23527:6;23576:2;23564:9;23555:7;23551:23;23547:32;23544:119;;;23582:79;;:::i;:::-;23544:119;23723:1;23712:9;23708:17;23702:24;23753:18;23745:6;23742:30;23739:117;;;23775:79;;:::i;:::-;23739:117;23880:89;23961:7;23952:6;23941:9;23937:22;23880:89;:::i;:::-;23870:99;;23673:306;23432:554;;;;:::o;23992:815::-;24247:4;24285:3;24274:9;24270:19;24262:27;;24299:71;24367:1;24356:9;24352:17;24343:6;24299:71;:::i;:::-;24380:72;24448:2;24437:9;24433:18;24424:6;24380:72;:::i;:::-;24499:9;24493:4;24489:20;24484:2;24473:9;24469:18;24462:48;24527:108;24630:4;24621:6;24527:108;:::i;:::-;24519:116;;24645:72;24713:2;24702:9;24698:18;24689:6;24645:72;:::i;:::-;24727:73;24795:3;24784:9;24780:19;24771:6;24727:73;:::i;:::-;23992:815;;;;;;;;:::o;24813:775::-;25046:4;25084:3;25073:9;25069:19;25061:27;;25098:71;25166:1;25155:9;25151:17;25142:6;25098:71;:::i;:::-;25179:72;25247:2;25236:9;25232:18;25223:6;25179:72;:::i;:::-;25261;25329:2;25318:9;25314:18;25305:6;25261:72;:::i;:::-;25343;25411:2;25400:9;25396:18;25387:6;25343:72;:::i;:::-;25425:73;25493:3;25482:9;25478:19;25469:6;25425:73;:::i;:::-;25508;25576:3;25565:9;25561:19;25552:6;25508:73;:::i;:::-;24813:775;;;;;;;;;:::o;25594:663::-;25682:6;25690;25698;25747:2;25735:9;25726:7;25722:23;25718:32;25715:119;;;25753:79;;:::i;:::-;25715:119;25873:1;25898:64;25954:7;25945:6;25934:9;25930:22;25898:64;:::i;:::-;25888:74;;25844:128;26011:2;26037:64;26093:7;26084:6;26073:9;26069:22;26037:64;:::i;:::-;26027:74;;25982:129;26150:2;26176:64;26232:7;26223:6;26212:9;26208:22;26176:64;:::i;:::-;26166:74;;26121:129;25594:663;;;;;:::o

Swarm Source

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