ETH Price: $2,970.45 (-0.66%)
Gas: 6 Gwei

Token

AIREALM (AIRM)
 

Overview

Max Total Supply

100,000,000 AIRM

Holders

449 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.866543278842999482 AIRM

Value
$0.00
0x50c222edd8cca8703005ff59de5001f2cc33ab71
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

First ever AI ecosystem that gathers all of your preferred AI utilities into a single platform.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AIREALM

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-11
*/

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

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 AIREALM 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 _taxWallet = payable(0x4d6e3f1feaa1B297D345A378E6e0b8779E74E927);


    uint256 public _buyTax = 30; //Buy fee
    uint256 public _sellTax = 30; // sell fee


    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals; // Total supply
    string private constant _name = unicode"AIREALM";  // Name
    string private constant _symbol = unicode"AIRM"; // Symbol
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;

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

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

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
        
        // 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[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

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

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


            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellTax).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(_taxWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }


    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function changeFee(uint256 buyFee, uint256 sellFee) public onlyOwner {
        require(buyFee <= 25, "Tax too high");
        require(sellFee <= 25, "Tax too high");
        _buyTax = buyFee;
        _sellTax = sellFee;
    }

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

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

    function changeTaxWallet(address payable newWallet) external onlyOwner {
        _taxWallet = newWallet;
    }
    
    }

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":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","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":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052734d6e3f1feaa1b297d345a378e6e0b8779e74e92760045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e600555601e6006556012600a6200007291906200079a565b620186a0620000829190620007ea565b6007555f600960146101000a81548160ff0219169083151502179055506001600960156101000a81548160ff021916908315150217905550348015620000c6575f80fd5b50620000e7620000db6200051960201b60201c565b6200052060201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000149573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200016f919062000899565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fb919062000899565b6040518363ffffffff1660e01b81526004016200021a929190620008da565b6020604051808303815f875af115801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d919062000899565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002ec91906200079a565b6305f5e100620002fd9190620007ea565b60015f620003106200051960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000362620005e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200048c6200051960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004ea91906200079a565b6305f5e100620004fb9190620007ea565b6040516200050a919062000916565b60405180910390a35062000931565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000692578086048111156200066a576200066962000608565b5b60018516156200067a5780820291505b80810290506200068a8562000635565b94506200064a565b94509492505050565b5f82620006ac57600190506200077e565b81620006bb575f90506200077e565b8160018114620006d45760028114620006df5762000715565b60019150506200077e565b60ff841115620006f457620006f362000608565b5b8360020a9150848211156200070e576200070d62000608565b5b506200077e565b5060208310610133831016604e8410600b84101617156200074f5782820a90508381111562000749576200074862000608565b5b6200077e565b6200075e848484600162000641565b9250905081840481111562000778576200077762000608565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007a68262000785565b9150620007b3836200078e565b9250620007e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200069b565b905092915050565b5f620007f68262000785565b9150620008038362000785565b9250828202620008138162000785565b915082820484148315176200082d576200082c62000608565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008638262000838565b9050919050565b620008758162000857565b811462000880575f80fd5b50565b5f8151905062000893816200086a565b92915050565b5f60208284031215620008b157620008b062000834565b5b5f620008c08482850162000883565b91505092915050565b620008d48162000857565b82525050565b5f604082019050620008ef5f830185620008c9565b620008fe6020830184620008c9565b9392505050565b620009108162000785565b82525050565b5f6020820190506200092b5f83018462000905565b92915050565b612889806200093f5f395ff3fe608060405260043610610138575f3560e01c8063768dc710116100aa578063ca9ec1991161006e578063ca9ec19914610413578063cb7115951461043d578063dd62ed3e14610465578063e3ca2d65146104a1578063ea2f0b37146104c9578063f2fde38b146104f15761013f565b8063768dc7101461031d5780638da5cb5b1461035957806395d89b4114610383578063a9059cbb146103ad578063bf474bed146103e95761013f565b806342a11095116100fc57806342a1109514610239578063508f6dfb1461026357806351bc3c851461028b5780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063313ce5671461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190611aa9565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b5a565b610556565b6040516101a09190611bb2565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190611bda565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190611bf3565b610596565b6040516102069190611bb2565b60405180910390f35b34801561021a575f80fd5b5061022361066a565b6040516102309190611c5e565b60405180910390f35b348015610244575f80fd5b5061024d610672565b60405161025a9190611bda565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190611c77565b610678565b005b348015610296575f80fd5b5061029f6106d8565b005b3480156102ac575f80fd5b506102b561076f565b6040516102c29190611cc2565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190611c77565b610794565b6040516102fe9190611bda565b60405180910390f35b348015610312575f80fd5b5061031b6107da565b005b348015610328575f80fd5b50610343600480360381019061033e9190611c77565b6107ed565b6040516103509190611bb2565b60405180910390f35b348015610364575f80fd5b5061036d61080a565b60405161037a9190611cea565b60405180910390f35b34801561038e575f80fd5b50610397610831565b6040516103a49190611aa9565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190611b5a565b61086e565b6040516103e09190611bb2565b60405180910390f35b3480156103f4575f80fd5b506103fd61088b565b60405161040a9190611bda565b60405180910390f35b34801561041e575f80fd5b50610427610891565b6040516104349190611bda565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611d2d565b610897565b005b348015610470575f80fd5b5061048b60048036038101906104869190611d58565b6108e2565b6040516104989190611bda565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190611d96565b610964565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190611c77565b610a06565b005b3480156104fc575f80fd5b5061051760048036038101906105129190611c77565b610a65565b005b60606040518060400160405280600781526020017f41495245414c4d00000000000000000000000000000000000000000000000000815250905090565b5f610569610562610ae7565b8484610aee565b6001905092915050565b5f6012600a6105829190611f30565b6305f5e1006105919190611f7a565b905090565b5f6105a2848484610cb1565b61065f846105ae610ae7565b61065a8560405180606001604052806028815260200161282c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610611610ae7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113769092919063ffffffff16565b610aee565b600190509392505050565b5f6012905090565b60055481565b6106806113d8565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610718610ae7565b73ffffffffffffffffffffffffffffffffffffffff1614610737575f80fd5b5f61074130610794565b90505f8111156107555761075481611456565b5b5f4790505f81111561076b5761076a816116ca565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e26113d8565b6107eb5f611797565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4149524d00000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610ae7565b8484610cb1565b6001905092915050565b60075481565b60065481565b61089f6113d8565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61096c6113d8565b60198211156109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612005565b60405180910390fd5b60198111156109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612005565b60405180910390fd5b81600581905550806006819055505050565b610a0e6113d8565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a6d6113d8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad290612093565b60405180910390fd5b610ae481611797565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612121565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc1906121af565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca49190611bda565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061223d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d84906122cb565b60405180910390fd5b5f8111610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690612359565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e6e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110c65760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f1c575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f4c57610f496064610f3b6005548561185890919063ffffffff16565b6118cf90919063ffffffff16565b90505b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611004576110016064610ff36006548561185890919063ffffffff16565b6118cf90919063ffffffff16565b90505b5f61100e30610794565b9050600960149054906101000a900460ff16158015611079575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110915750600960159054906101000a900460ff165b801561109e575060075481115b156110c4576110ac81611456565b5f4790505f8111156110c2576110c1476116ca565b5b505b505b5f8111156111c55761111e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111bc9190611bda565b60405180910390a35b6112158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112b861126c828461197590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61135b848661197590919063ffffffff16565b6040516113689190611bda565b60405180910390a350505050565b5f8383111582906113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b49190611aa9565b60405180910390fd5b505f83856113cb9190612377565b9050809150509392505050565b6113e0610ae7565b73ffffffffffffffffffffffffffffffffffffffff166113fe61080a565b73ffffffffffffffffffffffffffffffffffffffff1614611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b906123f4565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f8103156116ad575f600267ffffffffffffffff81111561149557611494612412565b5b6040519080825280602002602001820160405280156114c35781602001602082028036833780820191505090505b50905030815f815181106114da576114d961243f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a29190612480565b816001815181106115b6576115b561243f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061161c3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610aee565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161167e9594939291906125a4565b5f604051808303815f87803b158015611695575f80fd5b505af11580156116a7573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161171090612629565b5f6040518083038185875af1925050503d805f811461174a576040519150601f19603f3d011682016040523d82523d5f602084013e61174f565b606091505b5050905080611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90612687565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611868575f90506118c9565b5f82846118759190611f7a565b905082848261188491906126d2565b146118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90612772565b60405180910390fd5b809150505b92915050565b5f61191083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119be565b905092915050565b5f8082846119269190612790565b90508381101561196b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119629061280d565b60405180910390fd5b8091505092915050565b5f6119b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611376565b905092915050565b5f8083118290611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb9190611aa9565b60405180910390fd5b505f8385611a1291906126d2565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a56578082015181840152602081019050611a3b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a7b82611a1f565b611a858185611a29565b9350611a95818560208601611a39565b611a9e81611a61565b840191505092915050565b5f6020820190508181035f830152611ac18184611a71565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611af682611acd565b9050919050565b611b0681611aec565b8114611b10575f80fd5b50565b5f81359050611b2181611afd565b92915050565b5f819050919050565b611b3981611b27565b8114611b43575f80fd5b50565b5f81359050611b5481611b30565b92915050565b5f8060408385031215611b7057611b6f611ac9565b5b5f611b7d85828601611b13565b9250506020611b8e85828601611b46565b9150509250929050565b5f8115159050919050565b611bac81611b98565b82525050565b5f602082019050611bc55f830184611ba3565b92915050565b611bd481611b27565b82525050565b5f602082019050611bed5f830184611bcb565b92915050565b5f805f60608486031215611c0a57611c09611ac9565b5b5f611c1786828701611b13565b9350506020611c2886828701611b13565b9250506040611c3986828701611b46565b9150509250925092565b5f60ff82169050919050565b611c5881611c43565b82525050565b5f602082019050611c715f830184611c4f565b92915050565b5f60208284031215611c8c57611c8b611ac9565b5b5f611c9984828501611b13565b91505092915050565b5f611cac82611acd565b9050919050565b611cbc81611ca2565b82525050565b5f602082019050611cd55f830184611cb3565b92915050565b611ce481611aec565b82525050565b5f602082019050611cfd5f830184611cdb565b92915050565b611d0c81611ca2565b8114611d16575f80fd5b50565b5f81359050611d2781611d03565b92915050565b5f60208284031215611d4257611d41611ac9565b5b5f611d4f84828501611d19565b91505092915050565b5f8060408385031215611d6e57611d6d611ac9565b5b5f611d7b85828601611b13565b9250506020611d8c85828601611b13565b9150509250929050565b5f8060408385031215611dac57611dab611ac9565b5b5f611db985828601611b46565b9250506020611dca85828601611b46565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611e5657808604811115611e3257611e31611dd4565b5b6001851615611e415780820291505b8081029050611e4f85611e01565b9450611e16565b94509492505050565b5f82611e6e5760019050611f29565b81611e7b575f9050611f29565b8160018114611e915760028114611e9b57611eca565b6001915050611f29565b60ff841115611ead57611eac611dd4565b5b8360020a915084821115611ec457611ec3611dd4565b5b50611f29565b5060208310610133831016604e8410600b8410161715611eff5782820a905083811115611efa57611ef9611dd4565b5b611f29565b611f0c8484846001611e0d565b92509050818404811115611f2357611f22611dd4565b5b81810290505b9392505050565b5f611f3a82611b27565b9150611f4583611c43565b9250611f727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611e5f565b905092915050565b5f611f8482611b27565b9150611f8f83611b27565b9250828202611f9d81611b27565b91508282048414831517611fb457611fb3611dd4565b5b5092915050565b7f54617820746f6f206869676800000000000000000000000000000000000000005f82015250565b5f611fef600c83611a29565b9150611ffa82611fbb565b602082019050919050565b5f6020820190508181035f83015261201c81611fe3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61207d602683611a29565b915061208882612023565b604082019050919050565b5f6020820190508181035f8301526120aa81612071565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61210b602483611a29565b9150612116826120b1565b604082019050919050565b5f6020820190508181035f830152612138816120ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612199602283611a29565b91506121a48261213f565b604082019050919050565b5f6020820190508181035f8301526121c68161218d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612227602583611a29565b9150612232826121cd565b604082019050919050565b5f6020820190508181035f8301526122548161221b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6122b5602383611a29565b91506122c08261225b565b604082019050919050565b5f6020820190508181035f8301526122e2816122a9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612343602983611a29565b915061234e826122e9565b604082019050919050565b5f6020820190508181035f83015261237081612337565b9050919050565b5f61238182611b27565b915061238c83611b27565b92508282039050818111156123a4576123a3611dd4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123de602083611a29565b91506123e9826123aa565b602082019050919050565b5f6020820190508181035f83015261240b816123d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061247a81611afd565b92915050565b5f6020828403121561249557612494611ac9565b5b5f6124a28482850161246c565b91505092915050565b5f819050919050565b5f819050919050565b5f6124d76124d26124cd846124ab565b6124b4565b611b27565b9050919050565b6124e7816124bd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61251f81611aec565b82525050565b5f6125308383612516565b60208301905092915050565b5f602082019050919050565b5f612552826124ed565b61255c81856124f7565b935061256783612507565b805f5b8381101561259757815161257e8882612525565b97506125898361253c565b92505060018101905061256a565b5085935050505092915050565b5f60a0820190506125b75f830188611bcb565b6125c460208301876124de565b81810360408301526125d68186612548565b90506125e56060830185611cdb565b6125f26080830184611bcb565b9695505050505050565b5f81905092915050565b50565b5f6126145f836125fc565b915061261f82612606565b5f82019050919050565b5f61263382612609565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612671600b83611a29565b915061267c8261263d565b602082019050919050565b5f6020820190508181035f83015261269e81612665565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126dc82611b27565b91506126e783611b27565b9250826126f7576126f66126a5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61275c602183611a29565b915061276782612702565b604082019050919050565b5f6020820190508181035f83015261278981612750565b9050919050565b5f61279a82611b27565b91506127a583611b27565b92508282019050808211156127bd576127bc611dd4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6127f7601b83611a29565b9150612802826127c3565b602082019050919050565b5f6020820190508181035f830152612824816127eb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010a4a427cedd12e44fb0b45641bcf082f6834cb3313f632ba4755e3f6e4a741e64736f6c63430008160033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063768dc710116100aa578063ca9ec1991161006e578063ca9ec19914610413578063cb7115951461043d578063dd62ed3e14610465578063e3ca2d65146104a1578063ea2f0b37146104c9578063f2fde38b146104f15761013f565b8063768dc7101461031d5780638da5cb5b1461035957806395d89b4114610383578063a9059cbb146103ad578063bf474bed146103e95761013f565b806342a11095116100fc57806342a1109514610239578063508f6dfb1461026357806351bc3c851461028b5780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063313ce5671461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190611aa9565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b5a565b610556565b6040516101a09190611bb2565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190611bda565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190611bf3565b610596565b6040516102069190611bb2565b60405180910390f35b34801561021a575f80fd5b5061022361066a565b6040516102309190611c5e565b60405180910390f35b348015610244575f80fd5b5061024d610672565b60405161025a9190611bda565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190611c77565b610678565b005b348015610296575f80fd5b5061029f6106d8565b005b3480156102ac575f80fd5b506102b561076f565b6040516102c29190611cc2565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190611c77565b610794565b6040516102fe9190611bda565b60405180910390f35b348015610312575f80fd5b5061031b6107da565b005b348015610328575f80fd5b50610343600480360381019061033e9190611c77565b6107ed565b6040516103509190611bb2565b60405180910390f35b348015610364575f80fd5b5061036d61080a565b60405161037a9190611cea565b60405180910390f35b34801561038e575f80fd5b50610397610831565b6040516103a49190611aa9565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190611b5a565b61086e565b6040516103e09190611bb2565b60405180910390f35b3480156103f4575f80fd5b506103fd61088b565b60405161040a9190611bda565b60405180910390f35b34801561041e575f80fd5b50610427610891565b6040516104349190611bda565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611d2d565b610897565b005b348015610470575f80fd5b5061048b60048036038101906104869190611d58565b6108e2565b6040516104989190611bda565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190611d96565b610964565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190611c77565b610a06565b005b3480156104fc575f80fd5b5061051760048036038101906105129190611c77565b610a65565b005b60606040518060400160405280600781526020017f41495245414c4d00000000000000000000000000000000000000000000000000815250905090565b5f610569610562610ae7565b8484610aee565b6001905092915050565b5f6012600a6105829190611f30565b6305f5e1006105919190611f7a565b905090565b5f6105a2848484610cb1565b61065f846105ae610ae7565b61065a8560405180606001604052806028815260200161282c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610611610ae7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113769092919063ffffffff16565b610aee565b600190509392505050565b5f6012905090565b60055481565b6106806113d8565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610718610ae7565b73ffffffffffffffffffffffffffffffffffffffff1614610737575f80fd5b5f61074130610794565b90505f8111156107555761075481611456565b5b5f4790505f81111561076b5761076a816116ca565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e26113d8565b6107eb5f611797565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4149524d00000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610ae7565b8484610cb1565b6001905092915050565b60075481565b60065481565b61089f6113d8565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61096c6113d8565b60198211156109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612005565b60405180910390fd5b60198111156109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612005565b60405180910390fd5b81600581905550806006819055505050565b610a0e6113d8565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a6d6113d8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad290612093565b60405180910390fd5b610ae481611797565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612121565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc1906121af565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca49190611bda565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061223d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d84906122cb565b60405180910390fd5b5f8111610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690612359565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e6e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110c65760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f1c575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f4c57610f496064610f3b6005548561185890919063ffffffff16565b6118cf90919063ffffffff16565b90505b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611004576110016064610ff36006548561185890919063ffffffff16565b6118cf90919063ffffffff16565b90505b5f61100e30610794565b9050600960149054906101000a900460ff16158015611079575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110915750600960159054906101000a900460ff165b801561109e575060075481115b156110c4576110ac81611456565b5f4790505f8111156110c2576110c1476116ca565b5b505b505b5f8111156111c55761111e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111bc9190611bda565b60405180910390a35b6112158260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112b861126c828461197590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61135b848661197590919063ffffffff16565b6040516113689190611bda565b60405180910390a350505050565b5f8383111582906113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b49190611aa9565b60405180910390fd5b505f83856113cb9190612377565b9050809150509392505050565b6113e0610ae7565b73ffffffffffffffffffffffffffffffffffffffff166113fe61080a565b73ffffffffffffffffffffffffffffffffffffffff1614611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b906123f4565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f8103156116ad575f600267ffffffffffffffff81111561149557611494612412565b5b6040519080825280602002602001820160405280156114c35781602001602082028036833780820191505090505b50905030815f815181106114da576114d961243f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a29190612480565b816001815181106115b6576115b561243f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061161c3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610aee565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161167e9594939291906125a4565b5f604051808303815f87803b158015611695575f80fd5b505af11580156116a7573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161171090612629565b5f6040518083038185875af1925050503d805f811461174a576040519150601f19603f3d011682016040523d82523d5f602084013e61174f565b606091505b5050905080611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90612687565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611868575f90506118c9565b5f82846118759190611f7a565b905082848261188491906126d2565b146118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90612772565b60405180910390fd5b809150505b92915050565b5f61191083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119be565b905092915050565b5f8082846119269190612790565b90508381101561196b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119629061280d565b60405180910390fd5b8091505092915050565b5f6119b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611376565b905092915050565b5f8083118290611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb9190611aa9565b60405180910390fd5b505f8385611a1291906126d2565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a56578082015181840152602081019050611a3b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a7b82611a1f565b611a858185611a29565b9350611a95818560208601611a39565b611a9e81611a61565b840191505092915050565b5f6020820190508181035f830152611ac18184611a71565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611af682611acd565b9050919050565b611b0681611aec565b8114611b10575f80fd5b50565b5f81359050611b2181611afd565b92915050565b5f819050919050565b611b3981611b27565b8114611b43575f80fd5b50565b5f81359050611b5481611b30565b92915050565b5f8060408385031215611b7057611b6f611ac9565b5b5f611b7d85828601611b13565b9250506020611b8e85828601611b46565b9150509250929050565b5f8115159050919050565b611bac81611b98565b82525050565b5f602082019050611bc55f830184611ba3565b92915050565b611bd481611b27565b82525050565b5f602082019050611bed5f830184611bcb565b92915050565b5f805f60608486031215611c0a57611c09611ac9565b5b5f611c1786828701611b13565b9350506020611c2886828701611b13565b9250506040611c3986828701611b46565b9150509250925092565b5f60ff82169050919050565b611c5881611c43565b82525050565b5f602082019050611c715f830184611c4f565b92915050565b5f60208284031215611c8c57611c8b611ac9565b5b5f611c9984828501611b13565b91505092915050565b5f611cac82611acd565b9050919050565b611cbc81611ca2565b82525050565b5f602082019050611cd55f830184611cb3565b92915050565b611ce481611aec565b82525050565b5f602082019050611cfd5f830184611cdb565b92915050565b611d0c81611ca2565b8114611d16575f80fd5b50565b5f81359050611d2781611d03565b92915050565b5f60208284031215611d4257611d41611ac9565b5b5f611d4f84828501611d19565b91505092915050565b5f8060408385031215611d6e57611d6d611ac9565b5b5f611d7b85828601611b13565b9250506020611d8c85828601611b13565b9150509250929050565b5f8060408385031215611dac57611dab611ac9565b5b5f611db985828601611b46565b9250506020611dca85828601611b46565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611e5657808604811115611e3257611e31611dd4565b5b6001851615611e415780820291505b8081029050611e4f85611e01565b9450611e16565b94509492505050565b5f82611e6e5760019050611f29565b81611e7b575f9050611f29565b8160018114611e915760028114611e9b57611eca565b6001915050611f29565b60ff841115611ead57611eac611dd4565b5b8360020a915084821115611ec457611ec3611dd4565b5b50611f29565b5060208310610133831016604e8410600b8410161715611eff5782820a905083811115611efa57611ef9611dd4565b5b611f29565b611f0c8484846001611e0d565b92509050818404811115611f2357611f22611dd4565b5b81810290505b9392505050565b5f611f3a82611b27565b9150611f4583611c43565b9250611f727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611e5f565b905092915050565b5f611f8482611b27565b9150611f8f83611b27565b9250828202611f9d81611b27565b91508282048414831517611fb457611fb3611dd4565b5b5092915050565b7f54617820746f6f206869676800000000000000000000000000000000000000005f82015250565b5f611fef600c83611a29565b9150611ffa82611fbb565b602082019050919050565b5f6020820190508181035f83015261201c81611fe3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61207d602683611a29565b915061208882612023565b604082019050919050565b5f6020820190508181035f8301526120aa81612071565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61210b602483611a29565b9150612116826120b1565b604082019050919050565b5f6020820190508181035f830152612138816120ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612199602283611a29565b91506121a48261213f565b604082019050919050565b5f6020820190508181035f8301526121c68161218d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612227602583611a29565b9150612232826121cd565b604082019050919050565b5f6020820190508181035f8301526122548161221b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6122b5602383611a29565b91506122c08261225b565b604082019050919050565b5f6020820190508181035f8301526122e2816122a9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612343602983611a29565b915061234e826122e9565b604082019050919050565b5f6020820190508181035f83015261237081612337565b9050919050565b5f61238182611b27565b915061238c83611b27565b92508282039050818111156123a4576123a3611dd4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123de602083611a29565b91506123e9826123aa565b602082019050919050565b5f6020820190508181035f83015261240b816123d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061247a81611afd565b92915050565b5f6020828403121561249557612494611ac9565b5b5f6124a28482850161246c565b91505092915050565b5f819050919050565b5f819050919050565b5f6124d76124d26124cd846124ab565b6124b4565b611b27565b9050919050565b6124e7816124bd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61251f81611aec565b82525050565b5f6125308383612516565b60208301905092915050565b5f602082019050919050565b5f612552826124ed565b61255c81856124f7565b935061256783612507565b805f5b8381101561259757815161257e8882612525565b97506125898361253c565b92505060018101905061256a565b5085935050505092915050565b5f60a0820190506125b75f830188611bcb565b6125c460208301876124de565b81810360408301526125d68186612548565b90506125e56060830185611cdb565b6125f26080830184611bcb565b9695505050505050565b5f81905092915050565b50565b5f6126145f836125fc565b915061261f82612606565b5f82019050919050565b5f61263382612609565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612671600b83611a29565b915061267c8261263d565b602082019050919050565b5f6020820190508181035f83015261269e81612665565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126dc82611b27565b91506126e783611b27565b9250826126f7576126f66126a5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61275c602183611a29565b915061276782612702565b604082019050919050565b5f6020820190508181035f83015261278981612750565b9050919050565b5f61279a82611b27565b91506127a583611b27565b92508282019050808211156127bd576127bc611dd4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6127f7601b83611a29565b9150612802826127c3565b602082019050919050565b5f6020820190508181035f830152612824816127eb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010a4a427cedd12e44fb0b45641bcf082f6834cb3313f632ba4755e3f6e4a741e64736f6c63430008160033

