ETH Price: $3,396.94 (+2.51%)

Token

ProxyNetwork (PROXY)
 

Overview

Max Total Supply

100,000,000 PROXY

Holders

246

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
570,045.656499081398850187 PROXY

Value
$0.00
0x5a03130f711b409fbafcd6b0b193c0bdf20f180e
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:
ProxyNetwork

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-04
*/

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

contract ProxyNetwork 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;

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

    uint256 public _proxyBuyTax = 5;
    uint256 public _proxySellTax = 5;
    address payable public _proxyTaxWallet = payable(0xc1A7D99282FCb1e1683a9bb677EC56B3c4e0612D);

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

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

    event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);


    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
      //  IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test 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[_proxyTaxWallet] = 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(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= maxWalletLimit, "Cant exceed max wallet limit");
            }

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

            if(_proxySellTax > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_proxySellTax).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(_proxyTaxWallet).call{value: amount}("");

        if (!callSuccess) {
        // Log the failure but do not revert the transaction
        emit TaxWalletPaymentRevert(_proxyTaxWallet, amount);
    }

    }


    receive() external payable {}

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

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

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

    function updateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner{
        require(_taxLimit > 0, "Threshold cannot be 0");
        _taxSwapThreshold = _taxLimit;
    }

    function changeTaxes(uint256 buyFee, uint256 sellFee) public onlyOwner {
        _proxyBuyTax = buyFee;
        _proxySellTax = sellFee;
    }

    function changeMaxWalletLimit(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit cannot be too low");
        maxWalletLimit = _maxLimit;
    }

    
    
    }

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":"taxWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxWalletPaymentRevert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_proxyBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_proxySellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_proxyTaxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"changeTaxes","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":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"_taxLimit","type":"uint256"}],"name":"updateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a6100129190610786565b61c35061001f91906107d0565b60045561003061051e60201b60201c565b600a61003c9190610786565b621e848061004a91906107d0565b6005556005600655600560075573c1a7d99282fcb1e1683a9bb677ec56b3c4e0612d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055503480156100eb575f80fd5b506101086100fd61052660201b60201c565b61052d60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610169573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018d919061086f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610216919061086f565b6040518363ffffffff1660e01b81526004016102339291906108a9565b6020604051808303815f875af115801561024f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610273919061086f565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6103009190610786565b6305f5e10061030f91906107d0565b60015f61032061052660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6103706105ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061049861052660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6104f49190610786565b6305f5e10061050391906107d0565b60405161051091906108df565b60405180910390a3506108f8565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106975780860481111561067357610672610615565b5b60018516156106825780820291505b808102905061069085610642565b9450610657565b94509492505050565b5f826106af576001905061076a565b816106bc575f905061076a565b81600181146106d257600281146106dc5761070b565b600191505061076a565b60ff8411156106ee576106ed610615565b5b8360020a91508482111561070557610704610615565b5b5061076a565b5060208310610133831016604e8410600b84101617156107405782820a90508381111561073b5761073a610615565b5b61076a565b61074d848484600161064e565b9250905081840481111561076457610763610615565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61079082610771565b915061079b8361077a565b92506107c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106a0565b905092915050565b5f6107da82610771565b91506107e583610771565b92508282026107f381610771565b9150828204841483151761080a57610809610615565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61083e82610815565b9050919050565b61084e81610834565b8114610858575f80fd5b50565b5f8151905061086981610845565b92915050565b5f6020828403121561088457610883610811565b5b5f6108918482850161085b565b91505092915050565b6108a381610834565b82525050565b5f6040820190506108bc5f83018561089a565b6108c9602083018461089a565b9392505050565b6108d981610771565b82525050565b5f6020820190506108f25f8301846108d0565b92915050565b6129c9806109055f395ff3fe60806040526004361061014e575f3560e01c806370a08231116100b5578063bf474bed1161006e578063bf474bed14610479578063d6a931f1146104a3578063dd62ed3e146104cd578063ea2f0b3714610509578063f2fde38b14610531578063fe2314d61461055957610155565b806370a082311461035b578063715018a614610397578063768dc710146103ad5780638da5cb5b146103e957806395d89b4114610413578063a9059cbb1461043d57610155565b8063313ce56711610107578063313ce567146102755780634180bcc31461029f578063508f6dfb146102c957806351bc3c85146102f157806356cd2e201461030757806366a88d961461033157610155565b8063034832bd1461015957806306fdde0314610181578063095ea7b3146101ab57806318160ddd146101e7578063212e3b2b1461021157806323b872dd1461023957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a9190611b72565b610581565b005b34801561018c575f80fd5b506101956105d5565b6040516101a29190611c0d565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc9190611c87565b610612565b6040516101de9190611cdf565b60405180910390f35b3480156101f2575f80fd5b506101fb61062f565b6040516102089190611d07565b60405180910390f35b34801561021c575f80fd5b5061023760048036038101906102329190611b72565b610652565b005b348015610244575f80fd5b5061025f600480360381019061025a9190611d20565b6106c0565b60405161026c9190611cdf565b60405180910390f35b348015610280575f80fd5b50610289610794565b6040516102969190611d8b565b60405180910390f35b3480156102aa575f80fd5b506102b361079c565b6040516102c09190611d07565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea9190611da4565b6107a2565b005b3480156102fc575f80fd5b50610305610802565b005b348015610312575f80fd5b5061031b610899565b6040516103289190611d07565b60405180910390f35b34801561033c575f80fd5b5061034561089f565b6040516103529190611d07565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c9190611da4565b6108a5565b60405161038e9190611d07565b60405180910390f35b3480156103a2575f80fd5b506103ab6108eb565b005b3480156103b8575f80fd5b506103d360048036038101906103ce9190611da4565b6108fe565b6040516103e09190611cdf565b60405180910390f35b3480156103f4575f80fd5b506103fd61091b565b60405161040a9190611dde565b60405180910390f35b34801561041e575f80fd5b50610427610942565b6040516104349190611c0d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611c87565b61097f565b6040516104709190611cdf565b60405180910390f35b348015610484575f80fd5b5061048d61099c565b60405161049a9190611d07565b60405180910390f35b3480156104ae575f80fd5b506104b76109a2565b6040516104c49190611e17565b60405180910390f35b3480156104d8575f80fd5b506104f360048036038101906104ee9190611e30565b6109c7565b6040516105009190611d07565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190611da4565b610a49565b005b34801561053c575f80fd5b5061055760048036038101906105529190611da4565b610aa8565b005b348015610564575f80fd5b5061057f600480360381019061057a9190611e6e565b610b2a565b005b610589610b44565b5f81116105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290611ef6565b60405180910390fd5b8060048190555050565b60606040518060400160405280600c81526020017f50726f78794e6574776f726b0000000000000000000000000000000000000000815250905090565b5f61062561061e610bc2565b8484610bc9565b6001905092915050565b5f6012600a61063e9190612070565b6305f5e10061064d91906120ba565b905090565b61065a610b44565b61067560c861066761062f565b610d8c90919063ffffffff16565b81116106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad90612145565b60405180910390fd5b8060058190555050565b5f6106cc848484610dd5565b610789846106d8610bc2565b6107848560405180606001604052806028815260200161296c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61073b610bc2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115249092919063ffffffff16565b610bc9565b600190509392505050565b5f6012905090565b60065481565b6107aa610b44565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610842610bc2565b73ffffffffffffffffffffffffffffffffffffffff1614610861575f80fd5b5f61086b306108a5565b90505f81111561087f5761087e81611586565b5b5f4790505f81111561089557610894816117fa565b5b5050565b60075481565b60055481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f3610b44565b6108fc5f6118fc565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f50524f5859000000000000000000000000000000000000000000000000000000815250905090565b5f61099261098b610bc2565b8484610dd5565b6001905092915050565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a51610b44565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ab0610b44565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b15906121d3565b60405180910390fd5b610b27816118fc565b50565b610b32610b44565b81600681905550806007819055505050565b610b4c610bc2565b73ffffffffffffffffffffffffffffffffffffffff16610b6a61091b565b73ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061223b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e906122c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612357565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f9190611d07565b60405180910390a3505050565b5f610dcd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119bd565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906123e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890612473565b60405180910390fd5b5f8111610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612501565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f92575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561127457600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110445760055482610ff8856108a5565b611002919061251f565b1115611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a9061259c565b60405180910390fd5b5b5f600654111561112857600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110f7575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561112757611124606461111660065485611a1e90919063ffffffff16565b610d8c90919063ffffffff16565b90505b5b5f60075411156111b257600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b1576111ae60646111a060075485611a1e90919063ffffffff16565b610d8c90919063ffffffff16565b90505b5b5f6111bc306108a5565b9050600a60149054906101000a900460ff161580156112275750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561123f5750600a60159054906101000a900460ff165b801561124c575060045481115b156112725761125a81611586565b5f4790505f8111156112705761126f476117fa565b5b505b505b5f811115611373576112cc8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161136a9190611d07565b60405180910390a35b6113c38260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611af290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061146661141a8284611af290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115098486611af290919063ffffffff16565b6040516115169190611d07565b60405180910390a350505050565b5f83831115829061156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629190611c0d565b60405180910390fd5b505f838561157991906125ba565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156117dd575f600267ffffffffffffffff8111156115c5576115c46125ed565b5b6040519080825280602002602001820160405280156115f35781602001602082028036833780820191505090505b50905030815f8151811061160a5761160961261a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d2919061265b565b816001815181106116e6576116e561261a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061174c3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bc9565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016117ae95949392919061277f565b5f604051808303815f87803b1580156117c5575f80fd5b505af11580156117d7573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161184090612804565b5f6040518083038185875af1925050503d805f811461187a576040519150601f19603f3d011682016040523d82523d5f602084013e61187f565b606091505b50509050806118f85760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516118ef9190611d07565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083118290611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9190611c0d565b60405180910390fd5b505f8385611a119190612845565b9050809150509392505050565b5f808303611a2e575f9050611a8f565b5f8284611a3b91906120ba565b9050828482611a4a9190612845565b14611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a81906128e5565b60405180910390fd5b809150505b92915050565b5f808284611aa3919061251f565b905083811015611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9061294d565b60405180910390fd5b8091505092915050565b5f611b3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611524565b905092915050565b5f80fd5b5f819050919050565b611b5181611b3f565b8114611b5b575f80fd5b50565b5f81359050611b6c81611b48565b92915050565b5f60208284031215611b8757611b86611b3b565b5b5f611b9484828501611b5e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611bdf82611b9d565b611be98185611ba7565b9350611bf9818560208601611bb7565b611c0281611bc5565b840191505092915050565b5f6020820190508181035f830152611c258184611bd5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c5682611c2d565b9050919050565b611c6681611c4c565b8114611c70575f80fd5b50565b5f81359050611c8181611c5d565b92915050565b5f8060408385031215611c9d57611c9c611b3b565b5b5f611caa85828601611c73565b9250506020611cbb85828601611b5e565b9150509250929050565b5f8115159050919050565b611cd981611cc5565b82525050565b5f602082019050611cf25f830184611cd0565b92915050565b611d0181611b3f565b82525050565b5f602082019050611d1a5f830184611cf8565b92915050565b5f805f60608486031215611d3757611d36611b3b565b5b5f611d4486828701611c73565b9350506020611d5586828701611c73565b9250506040611d6686828701611b5e565b9150509250925092565b5f60ff82169050919050565b611d8581611d70565b82525050565b5f602082019050611d9e5f830184611d7c565b92915050565b5f60208284031215611db957611db8611b3b565b5b5f611dc684828501611c73565b91505092915050565b611dd881611c4c565b82525050565b5f602082019050611df15f830184611dcf565b92915050565b5f611e0182611c2d565b9050919050565b611e1181611df7565b82525050565b5f602082019050611e2a5f830184611e08565b92915050565b5f8060408385031215611e4657611e45611b3b565b5b5f611e5385828601611c73565b9250506020611e6485828601611c73565b9150509250929050565b5f8060408385031215611e8457611e83611b3b565b5b5f611e9185828601611b5e565b9250506020611ea285828601611b5e565b9150509250929050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f611ee0601583611ba7565b9150611eeb82611eac565b602082019050919050565b5f6020820190508181035f830152611f0d81611ed4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611f9657808604811115611f7257611f71611f14565b5b6001851615611f815780820291505b8081029050611f8f85611f41565b9450611f56565b94509492505050565b5f82611fae5760019050612069565b81611fbb575f9050612069565b8160018114611fd15760028114611fdb5761200a565b6001915050612069565b60ff841115611fed57611fec611f14565b5b8360020a91508482111561200457612003611f14565b5b50612069565b5060208310610133831016604e8410600b841016171561203f5782820a90508381111561203a57612039611f14565b5b612069565b61204c8484846001611f4d565b9250905081840481111561206357612062611f14565b5b81810290505b9392505050565b5f61207a82611b3f565b915061208583611d70565b92506120b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611f9f565b905092915050565b5f6120c482611b3f565b91506120cf83611b3f565b92508282026120dd81611b3f565b915082820484148315176120f4576120f3611f14565b5b5092915050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f61212f601783611ba7565b915061213a826120fb565b602082019050919050565b5f6020820190508181035f83015261215c81612123565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121bd602683611ba7565b91506121c882612163565b604082019050919050565b5f6020820190508181035f8301526121ea816121b1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612225602083611ba7565b9150612230826121f1565b602082019050919050565b5f6020820190508181035f83015261225281612219565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122b3602483611ba7565b91506122be82612259565b604082019050919050565b5f6020820190508181035f8301526122e0816122a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612341602283611ba7565b915061234c826122e7565b604082019050919050565b5f6020820190508181035f83015261236e81612335565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123cf602583611ba7565b91506123da82612375565b604082019050919050565b5f6020820190508181035f8301526123fc816123c3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61245d602383611ba7565b915061246882612403565b604082019050919050565b5f6020820190508181035f83015261248a81612451565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6124eb602983611ba7565b91506124f682612491565b604082019050919050565b5f6020820190508181035f830152612518816124df565b9050919050565b5f61252982611b3f565b915061253483611b3f565b925082820190508082111561254c5761254b611f14565b5b92915050565b7f43616e7420657863656564206d61782077616c6c6574206c696d6974000000005f82015250565b5f612586601c83611ba7565b915061259182612552565b602082019050919050565b5f6020820190508181035f8301526125b38161257a565b9050919050565b5f6125c482611b3f565b91506125cf83611b3f565b92508282039050818111156125e7576125e6611f14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061265581611c5d565b92915050565b5f602082840312156126705761266f611b3b565b5b5f61267d84828501612647565b91505092915050565b5f819050919050565b5f819050919050565b5f6126b26126ad6126a884612686565b61268f565b611b3f565b9050919050565b6126c281612698565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6126fa81611c4c565b82525050565b5f61270b83836126f1565b60208301905092915050565b5f602082019050919050565b5f61272d826126c8565b61273781856126d2565b9350612742836126e2565b805f5b838110156127725781516127598882612700565b975061276483612717565b925050600181019050612745565b5085935050505092915050565b5f60a0820190506127925f830188611cf8565b61279f60208301876126b9565b81810360408301526127b18186612723565b90506127c06060830185611dcf565b6127cd6080830184611cf8565b9695505050505050565b5f81905092915050565b50565b5f6127ef5f836127d7565b91506127fa826127e1565b5f82019050919050565b5f61280e826127e4565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61284f82611b3f565b915061285a83611b3f565b92508261286a57612869612818565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128cf602183611ba7565b91506128da82612875565b604082019050919050565b5f6020820190508181035f8301526128fc816128c3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612937601b83611ba7565b915061294282612903565b602082019050919050565b5f6020820190508181035f8301526129648161292b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebff07324dce135248308ca0f13739ef5a56f7b48f55cc6c5812c849ed07ba0264736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c806370a08231116100b5578063bf474bed1161006e578063bf474bed14610479578063d6a931f1146104a3578063dd62ed3e146104cd578063ea2f0b3714610509578063f2fde38b14610531578063fe2314d61461055957610155565b806370a082311461035b578063715018a614610397578063768dc710146103ad5780638da5cb5b146103e957806395d89b4114610413578063a9059cbb1461043d57610155565b8063313ce56711610107578063313ce567146102755780634180bcc31461029f578063508f6dfb146102c957806351bc3c85146102f157806356cd2e201461030757806366a88d961461033157610155565b8063034832bd1461015957806306fdde0314610181578063095ea7b3146101ab57806318160ddd146101e7578063212e3b2b1461021157806323b872dd1461023957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a9190611b72565b610581565b005b34801561018c575f80fd5b506101956105d5565b6040516101a29190611c0d565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc9190611c87565b610612565b6040516101de9190611cdf565b60405180910390f35b3480156101f2575f80fd5b506101fb61062f565b6040516102089190611d07565b60405180910390f35b34801561021c575f80fd5b5061023760048036038101906102329190611b72565b610652565b005b348015610244575f80fd5b5061025f600480360381019061025a9190611d20565b6106c0565b60405161026c9190611cdf565b60405180910390f35b348015610280575f80fd5b50610289610794565b6040516102969190611d8b565b60405180910390f35b3480156102aa575f80fd5b506102b361079c565b6040516102c09190611d07565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea9190611da4565b6107a2565b005b3480156102fc575f80fd5b50610305610802565b005b348015610312575f80fd5b5061031b610899565b6040516103289190611d07565b60405180910390f35b34801561033c575f80fd5b5061034561089f565b6040516103529190611d07565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c9190611da4565b6108a5565b60405161038e9190611d07565b60405180910390f35b3480156103a2575f80fd5b506103ab6108eb565b005b3480156103b8575f80fd5b506103d360048036038101906103ce9190611da4565b6108fe565b6040516103e09190611cdf565b60405180910390f35b3480156103f4575f80fd5b506103fd61091b565b60405161040a9190611dde565b60405180910390f35b34801561041e575f80fd5b50610427610942565b6040516104349190611c0d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611c87565b61097f565b6040516104709190611cdf565b60405180910390f35b348015610484575f80fd5b5061048d61099c565b60405161049a9190611d07565b60405180910390f35b3480156104ae575f80fd5b506104b76109a2565b6040516104c49190611e17565b60405180910390f35b3480156104d8575f80fd5b506104f360048036038101906104ee9190611e30565b6109c7565b6040516105009190611d07565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190611da4565b610a49565b005b34801561053c575f80fd5b5061055760048036038101906105529190611da4565b610aa8565b005b348015610564575f80fd5b5061057f600480360381019061057a9190611e6e565b610b2a565b005b610589610b44565b5f81116105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290611ef6565b60405180910390fd5b8060048190555050565b60606040518060400160405280600c81526020017f50726f78794e6574776f726b0000000000000000000000000000000000000000815250905090565b5f61062561061e610bc2565b8484610bc9565b6001905092915050565b5f6012600a61063e9190612070565b6305f5e10061064d91906120ba565b905090565b61065a610b44565b61067560c861066761062f565b610d8c90919063ffffffff16565b81116106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad90612145565b60405180910390fd5b8060058190555050565b5f6106cc848484610dd5565b610789846106d8610bc2565b6107848560405180606001604052806028815260200161296c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61073b610bc2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115249092919063ffffffff16565b610bc9565b600190509392505050565b5f6012905090565b60065481565b6107aa610b44565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610842610bc2565b73ffffffffffffffffffffffffffffffffffffffff1614610861575f80fd5b5f61086b306108a5565b90505f81111561087f5761087e81611586565b5b5f4790505f81111561089557610894816117fa565b5b5050565b60075481565b60055481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f3610b44565b6108fc5f6118fc565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f50524f5859000000000000000000000000000000000000000000000000000000815250905090565b5f61099261098b610bc2565b8484610dd5565b6001905092915050565b60045481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a51610b44565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ab0610b44565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b15906121d3565b60405180910390fd5b610b27816118fc565b50565b610b32610b44565b81600681905550806007819055505050565b610b4c610bc2565b73ffffffffffffffffffffffffffffffffffffffff16610b6a61091b565b73ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061223b565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e906122c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612357565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f9190611d07565b60405180910390a3505050565b5f610dcd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119bd565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906123e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890612473565b60405180910390fd5b5f8111610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612501565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f92575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561127457600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110445760055482610ff8856108a5565b611002919061251f565b1115611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a9061259c565b60405180910390fd5b5b5f600654111561112857600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110f7575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561112757611124606461111660065485611a1e90919063ffffffff16565b610d8c90919063ffffffff16565b90505b5b5f60075411156111b257600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b1576111ae60646111a060075485611a1e90919063ffffffff16565b610d8c90919063ffffffff16565b90505b5b5f6111bc306108a5565b9050600a60149054906101000a900460ff161580156112275750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561123f5750600a60159054906101000a900460ff165b801561124c575060045481115b156112725761125a81611586565b5f4790505f8111156112705761126f476117fa565b5b505b505b5f811115611373576112cc8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161136a9190611d07565b60405180910390a35b6113c38260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611af290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061146661141a8284611af290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115098486611af290919063ffffffff16565b6040516115169190611d07565b60405180910390a350505050565b5f83831115829061156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629190611c0d565b60405180910390fd5b505f838561157991906125ba565b9050809150509392505050565b6001600a60146101000a81548160ff0219169083151502179055505f8103156117dd575f600267ffffffffffffffff8111156115c5576115c46125ed565b5b6040519080825280602002602001820160405280156115f35781602001602082028036833780820191505090505b50905030815f8151811061160a5761160961261a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d2919061265b565b816001815181106116e6576116e561261a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061174c3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bc9565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016117ae95949392919061277f565b5f604051808303815f87803b1580156117c5575f80fd5b505af11580156117d7573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161184090612804565b5f6040518083038185875af1925050503d805f811461187a576040519150601f19603f3d011682016040523d82523d5f602084013e61187f565b606091505b50509050806118f85760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516118ef9190611d07565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083118290611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9190611c0d565b60405180910390fd5b505f8385611a119190612845565b9050809150509392505050565b5f808303611a2e575f9050611a8f565b5f8284611a3b91906120ba565b9050828482611a4a9190612845565b14611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a81906128e5565b60405180910390fd5b809150505b92915050565b5f808284611aa3919061251f565b905083811015611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9061294d565b60405180910390fd5b8091505092915050565b5f611b3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611524565b905092915050565b5f80fd5b5f819050919050565b611b5181611b3f565b8114611b5b575f80fd5b50565b5f81359050611b6c81611b48565b92915050565b5f60208284031215611b8757611b86611b3b565b5b5f611b9484828501611b5e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611bdf82611b9d565b611be98185611ba7565b9350611bf9818560208601611bb7565b611c0281611bc5565b840191505092915050565b5f6020820190508181035f830152611c258184611bd5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c5682611c2d565b9050919050565b611c6681611c4c565b8114611c70575f80fd5b50565b5f81359050611c8181611c5d565b92915050565b5f8060408385031215611c9d57611c9c611b3b565b5b5f611caa85828601611c73565b9250506020611cbb85828601611b5e565b9150509250929050565b5f8115159050919050565b611cd981611cc5565b82525050565b5f602082019050611cf25f830184611cd0565b92915050565b611d0181611b3f565b82525050565b5f602082019050611d1a5f830184611cf8565b92915050565b5f805f60608486031215611d3757611d36611b3b565b5b5f611d4486828701611c73565b9350506020611d5586828701611c73565b9250506040611d6686828701611b5e565b9150509250925092565b5f60ff82169050919050565b611d8581611d70565b82525050565b5f602082019050611d9e5f830184611d7c565b92915050565b5f60208284031215611db957611db8611b3b565b5b5f611dc684828501611c73565b91505092915050565b611dd881611c4c565b82525050565b5f602082019050611df15f830184611dcf565b92915050565b5f611e0182611c2d565b9050919050565b611e1181611df7565b82525050565b5f602082019050611e2a5f830184611e08565b92915050565b5f8060408385031215611e4657611e45611b3b565b5b5f611e5385828601611c73565b9250506020611e6485828601611c73565b9150509250929050565b5f8060408385031215611e8457611e83611b3b565b5b5f611e9185828601611b5e565b9250506020611ea285828601611b5e565b9150509250929050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f611ee0601583611ba7565b9150611eeb82611eac565b602082019050919050565b5f6020820190508181035f830152611f0d81611ed4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611f9657808604811115611f7257611f71611f14565b5b6001851615611f815780820291505b8081029050611f8f85611f41565b9450611f56565b94509492505050565b5f82611fae5760019050612069565b81611fbb575f9050612069565b8160018114611fd15760028114611fdb5761200a565b6001915050612069565b60ff841115611fed57611fec611f14565b5b8360020a91508482111561200457612003611f14565b5b50612069565b5060208310610133831016604e8410600b841016171561203f5782820a90508381111561203a57612039611f14565b5b612069565b61204c8484846001611f4d565b9250905081840481111561206357612062611f14565b5b81810290505b9392505050565b5f61207a82611b3f565b915061208583611d70565b92506120b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611f9f565b905092915050565b5f6120c482611b3f565b91506120cf83611b3f565b92508282026120dd81611b3f565b915082820484148315176120f4576120f3611f14565b5b5092915050565b7f4c696d69742063616e6e6f7420626520746f6f206c6f770000000000000000005f82015250565b5f61212f601783611ba7565b915061213a826120fb565b602082019050919050565b5f6020820190508181035f83015261215c81612123565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121bd602683611ba7565b91506121c882612163565b604082019050919050565b5f6020820190508181035f8301526121ea816121b1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612225602083611ba7565b9150612230826121f1565b602082019050919050565b5f6020820190508181035f83015261225281612219565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122b3602483611ba7565b91506122be82612259565b604082019050919050565b5f6020820190508181035f8301526122e0816122a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612341602283611ba7565b915061234c826122e7565b604082019050919050565b5f6020820190508181035f83015261236e81612335565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123cf602583611ba7565b91506123da82612375565b604082019050919050565b5f6020820190508181035f8301526123fc816123c3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61245d602383611ba7565b915061246882612403565b604082019050919050565b5f6020820190508181035f83015261248a81612451565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6124eb602983611ba7565b91506124f682612491565b604082019050919050565b5f6020820190508181035f830152612518816124df565b9050919050565b5f61252982611b3f565b915061253483611b3f565b925082820190508082111561254c5761254b611f14565b5b92915050565b7f43616e7420657863656564206d61782077616c6c6574206c696d6974000000005f82015250565b5f612586601c83611ba7565b915061259182612552565b602082019050919050565b5f6020820190508181035f8301526125b38161257a565b9050919050565b5f6125c482611b3f565b91506125cf83611b3f565b92508282039050818111156125e7576125e6611f14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061265581611c5d565b92915050565b5f602082840312156126705761266f611b3b565b5b5f61267d84828501612647565b91505092915050565b5f819050919050565b5f819050919050565b5f6126b26126ad6126a884612686565b61268f565b611b3f565b9050919050565b6126c281612698565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6126fa81611c4c565b82525050565b5f61270b83836126f1565b60208301905092915050565b5f602082019050919050565b5f61272d826126c8565b61273781856126d2565b9350612742836126e2565b805f5b838110156127725781516127598882612700565b975061276483612717565b925050600181019050612745565b5085935050505092915050565b5f60a0820190506127925f830188611cf8565b61279f60208301876126b9565b81810360408301526127b18186612723565b90506127c06060830185611dcf565b6127cd6080830184611cf8565b9695505050505050565b5f81905092915050565b50565b5f6127ef5f836127d7565b91506127fa826127e1565b5f82019050919050565b5f61280e826127e4565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61284f82611b3f565b915061285a83611b3f565b92508261286a57612869612818565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128cf602183611ba7565b91506128da82612875565b604082019050919050565b5f6020820190508181035f8301526128fc816128c3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612937601b83611ba7565b915061294282612903565b602082019050919050565b5f6020820190508181035f8301526129648161292b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebff07324dce135248308ca0f13739ef5a56f7b48f55cc6c5812c849ed07ba0264736f6c634300081a0033