Deployed Bytecode Sourcemap

4810:6758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6571:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7404:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6848:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7573:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6757:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5182:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10610:348;;;;;;;;;;;;;:::i;:::-;;5084:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6951:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;:::i;:::-;;5026:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2590:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7078:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5532:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5226:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11443:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7253:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10966:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11325:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3489:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6571:83;6608:13;6641:5;;;;;;;;;;;;;;;;;6634:12;;6571:83;:::o;7404:161::-;7479:4;7496:39;7505:12;:10;:12::i;:::-;7519:7;7528:6;7496:8;:39::i;:::-;7553:4;7546:11;;7404:161;;;;:::o;6848:95::-;6901:7;5312:2;5368;:13;;;;:::i;:::-;5356:9;:25;;;;:::i;:::-;6921:14;;6848:95;:::o;7573:313::-;7671:4;7688:36;7698:6;7706:9;7717:6;7688:9;:36::i;:::-;7735:121;7744:6;7752:12;:10;:12::i;:::-;7766:89;7804:6;7766:89;;;;;;;;;;;;;;;;;:11;:19;7778:6;7766:19;;;;;;;;;;;;;;;:33;7786:12;:10;:12::i;:::-;7766:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7735:8;:121::i;:::-;7874:4;7867:11;;7573:313;;;;;:::o;6757:83::-;6798:5;5312:2;6816:16;;6757:83;:::o;5182:27::-;;;;:::o;11204:113::-;2476:13;:11;:13::i;:::-;11305:4:::1;11275:18;:27;11294:7;11275:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11204:113:::0;:::o;10610:348::-;10674:10;;;;;;;;;;;10660:24;;:12;:10;:12::i;:::-;:24;;;10652:33;;;;;;10696:20;10717:24;10735:4;10717:9;:24::i;:::-;10696:45;;10768:1;10755:12;:14;10752:73;;;10783:30;10800:12;10783:16;:30::i;:::-;10752:73;10835:18;10854:21;10835:40;;10900:1;10889:10;:12;10886:65;;;10915:24;10928:10;10915:12;:24::i;:::-;10886:65;10641:317;;10610:348::o;5084:87::-;;;;;;;;;;;;;:::o;6951:119::-;7017:7;7044:9;:18;7054:7;7044:18;;;;;;;;;;;;;;;;7037:25;;6951:119;;;:::o;3231:103::-;2476:13;:11;:13::i;:::-;3296:30:::1;3323:1;3296:18;:30::i;:::-;3231:103::o:0;5026:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2590:87::-;2636:7;2663:6;;;;;;;;;;;2656:13;;2590:87;:::o;6662:::-;6701:13;6734:7;;;;;;;;;;;;;;;;;6727:14;;6662:87;:::o;7078:167::-;7156:4;7173:42;7183:12;:10;:12::i;:::-;7197:9;7208:6;7173:9;:42::i;:::-;7233:4;7226:11;;7078:167;;;;:::o;5532:56::-;;;;:::o;5226:28::-;;;;:::o;11443:112::-;2476:13;:11;:13::i;:::-;11538:9:::1;11525:10;;:22;;;;;;;;;;;;;;;;;;11443:112:::0;:::o;7253:143::-;7334:7;7361:11;:18;7373:5;7361:18;;;;;;;;;;;;;;;:27;7380:7;7361:27;;;;;;;;;;;;;;;;7354:34;;7253:143;;;;:::o;10966:230::-;2476:13;:11;:13::i;:::-;11064:2:::1;11054:6;:12;;11046:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;11113:2;11102:7;:13;;11094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11153:6;11143:7;:16;;;;11181:7;11170:8;:18;;;;10966:230:::0;;:::o;11325:110::-;2476:13;:11;:13::i;:::-;11422:5:::1;11392:18;:27;11411:7;11392:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11325:110:::0;:::o;3489:201::-;2476:13;:11;:13::i;:::-;3598:1:::1;3578:22;;:8;:22;;::::0;3570:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3654:28;3673:8;3654:18;:28::i;:::-;3489:201:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;7894:335::-;8004:1;7987:19;;:5;:19;;;7979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8085:1;8066:21;;:7;:21;;;8058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8167:6;8137:11;:18;8149:5;8137:18;;;;;;;;;;;;;;;:27;8156:7;8137:27;;;;;;;;;;;;;;;:36;;;;8205:7;8189:32;;8198:5;8189:32;;;8214:6;8189:32;;;;;;:::i;:::-;;;;;;;;7894:335;;;:::o;8237:1505::-;8341:1;8325:18;;:4;:18;;;8317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8418:1;8404:16;;:2;:16;;;8396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8488:1;8479:6;:10;8471:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8546:17;8581:18;:24;8600:4;8581:24;;;;;;;;;;;;;;;;;;;;;;;;;8580:25;:52;;;;;8610:18;:22;8629:2;8610:22;;;;;;;;;;;;;;;;;;;;;;;;;8609:23;8580:52;8576:810;;;8663:13;;;;;;;;;;;8655:21;;:4;:21;;;:55;;;;;8694:15;;;;;;;;;;;8680:30;;:2;:30;;;;8655:55;8651:136;;;8743:28;8767:3;8743:19;8754:7;;8743:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8731:40;;8651:136;8814:13;;;;;;;;;;;8808:19;;:2;:19;;;:43;;;;;8846:4;8831:20;;:4;:20;;;;8808:43;8805:126;;;8884:29;8909:3;8884:20;8895:8;;8884:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8872:41;;8805:126;8947:28;8978:24;8996:4;8978:9;:24::i;:::-;8947:55;;9022:6;;;;;;;;;;;9021:7;:30;;;;;9038:13;;;;;;;;;;;9032:19;;:2;:19;;;9021:30;:45;;;;;9055:11;;;;;;;;;;;9021:45;:87;;;;;9091:17;;9070:20;:38;9021:87;9017:358;;;9129:38;9146:20;9129:16;:38::i;:::-;9186:26;9215:21;9186:50;;9279:1;9258:18;:22;9255:105;;;9305:35;9318:21;9305:12;:35::i;:::-;9255:105;9110:265;9017:358;8634:752;8576:810;9411:1;9401:9;:11;9398:161;;;9451:39;9480:9;9451;:24;9469:4;9451:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9426:9;:24;9444:4;9426:24;;;;;;;;;;;;;;;:64;;;;9531:4;9508:39;;9517:4;9508:39;;;9537:9;9508:39;;;;;;:::i;:::-;;;;;;;;9398:161;9585:27;9605:6;9585:9;:15;9595:4;9585:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9569:9;:15;9579:4;9569:15;;;;;;;;;;;;;;;:43;;;;9637:40;9655:21;9666:9;9655:6;:10;;:21;;;;:::i;:::-;9637:9;:13;9647:2;9637:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9623:9;:13;9633:2;9623:13;;;;;;;;;;;;;;;:54;;;;9708:2;9693:41;;9702:4;9693:41;;;9712:21;9723:9;9712:6;:10;;:21;;;;:::i;:::-;9693:41;;;;;;:::i;:::-;;;;;;;;8306:1436;8237:1505;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;2755:132::-;2830:12;:10;:12::i;:::-;2819:23;;:7;:5;:7::i;:::-;:23;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2755:132::o;9858:520::-;5797:4;5788:6;;:13;;;;;;;;;;;;;;;;;;9952:1:::1;9939:11;:14:::0;9936:27;9955:7:::1;9936:27;9973:21;10011:1;9997:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9973:40;;10042:4;10024;10029:1;10024:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10068:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10058:4;10063:1;10058:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10101:62;10118:4;10133:15;;;;;;;;;;;10151:11;10101:8;:62::i;:::-;10174:15;;;;;;;;;;;:66;;;10255:11;10281:1;10297:4;10324;10344:15;10174:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9925:453;5812:1;5833:5:::0;5824:6;;:14;;;;;;;;;;;;;;;;;;9858:520;:::o;10386:177::-;10444:16;10474:10;;;;;;;;;;;10466:24;;10498:6;10466:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10443:66;;;10528:11;10520:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10432:131;10386:177;:::o;3850:191::-;3924:16;3943:6;;;;;;;;;;;3924:25;;3969:8;3960:6;;:17;;;;;;;;;;;;;;;;;;4024:8;3993:40;;4014:8;3993:40;;;;;;;;;;;;3913:128;3850:191;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:104::-;5233:7;5262:24;5280:5;5262:24;:::i;:::-;5251:35;;5188:104;;;:::o;5298:142::-;5401:32;5427:5;5401:32;:::i;:::-;5396:3;5389:45;5298:142;;:::o;5446:254::-;5555:4;5593:2;5582:9;5578:18;5570:26;;5606:87;5690:1;5679:9;5675:17;5666:6;5606:87;:::i;:::-;5446:254;;;;:::o;5706:118::-;5793:24;5811:5;5793:24;:::i;:::-;5788:3;5781:37;5706:118;;:::o;5830:222::-;5923:4;5961:2;5950:9;5946:18;5938:26;;5974:71;6042:1;6031:9;6027:17;6018:6;5974:71;:::i;:::-;5830:222;;;;:::o;6058:138::-;6139:32;6165:5;6139:32;:::i;:::-;6132:5;6129:43;6119:71;;6186:1;6183;6176:12;6119:71;6058:138;:::o;6202:155::-;6256:5;6294:6;6281:20;6272:29;;6310:41;6345:5;6310:41;:::i;:::-;6202:155;;;;:::o;6363:345::-;6430:6;6479:2;6467:9;6458:7;6454:23;6450:32;6447:119;;;6485:79;;:::i;:::-;6447:119;6605:1;6630:61;6683:7;6674:6;6663:9;6659:22;6630:61;:::i;:::-;6620:71;;6576:125;6363:345;;;;:::o;6714:474::-;6782:6;6790;6839:2;6827:9;6818:7;6814:23;6810:32;6807:119;;;6845:79;;:::i;:::-;6807:119;6965:1;6990:53;7035:7;7026:6;7015:9;7011:22;6990:53;:::i;:::-;6980:63;;6936:117;7092:2;7118:53;7163:7;7154:6;7143:9;7139:22;7118:53;:::i;:::-;7108:63;;7063:118;6714:474;;;;;:::o;7194:::-;7262:6;7270;7319:2;7307:9;7298:7;7294:23;7290:32;7287:119;;;7325:79;;:::i;:::-;7287:119;7445:1;7470:53;7515:7;7506:6;7495:9;7491:22;7470:53;:::i;:::-;7460:63;;7416:117;7572:2;7598:53;7643:7;7634:6;7623:9;7619:22;7598:53;:::i;:::-;7588:63;;7543:118;7194:474;;;;;:::o;7674:180::-;7722:77;7719:1;7712:88;7819:4;7816:1;7809:15;7843:4;7840:1;7833:15;7860:102;7902:8;7949:5;7946:1;7942:13;7921:34;;7860:102;;;:::o;7968:848::-;8029:5;8036:4;8060:6;8051:15;;8084:5;8075:14;;8098:712;8119:1;8109:8;8106:15;8098:712;;;8214:4;8209:3;8205:14;8199:4;8196:24;8193:50;;;8223:18;;:::i;:::-;8193:50;8273:1;8263:8;8259:16;8256:451;;;8688:4;8681:5;8677:16;8668:25;;8256:451;8738:4;8732;8728:15;8720:23;;8768:32;8791:8;8768:32;:::i;:::-;8756:44;;8098:712;;;7968:848;;;;;;;:::o;8822:1073::-;8876:5;9067:8;9057:40;;9088:1;9079:10;;9090:5;;9057:40;9116:4;9106:36;;9133:1;9124:10;;9135:5;;9106:36;9202:4;9250:1;9245:27;;;;9286:1;9281:191;;;;9195:277;;9245:27;9263:1;9254:10;;9265:5;;;9281:191;9326:3;9316:8;9313:17;9310:43;;;9333:18;;:::i;:::-;9310:43;9382:8;9379:1;9375:16;9366:25;;9417:3;9410:5;9407:14;9404:40;;;9424:18;;:::i;:::-;9404:40;9457:5;;;9195:277;;9581:2;9571:8;9568:16;9562:3;9556:4;9553:13;9549:36;9531:2;9521:8;9518:16;9513:2;9507:4;9504:12;9500:35;9484:111;9481:246;;;9637:8;9631:4;9627:19;9618:28;;9672:3;9665:5;9662:14;9659:40;;;9679:18;;:::i;:::-;9659:40;9712:5;;9481:246;9752:42;9790:3;9780:8;9774:4;9771:1;9752:42;:::i;:::-;9737:57;;;;9826:4;9821:3;9817:14;9810:5;9807:25;9804:51;;;9835:18;;:::i;:::-;9804:51;9884:4;9877:5;9873:16;9864:25;;8822:1073;;;;;;:::o;9901:281::-;9959:5;9983:23;10001:4;9983:23;:::i;:::-;9975:31;;10027:25;10043:8;10027:25;:::i;:::-;10015:37;;10071:104;10108:66;10098:8;10092:4;10071:104;:::i;:::-;10062:113;;9901:281;;;;:::o;10188:410::-;10228:7;10251:20;10269:1;10251:20;:::i;:::-;10246:25;;10285:20;10303:1;10285:20;:::i;:::-;10280:25;;10340:1;10337;10333:9;10362:30;10380:11;10362:30;:::i;:::-;10351:41;;10541:1;10532:7;10528:15;10525:1;10522:22;10502:1;10495:9;10475:83;10452:139;;10571:18;;:::i;:::-;10452:139;10236:362;10188:410;;;;:::o;10604:162::-;10744:14;10740:1;10732:6;10728:14;10721:38;10604:162;:::o;10772:366::-;10914:3;10935:67;10999:2;10994:3;10935:67;:::i;:::-;10928:74;;11011:93;11100:3;11011:93;:::i;:::-;11129:2;11124:3;11120:12;11113:19;;10772:366;;;:::o;11144:419::-;11310:4;11348:2;11337:9;11333:18;11325:26;;11397:9;11391:4;11387:20;11383:1;11372:9;11368:17;11361:47;11425:131;11551:4;11425:131;:::i;:::-;11417:139;;11144:419;;;:::o;11569:225::-;11709:34;11705:1;11697:6;11693:14;11686:58;11778:8;11773:2;11765:6;11761:15;11754:33;11569:225;:::o;11800:366::-;11942:3;11963:67;12027:2;12022:3;11963:67;:::i;:::-;11956:74;;12039:93;12128:3;12039:93;:::i;:::-;12157:2;12152:3;12148:12;12141:19;;11800:366;;;:::o;12172:419::-;12338:4;12376:2;12365:9;12361:18;12353:26;;12425:9;12419:4;12415:20;12411:1;12400:9;12396:17;12389:47;12453:131;12579:4;12453:131;:::i;:::-;12445:139;;12172:419;;;:::o;12597:223::-;12737:34;12733:1;12725:6;12721:14;12714:58;12806:6;12801:2;12793:6;12789:15;12782:31;12597:223;:::o;12826:366::-;12968:3;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13065:93;13154:3;13065:93;:::i;:::-;13183:2;13178:3;13174:12;13167:19;;12826:366;;;:::o;13198:419::-;13364:4;13402:2;13391:9;13387:18;13379:26;;13451:9;13445:4;13441:20;13437:1;13426:9;13422:17;13415:47;13479:131;13605:4;13479:131;:::i;:::-;13471:139;;13198:419;;;:::o;13623:221::-;13763:34;13759:1;13751:6;13747:14;13740:58;13832:4;13827:2;13819:6;13815:15;13808:29;13623:221;:::o;13850:366::-;13992:3;14013:67;14077:2;14072:3;14013:67;:::i;:::-;14006:74;;14089:93;14178:3;14089:93;:::i;:::-;14207:2;14202:3;14198:12;14191:19;;13850:366;;;:::o;14222:419::-;14388:4;14426:2;14415:9;14411:18;14403:26;;14475:9;14469:4;14465:20;14461:1;14450:9;14446:17;14439:47;14503:131;14629:4;14503:131;:::i;:::-;14495:139;;14222:419;;;:::o;14647:224::-;14787:34;14783:1;14775:6;14771:14;14764:58;14856:7;14851:2;14843:6;14839:15;14832:32;14647:224;:::o;14877:366::-;15019:3;15040:67;15104:2;15099:3;15040:67;:::i;:::-;15033:74;;15116:93;15205:3;15116:93;:::i;:::-;15234:2;15229:3;15225:12;15218:19;;14877:366;;;:::o;15249:419::-;15415:4;15453:2;15442:9;15438:18;15430:26;;15502:9;15496:4;15492:20;15488:1;15477:9;15473:17;15466:47;15530:131;15656:4;15530:131;:::i;:::-;15522:139;;15249:419;;;:::o;15674:222::-;15814:34;15810:1;15802:6;15798:14;15791:58;15883:5;15878:2;15870:6;15866:15;15859:30;15674:222;:::o;15902:366::-;16044:3;16065:67;16129:2;16124:3;16065:67;:::i;:::-;16058:74;;16141:93;16230:3;16141:93;:::i;:::-;16259:2;16254:3;16250:12;16243:19;;15902:366;;;:::o;16274:419::-;16440:4;16478:2;16467:9;16463:18;16455:26;;16527:9;16521:4;16517:20;16513:1;16502:9;16498:17;16491:47;16555:131;16681:4;16555:131;:::i;:::-;16547:139;;16274:419;;;:::o;16699:228::-;16839:34;16835:1;16827:6;16823:14;16816:58;16908:11;16903:2;16895:6;16891:15;16884:36;16699:228;:::o;16933:366::-;17075:3;17096:67;17160:2;17155:3;17096:67;:::i;:::-;17089:74;;17172:93;17261:3;17172:93;:::i;:::-;17290:2;17285:3;17281:12;17274:19;;16933:366;;;:::o;17305:419::-;17471:4;17509:2;17498:9;17494:18;17486:26;;17558:9;17552:4;17548:20;17544:1;17533:9;17529:17;17522:47;17586:131;17712:4;17586:131;:::i;:::-;17578:139;;17305:419;;;:::o;17730:194::-;17770:4;17790:20;17808:1;17790:20;:::i;:::-;17785:25;;17824:20;17842:1;17824:20;:::i;:::-;17819:25;;17868:1;17865;17861:9;17853:17;;17892:1;17886:4;17883:11;17880:37;;;17897:18;;:::i;:::-;17880:37;17730:194;;;;:::o;17930:182::-;18070:34;18066:1;18058:6;18054:14;18047:58;17930:182;:::o;18118:366::-;18260:3;18281:67;18345:2;18340:3;18281:67;:::i;:::-;18274:74;;18357:93;18446:3;18357:93;:::i;:::-;18475:2;18470:3;18466:12;18459:19;;18118:366;;;:::o;18490:419::-;18656:4;18694:2;18683:9;18679:18;18671:26;;18743:9;18737:4;18733:20;18729:1;18718:9;18714:17;18707:47;18771:131;18897:4;18771:131;:::i;:::-;18763:139;;18490:419;;;:::o;18915:180::-;18963:77;18960:1;18953:88;19060:4;19057:1;19050:15;19084:4;19081:1;19074:15;19101:180;19149:77;19146:1;19139:88;19246:4;19243:1;19236:15;19270:4;19267:1;19260:15;19287:143;19344:5;19375:6;19369:13;19360:22;;19391:33;19418:5;19391:33;:::i;:::-;19287:143;;;;:::o;19436:351::-;19506:6;19555:2;19543:9;19534:7;19530:23;19526:32;19523:119;;;19561:79;;:::i;:::-;19523:119;19681:1;19706:64;19762:7;19753:6;19742:9;19738:22;19706:64;:::i;:::-;19696:74;;19652:128;19436:351;;;;:::o;19793:85::-;19838:7;19867:5;19856:16;;19793:85;;;:::o;19884:60::-;19912:3;19933:5;19926:12;;19884:60;;;:::o;19950:158::-;20008:9;20041:61;20059:42;20068:32;20094:5;20068:32;:::i;:::-;20059:42;:::i;:::-;20041:61;:::i;:::-;20028:74;;19950:158;;;:::o;20114:147::-;20209:45;20248:5;20209:45;:::i;:::-;20204:3;20197:58;20114:147;;:::o;20267:114::-;20334:6;20368:5;20362:12;20352:22;;20267:114;;;:::o;20387:184::-;20486:11;20520:6;20515:3;20508:19;20560:4;20555:3;20551:14;20536:29;;20387:184;;;;:::o;20577:132::-;20644:4;20667:3;20659:11;;20697:4;20692:3;20688:14;20680:22;;20577:132;;;:::o;20715:108::-;20792:24;20810:5;20792:24;:::i;:::-;20787:3;20780:37;20715:108;;:::o;20829:179::-;20898:10;20919:46;20961:3;20953:6;20919:46;:::i;:::-;20997:4;20992:3;20988:14;20974:28;;20829:179;;;;:::o;21014:113::-;21084:4;21116;21111:3;21107:14;21099:22;;21014:113;;;:::o;21163:732::-;21282:3;21311:54;21359:5;21311:54;:::i;:::-;21381:86;21460:6;21455:3;21381:86;:::i;:::-;21374:93;;21491:56;21541:5;21491:56;:::i;:::-;21570:7;21601:1;21586:284;21611:6;21608:1;21605:13;21586:284;;;21687:6;21681:13;21714:63;21773:3;21758:13;21714:63;:::i;:::-;21707:70;;21800:60;21853:6;21800:60;:::i;:::-;21790:70;;21646:224;21633:1;21630;21626:9;21621:14;;21586:284;;;21590:14;21886:3;21879:10;;21287:608;;;21163:732;;;;:::o;21901:831::-;22164:4;22202:3;22191:9;22187:19;22179:27;;22216:71;22284:1;22273:9;22269:17;22260:6;22216:71;:::i;:::-;22297:80;22373:2;22362:9;22358:18;22349:6;22297:80;:::i;:::-;22424:9;22418:4;22414:20;22409:2;22398:9;22394:18;22387:48;22452:108;22555:4;22546:6;22452:108;:::i;:::-;22444:116;;22570:72;22638:2;22627:9;22623:18;22614:6;22570:72;:::i;:::-;22652:73;22720:3;22709:9;22705:19;22696:6;22652:73;:::i;:::-;21901:831;;;;;;;;:::o;22738:147::-;22839:11;22876:3;22861:18;;22738:147;;;;:::o;22891:114::-;;:::o;23011:398::-;23170:3;23191:83;23272:1;23267:3;23191:83;:::i;:::-;23184:90;;23283:93;23372:3;23283:93;:::i;:::-;23401:1;23396:3;23392:11;23385:18;;23011:398;;;:::o;23415:379::-;23599:3;23621:147;23764:3;23621:147;:::i;:::-;23614:154;;23785:3;23778:10;;23415:379;;;:::o;23800:161::-;23940:13;23936:1;23928:6;23924:14;23917:37;23800:161;:::o;23967:366::-;24109:3;24130:67;24194:2;24189:3;24130:67;:::i;:::-;24123:74;;24206:93;24295:3;24206:93;:::i;:::-;24324:2;24319:3;24315:12;24308:19;;23967:366;;;:::o;24339:419::-;24505:4;24543:2;24532:9;24528:18;24520:26;;24592:9;24586:4;24582:20;24578:1;24567:9;24563:17;24556:47;24620:131;24746:4;24620:131;:::i;:::-;24612:139;;24339:419;;;:::o;24764:180::-;24812:77;24809:1;24802:88;24909:4;24906:1;24899:15;24933:4;24930:1;24923:15;24950:185;24990:1;25007:20;25025:1;25007:20;:::i;:::-;25002:25;;25041:20;25059:1;25041:20;:::i;:::-;25036:25;;25080:1;25070:35;;25085:18;;:::i;:::-;25070:35;25127:1;25124;25120:9;25115:14;;24950:185;;;;:::o;25141:220::-;25281:34;25277:1;25269:6;25265:14;25258:58;25350:3;25345:2;25337:6;25333:15;25326:28;25141:220;:::o;25367:366::-;25509:3;25530:67;25594:2;25589:3;25530:67;:::i;:::-;25523:74;;25606:93;25695:3;25606:93;:::i;:::-;25724:2;25719:3;25715:12;25708:19;;25367:366;;;:::o;25739:419::-;25905:4;25943:2;25932:9;25928:18;25920:26;;25992:9;25986:4;25982:20;25978:1;25967:9;25963:17;25956:47;26020:131;26146:4;26020:131;:::i;:::-;26012:139;;25739:419;;;:::o;26164:191::-;26204:3;26223:20;26241:1;26223:20;:::i;:::-;26218:25;;26257:20;26275:1;26257:20;:::i;:::-;26252:25;;26300:1;26297;26293:9;26286:16;;26321:3;26318:1;26315:10;26312:36;;;26328:18;;:::i;:::-;26312:36;26164:191;;;;:::o;26361:177::-;26501:29;26497:1;26489:6;26485:14;26478:53;26361:177;:::o;26544:366::-;26686:3;26707:67;26771:2;26766:3;26707:67;:::i;:::-;26700:74;;26783:93;26872:3;26783:93;:::i;:::-;26901:2;26896:3;26892:12;26885:19;;26544:366;;;:::o;26916:419::-;27082:4;27120:2;27109:9;27105:18;27097:26;;27169:9;27163:4;27159:20;27155:1;27144:9;27140:17;27133:47;27197:131;27323:4;27197:131;:::i;:::-;27189:139;;26916:419;;;:::o

Swarm Source

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