Deployed Bytecode Sourcemap

4810:7561:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11826:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6825:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7658:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7102:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12160:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7827:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7011:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5450:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11587:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11226:353;;;;;;;;;;;;;:::i;:::-;;5488:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5383:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7205:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;:::i;:::-;;5031:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2590:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6916;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7332:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5527:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7507:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11708:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3489:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12007:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11826:173;2476:13;:11;:13::i;:::-;11924:1:::1;11912:9;:13;11904:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11982:9;11962:17;:29;;;;11826:173:::0;:::o;6825:83::-;6862:13;6895:5;;;;;;;;;;;;;;;;;6888:12;;6825:83;:::o;7658:161::-;7733:4;7750:39;7759:12;:10;:12::i;:::-;7773:7;7782:6;7750:8;:39::i;:::-;7807:4;7800:11;;7658:161;;;;:::o;7102:95::-;7155:7;5126:2;5182;:13;;;;:::i;:::-;5170:9;:25;;;;:::i;:::-;7175:14;;7102:95;:::o;12160:190::-;2476:13;:11;:13::i;:::-;12256:22:::1;12274:3;12256:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;12244:9;:34;12236:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12333:9;12316:14;:26;;;;12160:190:::0;:::o;7827:313::-;7925:4;7942:36;7952:6;7960:9;7971:6;7942:9;:36::i;:::-;7989:121;7998:6;8006:12;:10;:12::i;:::-;8020:89;8058:6;8020:89;;;;;;;;;;;;;;;;;:11;:19;8032:6;8020:19;;;;;;;;;;;;;;;:33;8040:12;:10;:12::i;:::-;8020:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7989:8;:121::i;:::-;8128:4;8121:11;;7827:313;;;;;:::o;7011:83::-;7052:5;5126:2;7070:16;;7011:83;:::o;5450:31::-;;;;:::o;11587:113::-;2476:13;:11;:13::i;:::-;11688:4:::1;11658:18;:27;11677:7;11658:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11587:113:::0;:::o;11226:353::-;11290:15;;;;;;;;;;;11276:29;;:12;:10;:12::i;:::-;:29;;;11268:38;;;;;;11317:20;11338:24;11356:4;11338:9;:24::i;:::-;11317:45;;11389:1;11376:12;:14;11373:73;;;11404:30;11421:12;11404:16;:30::i;:::-;11373:73;11456:18;11475:21;11456:40;;11521:1;11510:10;:12;11507:65;;;11536:24;11549:10;11536:12;:24::i;:::-;11507:65;11257:322;;11226:353::o;5488:32::-;;;;:::o;5383:58::-;;;;:::o;7205:119::-;7271:7;7298:9;:18;7308:7;7298:18;;;;;;;;;;;;;;;;7291:25;;7205:119;;;:::o;3231:103::-;2476:13;:11;:13::i;:::-;3296:30:::1;3323:1;3296:18;:30::i;:::-;3231:103::o:0;5031:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2590:87::-;2636:7;2663:6;;;;;;;;;;;2656:13;;2590:87;:::o;6916:::-;6955:13;6988:7;;;;;;;;;;;;;;;;;6981:14;;6916:87;:::o;7332:167::-;7410:4;7427:42;7437:12;:10;:12::i;:::-;7451:9;7462:6;7427:9;:42::i;:::-;7487:4;7480:11;;7332:167;;;;:::o;5321:55::-;;;;:::o;5527:92::-;;;;;;;;;;;;;:::o;7507:143::-;7588:7;7615:11;:18;7627:5;7615:18;;;;;;;;;;;;;;;:27;7634:7;7615:27;;;;;;;;;;;;;;;;7608:34;;7507:143;;;;:::o;11708:110::-;2476:13;:11;:13::i;:::-;11805:5:::1;11775:18;:27;11794:7;11775:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11708: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;12007:145::-;2476:13;:11;:13::i;:::-;12104:6:::1;12089:12;:21;;;;12137:7;12121:13;:23;;;;12007:145:::0;;:::o;2755:132::-;2830:12;:10;:12::i;:::-;2819:23;;:7;:5;:7::i;:::-;:23;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2755:132::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8148:335::-;8258:1;8241:19;;:5;:19;;;8233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8339:1;8320:21;;:7;:21;;;8312:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8421:6;8391:11;:18;8403:5;8391:18;;;;;;;;;;;;;;;:27;8410:7;8391:27;;;;;;;;;;;;;;;:36;;;;8459:7;8443:32;;8452:5;8443:32;;;8468:6;8443:32;;;;;;:::i;:::-;;;;;;;;8148:335;;;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;8491:1743::-;8595:1;8579:18;;:4;:18;;;8571:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8672:1;8658:16;;:2;:16;;;8650:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8742:1;8733:6;:10;8725:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8800:17;8835:18;:24;8854:4;8835:24;;;;;;;;;;;;;;;;;;;;;;;;;8834:25;:52;;;;;8864:18;:22;8883:2;8864:22;;;;;;;;;;;;;;;;;;;;;;;;;8863:23;8834:52;8830:1048;;;8914:13;;;;;;;;;;;8908:19;;:2;:19;;;8905:138;;8980:14;;8970:6;8954:13;8964:2;8954:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8946:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;8905:138;9077:1;9062:12;;:16;9059:192;;;9107:13;;;;;;;;;;;9099:21;;:4;:21;;;:55;;;;;9138:15;;;;;;;;;;;9124:30;;:2;:30;;;;9099:55;9095:141;;;9187:33;9216:3;9187:24;9198:12;;9187:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9175:45;;9095:141;9059:192;9286:1;9270:13;;:17;9267:156;;;9313:13;;;;;;;;;;;9307:19;;:2;:19;;;9304:104;;9358:34;9388:3;9358:25;9369:13;;9358:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;9346:46;;9304:104;9267:156;9439:28;9470:24;9488:4;9470:9;:24::i;:::-;9439:55;;9514:6;;;;;;;;;;;9513:7;:30;;;;;9530:13;;;;;;;;;;;9524:19;;:2;:19;;;9513:30;:45;;;;;9547:11;;;;;;;;;;;9513:45;:87;;;;;9583:17;;9562:20;:38;9513:87;9509:358;;;9621:38;9638:20;9621:16;:38::i;:::-;9678:26;9707:21;9678:50;;9771:1;9750:18;:22;9747:105;;;9797:35;9810:21;9797:12;:35::i;:::-;9747:105;9602:265;9509:358;8888:990;8830:1048;9903:1;9893:9;:11;9890:161;;;9943:39;9972:9;9943;:24;9961:4;9943:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9918:9;:24;9936:4;9918:24;;;;;;;;;;;;;;;:64;;;;10023:4;10000:39;;10009:4;10000:39;;;10029:9;10000:39;;;;;;:::i;:::-;;;;;;;;9890:161;10077:27;10097:6;10077:9;:15;10087:4;10077:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10061:9;:15;10071:4;10061:15;;;;;;;;;;;;;;;:43;;;;10129:40;10147:21;10158:9;10147:6;:10;;:21;;;;:::i;:::-;10129:9;:13;10139:2;10129:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10115:9;:13;10125:2;10115:13;;;;;;;;;;;;;;;:54;;;;10200:2;10185:41;;10194:4;10185:41;;;10204:21;10215:9;10204:6;:10;;:21;;;;:::i;:::-;10185:41;;;;;;:::i;:::-;;;;;;;;8560:1674;8491:1743;;;:::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;10350:520::-;5828:4;5819:6;;:13;;;;;;;;;;;;;;;;;;10444:1:::1;10431:11;:14:::0;10428:27;10447:7:::1;10428:27;10465:21;10503:1;10489:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10465:40;;10534:4;10516;10521:1;10516:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10560:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10550:4;10555:1;10550:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10593:62;10610:4;10625:15;;;;;;;;;;;10643:11;10593:8;:62::i;:::-;10666:15;;;;;;;;;;;:66;;;10747:11;10773:1;10789:4;10816;10836:15;10666:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10417:453;5843:1;5864:5:::0;5855:6;;:14;;;;;;;;;;;;;;;;;;10350:520;:::o;10878:301::-;10936:16;10966:15;;;;;;;;;;;10958:29;;10995:6;10958:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10935:71;;;11024:11;11019:151;;11138:15;;;;;;;;;;;11115:47;;;11155:6;11115:47;;;;;;:::i;:::-;;;;;;;;11019:151;10924:255;10878:301;:::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;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;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;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;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:104::-;5813:7;5842:24;5860:5;5842:24;:::i;:::-;5831:35;;5768:104;;;:::o;5878:142::-;5981:32;6007:5;5981:32;:::i;:::-;5976:3;5969:45;5878:142;;:::o;6026:254::-;6135:4;6173:2;6162:9;6158:18;6150:26;;6186:87;6270:1;6259:9;6255:17;6246:6;6186:87;:::i;:::-;6026:254;;;;:::o;6286:474::-;6354:6;6362;6411:2;6399:9;6390:7;6386:23;6382:32;6379:119;;;6417:79;;:::i;:::-;6379:119;6537:1;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6508:117;6664:2;6690:53;6735:7;6726:6;6715:9;6711:22;6690:53;:::i;:::-;6680:63;;6635:118;6286:474;;;;;:::o;6766:::-;6834:6;6842;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7017:1;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6988:117;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;6766:474;;;;;:::o;7246:171::-;7386:23;7382:1;7374:6;7370:14;7363:47;7246:171;:::o;7423:366::-;7565:3;7586:67;7650:2;7645:3;7586:67;:::i;:::-;7579:74;;7662:93;7751:3;7662:93;:::i;:::-;7780:2;7775:3;7771:12;7764:19;;7423:366;;;:::o;7795:419::-;7961:4;7999:2;7988:9;7984:18;7976:26;;8048:9;8042:4;8038:20;8034:1;8023:9;8019:17;8012:47;8076:131;8202:4;8076:131;:::i;:::-;8068:139;;7795:419;;;:::o;8220:180::-;8268:77;8265:1;8258:88;8365:4;8362:1;8355:15;8389:4;8386:1;8379:15;8406:102;8448:8;8495:5;8492:1;8488:13;8467:34;;8406:102;;;:::o;8514:848::-;8575:5;8582:4;8606:6;8597:15;;8630:5;8621:14;;8644:712;8665:1;8655:8;8652:15;8644:712;;;8760:4;8755:3;8751:14;8745:4;8742:24;8739:50;;;8769:18;;:::i;:::-;8739:50;8819:1;8809:8;8805:16;8802:451;;;9234:4;9227:5;9223:16;9214:25;;8802:451;9284:4;9278;9274:15;9266:23;;9314:32;9337:8;9314:32;:::i;:::-;9302:44;;8644:712;;;8514:848;;;;;;;:::o;9368:1073::-;9422:5;9613:8;9603:40;;9634:1;9625:10;;9636:5;;9603:40;9662:4;9652:36;;9679:1;9670:10;;9681:5;;9652:36;9748:4;9796:1;9791:27;;;;9832:1;9827:191;;;;9741:277;;9791:27;9809:1;9800:10;;9811:5;;;9827:191;9872:3;9862:8;9859:17;9856:43;;;9879:18;;:::i;:::-;9856:43;9928:8;9925:1;9921:16;9912:25;;9963:3;9956:5;9953:14;9950:40;;;9970:18;;:::i;:::-;9950:40;10003:5;;;9741:277;;10127:2;10117:8;10114:16;10108:3;10102:4;10099:13;10095:36;10077:2;10067:8;10064:16;10059:2;10053:4;10050:12;10046:35;10030:111;10027:246;;;10183:8;10177:4;10173:19;10164:28;;10218:3;10211:5;10208:14;10205:40;;;10225:18;;:::i;:::-;10205:40;10258:5;;10027:246;10298:42;10336:3;10326:8;10320:4;10317:1;10298:42;:::i;:::-;10283:57;;;;10372:4;10367:3;10363:14;10356:5;10353:25;10350:51;;;10381:18;;:::i;:::-;10350:51;10430:4;10423:5;10419:16;10410:25;;9368:1073;;;;;;:::o;10447:281::-;10505:5;10529:23;10547:4;10529:23;:::i;:::-;10521:31;;10573:25;10589:8;10573:25;:::i;:::-;10561:37;;10617:104;10654:66;10644:8;10638:4;10617:104;:::i;:::-;10608:113;;10447:281;;;;:::o;10734:410::-;10774:7;10797:20;10815:1;10797:20;:::i;:::-;10792:25;;10831:20;10849:1;10831:20;:::i;:::-;10826:25;;10886:1;10883;10879:9;10908:30;10926:11;10908:30;:::i;:::-;10897:41;;11087:1;11078:7;11074:15;11071:1;11068:22;11048:1;11041:9;11021:83;10998:139;;11117:18;;:::i;:::-;10998:139;10782:362;10734:410;;;;:::o;11150:173::-;11290:25;11286:1;11278:6;11274:14;11267:49;11150:173;:::o;11329:366::-;11471:3;11492:67;11556:2;11551:3;11492:67;:::i;:::-;11485:74;;11568:93;11657:3;11568:93;:::i;:::-;11686:2;11681:3;11677:12;11670:19;;11329:366;;;:::o;11701:419::-;11867:4;11905:2;11894:9;11890:18;11882:26;;11954:9;11948:4;11944:20;11940:1;11929:9;11925:17;11918:47;11982:131;12108:4;11982:131;:::i;:::-;11974:139;;11701:419;;;:::o;12126:225::-;12266:34;12262:1;12254:6;12250:14;12243:58;12335:8;12330:2;12322:6;12318:15;12311:33;12126:225;:::o;12357:366::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:419::-;12895:4;12933:2;12922:9;12918:18;12910:26;;12982:9;12976:4;12972:20;12968:1;12957:9;12953:17;12946:47;13010:131;13136:4;13010:131;:::i;:::-;13002:139;;12729:419;;;:::o;13154:182::-;13294:34;13290:1;13282:6;13278:14;13271:58;13154:182;:::o;13342:366::-;13484:3;13505:67;13569:2;13564:3;13505:67;:::i;:::-;13498:74;;13581:93;13670:3;13581:93;:::i;:::-;13699:2;13694:3;13690:12;13683:19;;13342:366;;;:::o;13714:419::-;13880:4;13918:2;13907:9;13903:18;13895:26;;13967:9;13961:4;13957:20;13953:1;13942:9;13938:17;13931:47;13995:131;14121:4;13995:131;:::i;:::-;13987:139;;13714:419;;;:::o;14139:223::-;14279:34;14275:1;14267:6;14263:14;14256:58;14348:6;14343:2;14335:6;14331:15;14324:31;14139:223;:::o;14368:366::-;14510:3;14531:67;14595:2;14590:3;14531:67;:::i;:::-;14524:74;;14607:93;14696:3;14607:93;:::i;:::-;14725:2;14720:3;14716:12;14709:19;;14368:366;;;:::o;14740:419::-;14906:4;14944:2;14933:9;14929:18;14921:26;;14993:9;14987:4;14983:20;14979:1;14968:9;14964:17;14957:47;15021:131;15147:4;15021:131;:::i;:::-;15013:139;;14740:419;;;:::o;15165:221::-;15305:34;15301:1;15293:6;15289:14;15282:58;15374:4;15369:2;15361:6;15357:15;15350:29;15165:221;:::o;15392:366::-;15534:3;15555:67;15619:2;15614:3;15555:67;:::i;:::-;15548:74;;15631:93;15720:3;15631:93;:::i;:::-;15749:2;15744:3;15740:12;15733:19;;15392:366;;;:::o;15764:419::-;15930:4;15968:2;15957:9;15953:18;15945:26;;16017:9;16011:4;16007:20;16003:1;15992:9;15988:17;15981:47;16045:131;16171:4;16045:131;:::i;:::-;16037:139;;15764:419;;;:::o;16189:224::-;16329:34;16325:1;16317:6;16313:14;16306:58;16398:7;16393:2;16385:6;16381:15;16374:32;16189:224;:::o;16419:366::-;16561:3;16582:67;16646:2;16641:3;16582:67;:::i;:::-;16575:74;;16658:93;16747:3;16658:93;:::i;:::-;16776:2;16771:3;16767:12;16760:19;;16419:366;;;:::o;16791:419::-;16957:4;16995:2;16984:9;16980:18;16972:26;;17044:9;17038:4;17034:20;17030:1;17019:9;17015:17;17008:47;17072:131;17198:4;17072:131;:::i;:::-;17064:139;;16791:419;;;:::o;17216:222::-;17356:34;17352:1;17344:6;17340:14;17333:58;17425:5;17420:2;17412:6;17408:15;17401:30;17216:222;:::o;17444:366::-;17586:3;17607:67;17671:2;17666:3;17607:67;:::i;:::-;17600:74;;17683:93;17772:3;17683:93;:::i;:::-;17801:2;17796:3;17792:12;17785:19;;17444:366;;;:::o;17816:419::-;17982:4;18020:2;18009:9;18005:18;17997:26;;18069:9;18063:4;18059:20;18055:1;18044:9;18040:17;18033:47;18097:131;18223:4;18097:131;:::i;:::-;18089:139;;17816:419;;;:::o;18241:228::-;18381:34;18377:1;18369:6;18365:14;18358:58;18450:11;18445:2;18437:6;18433:15;18426:36;18241:228;:::o;18475:366::-;18617:3;18638:67;18702:2;18697:3;18638:67;:::i;:::-;18631:74;;18714:93;18803:3;18714:93;:::i;:::-;18832:2;18827:3;18823:12;18816:19;;18475:366;;;:::o;18847:419::-;19013:4;19051:2;19040:9;19036:18;19028:26;;19100:9;19094:4;19090:20;19086:1;19075:9;19071:17;19064:47;19128:131;19254:4;19128:131;:::i;:::-;19120:139;;18847:419;;;:::o;19272:191::-;19312:3;19331:20;19349:1;19331:20;:::i;:::-;19326:25;;19365:20;19383:1;19365:20;:::i;:::-;19360:25;;19408:1;19405;19401:9;19394:16;;19429:3;19426:1;19423:10;19420:36;;;19436:18;;:::i;:::-;19420:36;19272:191;;;;:::o;19469:178::-;19609:30;19605:1;19597:6;19593:14;19586:54;19469:178;:::o;19653:366::-;19795:3;19816:67;19880:2;19875:3;19816:67;:::i;:::-;19809:74;;19892:93;19981:3;19892:93;:::i;:::-;20010:2;20005:3;20001:12;19994:19;;19653:366;;;:::o;20025:419::-;20191:4;20229:2;20218:9;20214:18;20206:26;;20278:9;20272:4;20268:20;20264:1;20253:9;20249:17;20242:47;20306:131;20432:4;20306:131;:::i;:::-;20298:139;;20025:419;;;:::o;20450:194::-;20490:4;20510:20;20528:1;20510:20;:::i;:::-;20505:25;;20544:20;20562:1;20544:20;:::i;:::-;20539:25;;20588:1;20585;20581:9;20573:17;;20612:1;20606:4;20603:11;20600:37;;;20617:18;;:::i;:::-;20600:37;20450:194;;;;:::o;20650:180::-;20698:77;20695:1;20688:88;20795:4;20792:1;20785:15;20819:4;20816:1;20809:15;20836:180;20884:77;20881:1;20874:88;20981:4;20978:1;20971:15;21005:4;21002:1;20995:15;21022:143;21079:5;21110:6;21104:13;21095:22;;21126:33;21153:5;21126:33;:::i;:::-;21022:143;;;;:::o;21171:351::-;21241:6;21290:2;21278:9;21269:7;21265:23;21261:32;21258:119;;;21296:79;;:::i;:::-;21258:119;21416:1;21441:64;21497:7;21488:6;21477:9;21473:22;21441:64;:::i;:::-;21431:74;;21387:128;21171:351;;;;:::o;21528:85::-;21573:7;21602:5;21591:16;;21528:85;;;:::o;21619:60::-;21647:3;21668:5;21661:12;;21619:60;;;:::o;21685:158::-;21743:9;21776:61;21794:42;21803:32;21829:5;21803:32;:::i;:::-;21794:42;:::i;:::-;21776:61;:::i;:::-;21763:74;;21685:158;;;:::o;21849:147::-;21944:45;21983:5;21944:45;:::i;:::-;21939:3;21932:58;21849:147;;:::o;22002:114::-;22069:6;22103:5;22097:12;22087:22;;22002:114;;;:::o;22122:184::-;22221:11;22255:6;22250:3;22243:19;22295:4;22290:3;22286:14;22271:29;;22122:184;;;;:::o;22312:132::-;22379:4;22402:3;22394:11;;22432:4;22427:3;22423:14;22415:22;;22312:132;;;:::o;22450:108::-;22527:24;22545:5;22527:24;:::i;:::-;22522:3;22515:37;22450:108;;:::o;22564:179::-;22633:10;22654:46;22696:3;22688:6;22654:46;:::i;:::-;22732:4;22727:3;22723:14;22709:28;;22564:179;;;;:::o;22749:113::-;22819:4;22851;22846:3;22842:14;22834:22;;22749:113;;;:::o;22898:732::-;23017:3;23046:54;23094:5;23046:54;:::i;:::-;23116:86;23195:6;23190:3;23116:86;:::i;:::-;23109:93;;23226:56;23276:5;23226:56;:::i;:::-;23305:7;23336:1;23321:284;23346:6;23343:1;23340:13;23321:284;;;23422:6;23416:13;23449:63;23508:3;23493:13;23449:63;:::i;:::-;23442:70;;23535:60;23588:6;23535:60;:::i;:::-;23525:70;;23381:224;23368:1;23365;23361:9;23356:14;;23321:284;;;23325:14;23621:3;23614:10;;23022:608;;;22898:732;;;;:::o;23636:831::-;23899:4;23937:3;23926:9;23922:19;23914:27;;23951:71;24019:1;24008:9;24004:17;23995:6;23951:71;:::i;:::-;24032:80;24108:2;24097:9;24093:18;24084:6;24032:80;:::i;:::-;24159:9;24153:4;24149:20;24144:2;24133:9;24129:18;24122:48;24187:108;24290:4;24281:6;24187:108;:::i;:::-;24179:116;;24305:72;24373:2;24362:9;24358:18;24349:6;24305:72;:::i;:::-;24387:73;24455:3;24444:9;24440:19;24431:6;24387:73;:::i;:::-;23636:831;;;;;;;;:::o;24473:147::-;24574:11;24611:3;24596:18;;24473:147;;;;:::o;24626:114::-;;:::o;24746:398::-;24905:3;24926:83;25007:1;25002:3;24926:83;:::i;:::-;24919:90;;25018:93;25107:3;25018:93;:::i;:::-;25136:1;25131:3;25127:11;25120:18;;24746:398;;;:::o;25150:379::-;25334:3;25356:147;25499:3;25356:147;:::i;:::-;25349:154;;25520:3;25513:10;;25150:379;;;:::o;25535:180::-;25583:77;25580:1;25573:88;25680:4;25677:1;25670:15;25704:4;25701:1;25694:15;25721:185;25761:1;25778:20;25796:1;25778:20;:::i;:::-;25773:25;;25812:20;25830:1;25812:20;:::i;:::-;25807:25;;25851:1;25841:35;;25856:18;;:::i;:::-;25841:35;25898:1;25895;25891:9;25886:14;;25721:185;;;;:::o;25912:220::-;26052:34;26048:1;26040:6;26036:14;26029:58;26121:3;26116:2;26108:6;26104:15;26097:28;25912:220;:::o;26138:366::-;26280:3;26301:67;26365:2;26360:3;26301:67;:::i;:::-;26294:74;;26377:93;26466:3;26377:93;:::i;:::-;26495:2;26490:3;26486:12;26479:19;;26138:366;;;:::o;26510:419::-;26676:4;26714:2;26703:9;26699:18;26691:26;;26763:9;26757:4;26753:20;26749:1;26738:9;26734:17;26727:47;26791:131;26917:4;26791:131;:::i;:::-;26783:139;;26510:419;;;:::o;26935:177::-;27075:29;27071:1;27063:6;27059:14;27052:53;26935:177;:::o;27118:366::-;27260:3;27281:67;27345:2;27340:3;27281:67;:::i;:::-;27274:74;;27357:93;27446:3;27357:93;:::i;:::-;27475:2;27470:3;27466:12;27459:19;;27118:366;;;:::o;27490:419::-;27656:4;27694:2;27683:9;27679:18;27671:26;;27743:9;27737:4;27733:20;27729:1;27718:9;27714:17;27707:47;27771:131;27897:4;27771:131;:::i;:::-;27763:139;;27490:419;;;:::o

Swarm Source

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