S Price: $0.717571 (-1.38%)

Token

SonicTaxToken (STT)

Overview

Max Total Supply

1,000,000 STT

Holders

1

Total Transfers

-

Market

Price

$0.00 @ 0.000000 S

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
SonicTaxToken

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-02-26
*/

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

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

contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    
    function owner() public view returns (address) {
        return _owner;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner, "Ownable: caller is not the owner");
        _;
    }
    
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }
    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;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    
    function addLiquidityETH(
        address token,
        bool stable,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}
contract SonicTaxToken is IERC20, Ownable   {
    using SafeMath for uint256;
    using Address for address;
    
    string private _name = "SonicTaxToken";
    string private _symbol = "STT";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 1_000_000 * 10**_decimals;
    
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    
    uint256 public marketingTax = 2;
    uint256 public dividendTax = 3;
    address payable public marketingWallet = payable(0x9d33877376eA12bc31DF42F321178d868984aa93);
    
    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x1D368773735ee1E678950B7A97bcA2CafB330CDc);
    address public immutable wrappedSonic = 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38;
    address[] private holders;
    mapping(address => bool) private isHolder;
    
    constructor() payable {
        _balances[address(this)] = _totalSupply;
        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[0x1D368773735ee1E678950B7A97bcA2CafB330CDc] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }
    

    function name() public view returns (string memory) {
        return _name;
    }
    
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    
    function decimals() public view returns (uint8) {
        return _decimals;
    }


      function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    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) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "Approve from zero address");
        require(spender != address(0), "Approve to zero address");
        
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

   function swapAndSendToMarketing(uint256 marketingAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = wrappedSonic;

        _approve(address(this), address(uniswapV2Router), marketingAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            marketingAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    
    function distributeDividends(uint256 dividendAmount) internal {
        uint256 totalSupplyExcludingContract = _totalSupply.sub(_balances[address(this)]);
        if (totalSupplyExcludingContract == 0) return;

        uint256 threshold = _totalSupply.div(10000); // 0.01% of supply
        uint256 amountPerHolder = dividendAmount.div(holders.length);
        for (uint i = 0; i < holders.length; i++) {
            address holder = holders[i];
            if (_balances[holder] >= threshold) {
                payable(holder).transfer(amountPerHolder);
            }
        }
    }

    
    
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "Transfer from zero address");
        require(recipient != address(0), "Transfer to zero address");
        
        uint256 marketingAmount = amount.mul(marketingTax).div(100);
        uint256 dividendAmount = amount.mul(dividendTax).div(100);
        uint256 transferAmount = amount.sub(marketingAmount).sub(dividendAmount);
        
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(transferAmount);
        _balances[address(this)] = _balances[address(this)].add(marketingAmount).add(dividendAmount);
        
        emit Transfer(sender, recipient, transferAmount);
        emit Transfer(sender, address(this), marketingAmount.add(dividendAmount));
        
        swapAndSendToMarketing(marketingAmount);
        distributeDividends(dividendAmount);
    }

     function setTaxes(uint256 _marketingTax, uint256 _dividendTax) public onlyOwner {
        
        marketingTax = _marketingTax;
        dividendTax = _dividendTax;
    }

    function rescueERC20(address token) external  {
        require(msg.sender == marketingWallet);
         uint256 amount = IERC20(token).balanceOf(address(this));
        require(amount > 0, "No tokens to rescue");
        IERC20(token).transfer(owner(), amount);
    }
    
    function manualSend() external onlyOwner {
         uint256 amount = address(this).balance;
        require(amount > 0, "No ETH to send");
        payable(owner()).transfer(amount);
    }

    function addLiquidity(bool stable) external onlyOwner {
        uint256 tokenAmount = balanceOf(address(this));
        uint256 ethAmount = address(this).balance;
       

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            stable,
            tokenAmount,
            0,
            0,
            msg.sender,
            block.timestamp + 300
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bool","name":"stable","type":"bool"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingTax","type":"uint256"},{"internalType":"uint256","name":"_dividendTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wrappedSonic","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a06040526040518060400160405280600d81526020017f536f6e6963546178546f6b656e00000000000000000000000000000000000000815250600190816200004a9190620006b8565b506040518060400160405280600381526020017f535454000000000000000000000000000000000000000000000000000000000081525060029081620000919190620006b8565b50601260035f6101000a81548160ff021916908360ff16021790555060035f9054906101000a900460ff16600a620000ca919062000925565b620f4240620000da919062000975565b60045560026008556003600955739d33877376ea12bc31df42f321178d868984aa93600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731d368773735ee1e678950b7a97bca2cafb330cdc600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073039e2fb66102314ce7b64ce5ce3e5183bc94ad3873ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360045460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f731d368773735ee1e678950b7a97bca2cafb330cdc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620004469190620009d0565b60405180910390a3620009eb565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620004d057607f821691505b602082108103620004e657620004e56200048b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200054a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200050d565b6200055686836200050d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005a06200059a62000594846200056e565b62000577565b6200056e565b9050919050565b5f819050919050565b620005bb8362000580565b620005d3620005ca82620005a7565b84845462000519565b825550505050565b5f90565b620005e9620005db565b620005f6818484620005b0565b505050565b5b818110156200061d57620006115f82620005df565b600181019050620005fc565b5050565b601f8211156200066c576200063681620004ec565b6200064184620004fe565b8101602085101562000651578190505b620006696200066085620004fe565b830182620005fb565b50505b505050565b5f82821c905092915050565b5f6200068e5f198460080262000671565b1980831691505092915050565b5f620006a883836200067d565b9150826002028217905092915050565b620006c38262000454565b67ffffffffffffffff811115620006df57620006de6200045e565b5b620006eb8254620004b8565b620006f882828562000621565b5f60209050601f8311600181146200072e575f841562000719578287015190505b6200072585826200069b565b86555062000794565b601f1984166200073e86620004ec565b5f5b82811015620007675784890151825560018201915060208501945060208101905062000740565b8683101562000787578489015162000783601f8916826200067d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200082657808604811115620007fe57620007fd6200079c565b5b60018516156200080e5780820291505b80810290506200081e85620007c9565b9450620007de565b94509492505050565b5f8262000840576001905062000912565b816200084f575f905062000912565b81600181146200086857600281146200087357620008a9565b600191505062000912565b60ff8411156200088857620008876200079c565b5b8360020a915084821115620008a257620008a16200079c565b5b5062000912565b5060208310610133831016604e8410600b8410161715620008e35782820a905083811115620008dd57620008dc6200079c565b5b62000912565b620008f28484846001620007d5565b925090508184048111156200090c576200090b6200079c565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000931826200056e565b91506200093e8362000919565b92506200096d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200082f565b905092915050565b5f62000981826200056e565b91506200098e836200056e565b92508282026200099e816200056e565b91508282048414831517620009b857620009b76200079c565b5b5092915050565b620009ca816200056e565b82525050565b5f602082019050620009e55f830184620009bf565b92915050565b60805161291462000a0b5f395f8181610b0d015261180601526129145ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806375f0a874116100b6578063ccec37161161007a578063ccec37161461032d578063ce75d56514610349578063da620cd714610367578063dd62ed3e14610383578063f2fde38b146103b3578063f4293890146103cf57610135565b806375f0a874146102875780638da5cb5b146102a557806395d89b41146102c3578063a9059cbb146102e1578063c647b20e1461031157610135565b806323b872dd116100fd57806323b872dd146101e1578063313ce567146102115780636f49ef501461022f57806370a082311461024d578063715018a61461027d57610135565b806306fdde0314610139578063095ea7b3146101575780631694505e1461018757806318160ddd146101a55780631d2cb02d146101c3575b5f80fd5b6101416103d9565b60405161014e9190611b61565b60405180910390f35b610171600480360381019061016c9190611c12565b610469565b60405161017e9190611c6a565b60405180910390f35b61018f610556565b60405161019c9190611cde565b60405180910390f35b6101ad61057b565b6040516101ba9190611d06565b60405180910390f35b6101cb610584565b6040516101d89190611d06565b60405180910390f35b6101fb60048036038101906101f69190611d1f565b61058a565b6040516102089190611c6a565b60405180910390f35b610219610636565b6040516102269190611d8a565b60405180910390f35b61023761064b565b6040516102449190611d06565b60405180910390f35b61026760048036038101906102629190611da3565b610651565b6040516102749190611d06565b60405180910390f35b610285610697565b005b61028f6107de565b60405161029c9190611dee565b60405180910390f35b6102ad610803565b6040516102ba9190611e16565b60405180910390f35b6102cb61082a565b6040516102d89190611b61565b60405180910390f35b6102fb60048036038101906102f69190611c12565b6108ba565b6040516103089190611c6a565b60405180910390f35b61032b60048036038101906103269190611e2f565b6108d0565b005b61034760048036038101906103429190611da3565b61096f565b005b610351610b0b565b60405161035e9190611e16565b60405180910390f35b610381600480360381019061037c9190611e97565b610b2f565b005b61039d60048036038101906103989190611ec2565b610cb5565b6040516103aa9190611d06565b60405180910390f35b6103cd60048036038101906103c89190611da3565b610d37565b005b6103d7610eed565b005b6060600180546103e890611f2d565b80601f016020809104026020016040519081016040528092919081815260200182805461041490611f2d565b801561045f5780601f106104365761010080835404028352916020019161045f565b820191905f5260205f20905b81548152906001019060200180831161044257829003601f168201915b5050505050905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105449190611d06565b60405180910390a36001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600454905090565b60085481565b5f61059684848461100e565b61062b84336106268560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461142390919063ffffffff16565b61147b565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b60095481565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611fa7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461083990611f2d565b80601f016020809104026020016040519081016040528092919081815260200182805461086590611f2d565b80156108b05780601f10610887576101008083540402835291602001916108b0565b820191905f5260205f20905b81548152906001019060200180831161089357829003601f168201915b5050505050905090565b5f6108c633848461100e565b6001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095490611fa7565b60405180910390fd5b81600881905550806009819055505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c7575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a019190611e16565b602060405180830381865afa158015610a1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a409190611fd9565b90505f8111610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b9061204e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610aa8610803565b836040518363ffffffff1660e01b8152600401610ac692919061206c565b6020604051808303815f875af1158015610ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0691906120a7565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611fa7565b60405180910390fd5b5f610bc630610651565b90505f479050610bf830600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b7e0d4c0823086865f803361012c42610c4a91906120ff565b6040518963ffffffff1660e01b8152600401610c6c979695949392919061216b565b60606040518083038185885af1158015610c88573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cad91906121d8565b505050505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90611fa7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990612298565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190611fa7565b60405180910390fd5b5f4790505f8111610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612300565b60405180910390fd5b610fc8610803565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561100a573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107390612368565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906123d0565b60405180910390fd5b5f61111360646111056008548561163e90919063ffffffff16565b6116b590919063ffffffff16565b90505f61113e60646111306009548661163e90919063ffffffff16565b6116b590919063ffffffff16565b90505f61116682611158858761142390919063ffffffff16565b61142390919063ffffffff16565b90506111b88460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461142390919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112498160055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461170c90919063ffffffff16565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112ec826112de8560055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461170c90919063ffffffff16565b61170c90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161138a9190611d06565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113f4858761170c90919063ffffffff16565b6040516114019190611d06565b60405180910390a361141283611769565b61141b82611953565b505050505050565b5f82821115611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612438565b60405180910390fd5b81836114739190612456565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e0906124d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061253b565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116319190611d06565b60405180910390a3505050565b5f80830361164e575f90506116af565b5f828461165b9190612559565b905082848261166a91906125c7565b146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a190612667565b60405180910390fd5b809150505b92915050565b5f8082116116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef906126cf565b60405180910390fd5b818361170491906125c7565b905092915050565b5f80828461171a91906120ff565b90508381101561175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690612737565b60405180910390fd5b8091505092915050565b5f600267ffffffffffffffff81111561178557611784612755565b5b6040519080825280602002602001820160405280156117b35781602001602082028036833780820191505090505b50905030815f815181106117ca576117c9612782565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061183957611838612782565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061189f30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611922959493929190612886565b5f604051808303815f87803b158015611939575f80fd5b505af115801561194b573d5f803e3d5ffd5b505050505050565b5f6119a660055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460045461142390919063ffffffff16565b90505f81036119b55750611ad4565b5f6119cd6127106004546116b590919063ffffffff16565b90505f6119e8600c80549050856116b590919063ffffffff16565b90505f5b600c80549050811015611acf575f600c8281548110611a0e57611a0d612782565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508360055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ac1578073ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015611abf573d5f803e3d5ffd5b505b5080806001019150506119ec565b505050505b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611b0e578082015181840152602081019050611af3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611b3382611ad7565b611b3d8185611ae1565b9350611b4d818560208601611af1565b611b5681611b19565b840191505092915050565b5f6020820190508181035f830152611b798184611b29565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bae82611b85565b9050919050565b611bbe81611ba4565b8114611bc8575f80fd5b50565b5f81359050611bd981611bb5565b92915050565b5f819050919050565b611bf181611bdf565b8114611bfb575f80fd5b50565b5f81359050611c0c81611be8565b92915050565b5f8060408385031215611c2857611c27611b81565b5b5f611c3585828601611bcb565b9250506020611c4685828601611bfe565b9150509250929050565b5f8115159050919050565b611c6481611c50565b82525050565b5f602082019050611c7d5f830184611c5b565b92915050565b5f819050919050565b5f611ca6611ca1611c9c84611b85565b611c83565b611b85565b9050919050565b5f611cb782611c8c565b9050919050565b5f611cc882611cad565b9050919050565b611cd881611cbe565b82525050565b5f602082019050611cf15f830184611ccf565b92915050565b611d0081611bdf565b82525050565b5f602082019050611d195f830184611cf7565b92915050565b5f805f60608486031215611d3657611d35611b81565b5b5f611d4386828701611bcb565b9350506020611d5486828701611bcb565b9250506040611d6586828701611bfe565b9150509250925092565b5f60ff82169050919050565b611d8481611d6f565b82525050565b5f602082019050611d9d5f830184611d7b565b92915050565b5f60208284031215611db857611db7611b81565b5b5f611dc584828501611bcb565b91505092915050565b5f611dd882611b85565b9050919050565b611de881611dce565b82525050565b5f602082019050611e015f830184611ddf565b92915050565b611e1081611ba4565b82525050565b5f602082019050611e295f830184611e07565b92915050565b5f8060408385031215611e4557611e44611b81565b5b5f611e5285828601611bfe565b9250506020611e6385828601611bfe565b9150509250929050565b611e7681611c50565b8114611e80575f80fd5b50565b5f81359050611e9181611e6d565b92915050565b5f60208284031215611eac57611eab611b81565b5b5f611eb984828501611e83565b91505092915050565b5f8060408385031215611ed857611ed7611b81565b5b5f611ee585828601611bcb565b9250506020611ef685828601611bcb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f4457607f821691505b602082108103611f5757611f56611f00565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611f91602083611ae1565b9150611f9c82611f5d565b602082019050919050565b5f6020820190508181035f830152611fbe81611f85565b9050919050565b5f81519050611fd381611be8565b92915050565b5f60208284031215611fee57611fed611b81565b5b5f611ffb84828501611fc5565b91505092915050565b7f4e6f20746f6b656e7320746f20726573637565000000000000000000000000005f82015250565b5f612038601383611ae1565b915061204382612004565b602082019050919050565b5f6020820190508181035f8301526120658161202c565b9050919050565b5f60408201905061207f5f830185611e07565b61208c6020830184611cf7565b9392505050565b5f815190506120a181611e6d565b92915050565b5f602082840312156120bc576120bb611b81565b5b5f6120c984828501612093565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61210982611bdf565b915061211483611bdf565b925082820190508082111561212c5761212b6120d2565b5b92915050565b5f819050919050565b5f61215561215061214b84612132565b611c83565b611bdf565b9050919050565b6121658161213b565b82525050565b5f60e08201905061217e5f83018a611e07565b61218b6020830189611c5b565b6121986040830188611cf7565b6121a5606083018761215c565b6121b2608083018661215c565b6121bf60a0830185611e07565b6121cc60c0830184611cf7565b98975050505050505050565b5f805f606084860312156121ef576121ee611b81565b5b5f6121fc86828701611fc5565b935050602061220d86828701611fc5565b925050604061221e86828701611fc5565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612282602683611ae1565b915061228d82612228565b604082019050919050565b5f6020820190508181035f8301526122af81612276565b9050919050565b7f4e6f2045544820746f2073656e640000000000000000000000000000000000005f82015250565b5f6122ea600e83611ae1565b91506122f5826122b6565b602082019050919050565b5f6020820190508181035f830152612317816122de565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f612352601a83611ae1565b915061235d8261231e565b602082019050919050565b5f6020820190508181035f83015261237f81612346565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6123ba601883611ae1565b91506123c582612386565b602082019050919050565b5f6020820190508181035f8301526123e7816123ae565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612422601e83611ae1565b915061242d826123ee565b602082019050919050565b5f6020820190508181035f83015261244f81612416565b9050919050565b5f61246082611bdf565b915061246b83611bdf565b9250828203905081811115612483576124826120d2565b5b92915050565b7f417070726f76652066726f6d207a65726f2061646472657373000000000000005f82015250565b5f6124bd601983611ae1565b91506124c882612489565b602082019050919050565b5f6020820190508181035f8301526124ea816124b1565b9050919050565b7f417070726f766520746f207a65726f20616464726573730000000000000000005f82015250565b5f612525601783611ae1565b9150612530826124f1565b602082019050919050565b5f6020820190508181035f83015261255281612519565b9050919050565b5f61256382611bdf565b915061256e83611bdf565b925082820261257c81611bdf565b91508282048414831517612593576125926120d2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125d182611bdf565b91506125dc83611bdf565b9250826125ec576125eb61259a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612651602183611ae1565b915061265c826125f7565b604082019050919050565b5f6020820190508181035f83015261267e81612645565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6126b9601a83611ae1565b91506126c482612685565b602082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612721601b83611ae1565b915061272c826126ed565b602082019050919050565b5f6020820190508181035f83015261274e81612715565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e181611ba4565b82525050565b5f6127f283836127d8565b60208301905092915050565b5f602082019050919050565b5f612814826127af565b61281e81856127b9565b9350612829836127c9565b805f5b8381101561285957815161284088826127e7565b975061284b836127fe565b92505060018101905061282c565b5085935050505092915050565b5f61287082611cad565b9050919050565b61288081612866565b82525050565b5f60a0820190506128995f830188611cf7565b6128a6602083018761215c565b81810360408301526128b8818661280a565b90506128c76060830185612877565b6128d46080830184611cf7565b969550505050505056fea2646970667358221220bbaa882cc21eb7d261f0a0bfb405eed615ad181bbd6aa25be20560224c1043f564736f6c63430008170033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610135575f3560e01c806375f0a874116100b6578063ccec37161161007a578063ccec37161461032d578063ce75d56514610349578063da620cd714610367578063dd62ed3e14610383578063f2fde38b146103b3578063f4293890146103cf57610135565b806375f0a874146102875780638da5cb5b146102a557806395d89b41146102c3578063a9059cbb146102e1578063c647b20e1461031157610135565b806323b872dd116100fd57806323b872dd146101e1578063313ce567146102115780636f49ef501461022f57806370a082311461024d578063715018a61461027d57610135565b806306fdde0314610139578063095ea7b3146101575780631694505e1461018757806318160ddd146101a55780631d2cb02d146101c3575b5f80fd5b6101416103d9565b60405161014e9190611b61565b60405180910390f35b610171600480360381019061016c9190611c12565b610469565b60405161017e9190611c6a565b60405180910390f35b61018f610556565b60405161019c9190611cde565b60405180910390f35b6101ad61057b565b6040516101ba9190611d06565b60405180910390f35b6101cb610584565b6040516101d89190611d06565b60405180910390f35b6101fb60048036038101906101f69190611d1f565b61058a565b6040516102089190611c6a565b60405180910390f35b610219610636565b6040516102269190611d8a565b60405180910390f35b61023761064b565b6040516102449190611d06565b60405180910390f35b61026760048036038101906102629190611da3565b610651565b6040516102749190611d06565b60405180910390f35b610285610697565b005b61028f6107de565b60405161029c9190611dee565b60405180910390f35b6102ad610803565b6040516102ba9190611e16565b60405180910390f35b6102cb61082a565b6040516102d89190611b61565b60405180910390f35b6102fb60048036038101906102f69190611c12565b6108ba565b6040516103089190611c6a565b60405180910390f35b61032b60048036038101906103269190611e2f565b6108d0565b005b61034760048036038101906103429190611da3565b61096f565b005b610351610b0b565b60405161035e9190611e16565b60405180910390f35b610381600480360381019061037c9190611e97565b610b2f565b005b61039d60048036038101906103989190611ec2565b610cb5565b6040516103aa9190611d06565b60405180910390f35b6103cd60048036038101906103c89190611da3565b610d37565b005b6103d7610eed565b005b6060600180546103e890611f2d565b80601f016020809104026020016040519081016040528092919081815260200182805461041490611f2d565b801561045f5780601f106104365761010080835404028352916020019161045f565b820191905f5260205f20905b81548152906001019060200180831161044257829003601f168201915b5050505050905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105449190611d06565b60405180910390a36001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600454905090565b60085481565b5f61059684848461100e565b61062b84336106268560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461142390919063ffffffff16565b61147b565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b60095481565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611fa7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461083990611f2d565b80601f016020809104026020016040519081016040528092919081815260200182805461086590611f2d565b80156108b05780601f10610887576101008083540402835291602001916108b0565b820191905f5260205f20905b81548152906001019060200180831161089357829003601f168201915b5050505050905090565b5f6108c633848461100e565b6001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095490611fa7565b60405180910390fd5b81600881905550806009819055505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c7575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a019190611e16565b602060405180830381865afa158015610a1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a409190611fd9565b90505f8111610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b9061204e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610aa8610803565b836040518363ffffffff1660e01b8152600401610ac692919061206c565b6020604051808303815f875af1158015610ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0691906120a7565b505050565b7f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3881565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611fa7565b60405180910390fd5b5f610bc630610651565b90505f479050610bf830600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b7e0d4c0823086865f803361012c42610c4a91906120ff565b6040518963ffffffff1660e01b8152600401610c6c979695949392919061216b565b60606040518083038185885af1158015610c88573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cad91906121d8565b505050505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90611fa7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990612298565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190611fa7565b60405180910390fd5b5f4790505f8111610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612300565b60405180910390fd5b610fc8610803565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561100a573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107390612368565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906123d0565b60405180910390fd5b5f61111360646111056008548561163e90919063ffffffff16565b6116b590919063ffffffff16565b90505f61113e60646111306009548661163e90919063ffffffff16565b6116b590919063ffffffff16565b90505f61116682611158858761142390919063ffffffff16565b61142390919063ffffffff16565b90506111b88460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461142390919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112498160055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461170c90919063ffffffff16565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112ec826112de8560055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461170c90919063ffffffff16565b61170c90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161138a9190611d06565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113f4858761170c90919063ffffffff16565b6040516114019190611d06565b60405180910390a361141283611769565b61141b82611953565b505050505050565b5f82821115611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612438565b60405180910390fd5b81836114739190612456565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e0906124d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061253b565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116319190611d06565b60405180910390a3505050565b5f80830361164e575f90506116af565b5f828461165b9190612559565b905082848261166a91906125c7565b146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a190612667565b60405180910390fd5b809150505b92915050565b5f8082116116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef906126cf565b60405180910390fd5b818361170491906125c7565b905092915050565b5f80828461171a91906120ff565b90508381101561175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690612737565b60405180910390fd5b8091505092915050565b5f600267ffffffffffffffff81111561178557611784612755565b5b6040519080825280602002602001820160405280156117b35781602001602082028036833780820191505090505b50905030815f815181106117ca576117c9612782565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad388160018151811061183957611838612782565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061189f30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611922959493929190612886565b5f604051808303815f87803b158015611939575f80fd5b505af115801561194b573d5f803e3d5ffd5b505050505050565b5f6119a660055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460045461142390919063ffffffff16565b90505f81036119b55750611ad4565b5f6119cd6127106004546116b590919063ffffffff16565b90505f6119e8600c80549050856116b590919063ffffffff16565b90505f5b600c80549050811015611acf575f600c8281548110611a0e57611a0d612782565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508360055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ac1578073ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015611abf573d5f803e3d5ffd5b505b5080806001019150506119ec565b505050505b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611b0e578082015181840152602081019050611af3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611b3382611ad7565b611b3d8185611ae1565b9350611b4d818560208601611af1565b611b5681611b19565b840191505092915050565b5f6020820190508181035f830152611b798184611b29565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bae82611b85565b9050919050565b611bbe81611ba4565b8114611bc8575f80fd5b50565b5f81359050611bd981611bb5565b92915050565b5f819050919050565b611bf181611bdf565b8114611bfb575f80fd5b50565b5f81359050611c0c81611be8565b92915050565b5f8060408385031215611c2857611c27611b81565b5b5f611c3585828601611bcb565b9250506020611c4685828601611bfe565b9150509250929050565b5f8115159050919050565b611c6481611c50565b82525050565b5f602082019050611c7d5f830184611c5b565b92915050565b5f819050919050565b5f611ca6611ca1611c9c84611b85565b611c83565b611b85565b9050919050565b5f611cb782611c8c565b9050919050565b5f611cc882611cad565b9050919050565b611cd881611cbe565b82525050565b5f602082019050611cf15f830184611ccf565b92915050565b611d0081611bdf565b82525050565b5f602082019050611d195f830184611cf7565b92915050565b5f805f60608486031215611d3657611d35611b81565b5b5f611d4386828701611bcb565b9350506020611d5486828701611bcb565b9250506040611d6586828701611bfe565b9150509250925092565b5f60ff82169050919050565b611d8481611d6f565b82525050565b5f602082019050611d9d5f830184611d7b565b92915050565b5f60208284031215611db857611db7611b81565b5b5f611dc584828501611bcb565b91505092915050565b5f611dd882611b85565b9050919050565b611de881611dce565b82525050565b5f602082019050611e015f830184611ddf565b92915050565b611e1081611ba4565b82525050565b5f602082019050611e295f830184611e07565b92915050565b5f8060408385031215611e4557611e44611b81565b5b5f611e5285828601611bfe565b9250506020611e6385828601611bfe565b9150509250929050565b611e7681611c50565b8114611e80575f80fd5b50565b5f81359050611e9181611e6d565b92915050565b5f60208284031215611eac57611eab611b81565b5b5f611eb984828501611e83565b91505092915050565b5f8060408385031215611ed857611ed7611b81565b5b5f611ee585828601611bcb565b9250506020611ef685828601611bcb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f4457607f821691505b602082108103611f5757611f56611f00565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611f91602083611ae1565b9150611f9c82611f5d565b602082019050919050565b5f6020820190508181035f830152611fbe81611f85565b9050919050565b5f81519050611fd381611be8565b92915050565b5f60208284031215611fee57611fed611b81565b5b5f611ffb84828501611fc5565b91505092915050565b7f4e6f20746f6b656e7320746f20726573637565000000000000000000000000005f82015250565b5f612038601383611ae1565b915061204382612004565b602082019050919050565b5f6020820190508181035f8301526120658161202c565b9050919050565b5f60408201905061207f5f830185611e07565b61208c6020830184611cf7565b9392505050565b5f815190506120a181611e6d565b92915050565b5f602082840312156120bc576120bb611b81565b5b5f6120c984828501612093565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61210982611bdf565b915061211483611bdf565b925082820190508082111561212c5761212b6120d2565b5b92915050565b5f819050919050565b5f61215561215061214b84612132565b611c83565b611bdf565b9050919050565b6121658161213b565b82525050565b5f60e08201905061217e5f83018a611e07565b61218b6020830189611c5b565b6121986040830188611cf7565b6121a5606083018761215c565b6121b2608083018661215c565b6121bf60a0830185611e07565b6121cc60c0830184611cf7565b98975050505050505050565b5f805f606084860312156121ef576121ee611b81565b5b5f6121fc86828701611fc5565b935050602061220d86828701611fc5565b925050604061221e86828701611fc5565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612282602683611ae1565b915061228d82612228565b604082019050919050565b5f6020820190508181035f8301526122af81612276565b9050919050565b7f4e6f2045544820746f2073656e640000000000000000000000000000000000005f82015250565b5f6122ea600e83611ae1565b91506122f5826122b6565b602082019050919050565b5f6020820190508181035f830152612317816122de565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f612352601a83611ae1565b915061235d8261231e565b602082019050919050565b5f6020820190508181035f83015261237f81612346565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6123ba601883611ae1565b91506123c582612386565b602082019050919050565b5f6020820190508181035f8301526123e7816123ae565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612422601e83611ae1565b915061242d826123ee565b602082019050919050565b5f6020820190508181035f83015261244f81612416565b9050919050565b5f61246082611bdf565b915061246b83611bdf565b9250828203905081811115612483576124826120d2565b5b92915050565b7f417070726f76652066726f6d207a65726f2061646472657373000000000000005f82015250565b5f6124bd601983611ae1565b91506124c882612489565b602082019050919050565b5f6020820190508181035f8301526124ea816124b1565b9050919050565b7f417070726f766520746f207a65726f20616464726573730000000000000000005f82015250565b5f612525601783611ae1565b9150612530826124f1565b602082019050919050565b5f6020820190508181035f83015261255281612519565b9050919050565b5f61256382611bdf565b915061256e83611bdf565b925082820261257c81611bdf565b91508282048414831517612593576125926120d2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125d182611bdf565b91506125dc83611bdf565b9250826125ec576125eb61259a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612651602183611ae1565b915061265c826125f7565b604082019050919050565b5f6020820190508181035f83015261267e81612645565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6126b9601a83611ae1565b91506126c482612685565b602082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612721601b83611ae1565b915061272c826126ed565b602082019050919050565b5f6020820190508181035f83015261274e81612715565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e181611ba4565b82525050565b5f6127f283836127d8565b60208301905092915050565b5f602082019050919050565b5f612814826127af565b61281e81856127b9565b9350612829836127c9565b805f5b8381101561285957815161284088826127e7565b975061284b836127fe565b92505060018101905061282c565b5085935050505092915050565b5f61287082611cad565b9050919050565b61288081612866565b82525050565b5f60a0820190506128995f830188611cf7565b6128a6602083018761215c565b81810360408301526128b8818661280a565b90506128c76060830185612877565b6128d46080830184611cf7565b969550505050505056fea2646970667358221220bbaa882cc21eb7d261f0a0bfb405eed615ad181bbd6aa25be20560224c1043f564736f6c63430008170033

Deployed Bytecode Sourcemap

3183:6267:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4491:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5178:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3862:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4780:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3682:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5919:265;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4685:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3720:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4892:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:140;;;:::i;:::-;;3757:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1007:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4586:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5406:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8277:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8459:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3975:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8943:504;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5023:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1227:236;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8744:191;;;:::i;:::-;;4491:83;4528:13;4561:5;4554:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4491:83;:::o;5178:216::-;5253:4;5305:6;5270:11;:23;5282:10;5270:23;;;;;;;;;;;;;;;:32;5294:7;5270:32;;;;;;;;;;;;;;;:41;;;;5348:7;5327:37;;5336:10;5327:37;;;5357:6;5327:37;;;;;;:::i;:::-;;;;;;;;5382:4;5375:11;;5178:216;;;;:::o;3862:106::-;;;;;;;;;;;;;:::o;4780:100::-;4833:7;4860:12;;4853:19;;4780:100;:::o;3682:31::-;;;;:::o;5919:265::-;6017:4;6034:36;6044:6;6052:9;6063:6;6034:9;:36::i;:::-;6081:73;6090:6;6098:10;6110:43;6146:6;6110:11;:19;6122:6;6110:19;;;;;;;;;;;;;;;:31;6130:10;6110:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;6081:8;:73::i;:::-;6172:4;6165:11;;5919:265;;;;;:::o;4685:83::-;4726:5;4751:9;;;;;;;;;;;4744:16;;4685:83;:::o;3720:30::-;;;;:::o;4892:119::-;4958:7;4985:9;:18;4995:7;4985:18;;;;;;;;;;;;;;;;4978:25;;4892:119;;;:::o;1475:140::-;1152:6;;;;;;;;;;1138:20;;:10;:20;;;1130:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1574:1:::1;1537:40;;1558:6;::::0;::::1;;;;;;;;1537:40;;;;;;;;;;;;1605:1;1588:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1475:140::o:0;3757:92::-;;;;;;;;;;;;;:::o;1007:79::-;1045:7;1072:6;;;;;;;;;;;1065:13;;1007:79;:::o;4586:87::-;4625:13;4658:7;4651:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4586:87;:::o;5406:165::-;5484:4;5501:40;5511:10;5523:9;5534:6;5501:9;:40::i;:::-;5559:4;5552:11;;5406:165;;;;:::o;8277:174::-;1152:6;;;;;;;;;;1138:20;;:10;:20;;;1130:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8393:13:::1;8378:12;:28;;;;8431:12;8417:11;:26;;;;8277:174:::0;;:::o;8459:273::-;8538:15;;;;;;;;;;;8524:29;;:10;:29;;;8516:38;;;;;;8566:14;8590:5;8583:23;;;8615:4;8583:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8566:55;;8649:1;8640:6;:10;8632:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8692:5;8685:22;;;8708:7;:5;:7::i;:::-;8717:6;8685:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8505:227;8459:273;:::o;3975:82::-;;;:::o;8943:504::-;1152:6;;;;;;;;;;1138:20;;:10;:20;;;1130:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9008:19:::1;9030:24;9048:4;9030:9;:24::i;:::-;9008:46;;9065:17;9085:21;9065:41;;9128:62;9145:4;9160:15;;;;;;;;;;;9178:11;9128:8;:62::i;:::-;9211:15;;;;;;;;;;;:31;;;9250:9;9283:4;9303:6;9324:11;9350:1;9366::::0;9382:10:::1;9425:3;9407:15;:21;;;;:::i;:::-;9211:228;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8997:450;;8943:504:::0;:::o;5023:143::-;5104:7;5131:11;:18;5143:5;5131:18;;;;;;;;;;;;;;;:27;5150:7;5131:27;;;;;;;;;;;;;;;;5124:34;;5023:143;;;;:::o;1227:236::-;1152:6;;;;;;;;;;1138:20;;:10;:20;;;1130:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1328:1:::1;1308:22;;:8;:22;;::::0;1300:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1418:8;1389:38;;1410:6;::::0;::::1;;;;;;;;1389:38;;;;;;;;;;;;1447:8;1438:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1227:236:::0;:::o;8744:191::-;1152:6;;;;;;;;;;1138:20;;:10;:20;;;1130:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:14:::1;8814:21;8797:38;;8863:1;8854:6;:10;8846:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;8902:7;:5;:7::i;:::-;8894:25;;:33;8920:6;8894:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8785:150;8744:191::o:0;7303:965::-;7419:1;7401:20;;:6;:20;;;7393:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7492:1;7471:23;;:9;:23;;;7463:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7544:23;7570:33;7599:3;7570:24;7581:12;;7570:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7544:59;;7614:22;7639:32;7667:3;7639:23;7650:11;;7639:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;7614:57;;7682:22;7707:47;7739:14;7707:27;7718:15;7707:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;7682:72;;7795:29;7817:6;7795:9;:17;7805:6;7795:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;7775:9;:17;7785:6;7775:17;;;;;;;;;;;;;;;:49;;;;7858:40;7883:14;7858:9;:20;7868:9;7858:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7835:9;:20;7845:9;7835:20;;;;;;;;;;;;;;;:63;;;;7936:65;7986:14;7936:45;7965:15;7936:9;:24;7954:4;7936:24;;;;;;;;;;;;;;;;:28;;:45;;;;:::i;:::-;:49;;:65;;;;:::i;:::-;7909:9;:24;7927:4;7909:24;;;;;;;;;;;;;;;:92;;;;8044:9;8027:43;;8036:6;8027:43;;;8055:14;8027:43;;;;;;:::i;:::-;;;;;;;;8111:4;8086:68;;8095:6;8086:68;;;8118:35;8138:14;8118:15;:19;;:35;;;;:::i;:::-;8086:68;;;;;;:::i;:::-;;;;;;;;8175:39;8198:15;8175:22;:39::i;:::-;8225:35;8245:14;8225:19;:35::i;:::-;7382:886;;;7303:965;;;:::o;1831:158::-;1889:7;1922:1;1917;:6;;1909:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1980:1;1976;:5;;;;:::i;:::-;1969:12;;1831:158;;;;:::o;5583:324::-;5694:1;5677:19;;:5;:19;;;5669:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5764:1;5745:21;;:7;:21;;;5737:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5845:6;5815:11;:18;5827:5;5815:18;;;;;;;;;;;;;;;:27;5834:7;5815:27;;;;;;;;;;;;;;;:36;;;;5883:7;5867:32;;5876:5;5867:32;;;5892:6;5867:32;;;;;;:::i;:::-;;;;;;;;5583:324;;;:::o;2154:246::-;2212:7;2241:1;2236;:6;2232:47;;2266:1;2259:8;;;;2232:47;2289:9;2305:1;2301;:5;;;;:::i;:::-;2289:17;;2334:1;2329;2325;:5;;;;:::i;:::-;:10;2317:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2391:1;2384:8;;;2154:246;;;;;:::o;1995:153::-;2053:7;2085:1;2081;:5;2073:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2139:1;2135;:5;;;;:::i;:::-;2128:12;;1995:153;;;;:::o;1646:179::-;1704:7;1724:9;1740:1;1736;:5;;;;:::i;:::-;1724:17;;1765:1;1760;:6;;1752:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1816:1;1809:8;;;1646:179;;;;:::o;6191:484::-;6268:21;6306:1;6292:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6268:40;;6337:4;6319;6324:1;6319:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6363:12;6353:4;6358:1;6353:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;6388:66;6405:4;6420:15;;;;;;;;;;;6438;6388:8;:66::i;:::-;6465:15;;;;;;;;;;;:66;;;6546:15;6576:1;6592:4;6611:15;;;;;;;;;;;6641;6465:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6257:418;6191:484;:::o;6687:596::-;6760:36;6799:42;6816:9;:24;6834:4;6816:24;;;;;;;;;;;;;;;;6799:12;;:16;;:42;;;;:::i;:::-;6760:81;;6888:1;6856:28;:33;6852:46;;6891:7;;;6852:46;6910:17;6930:23;6947:5;6930:12;;:16;;:23;;;;:::i;:::-;6910:43;;6983:23;7009:34;7028:7;:14;;;;7009;:18;;:34;;;;:::i;:::-;6983:60;;7059:6;7054:222;7075:7;:14;;;;7071:1;:18;7054:222;;;7111:14;7128:7;7136:1;7128:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7111:27;;7178:9;7157;:17;7167:6;7157:17;;;;;;;;;;;;;;;;:30;7153:112;;7216:6;7208:24;;:41;7233:15;7208:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7153:112;7096:180;7091:3;;;;;;;7054:222;;;;6749:534;;;6687:596;;:::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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:104::-;6206:7;6235:24;6253:5;6235:24;:::i;:::-;6224:35;;6161:104;;;:::o;6271:142::-;6374:32;6400:5;6374:32;:::i;:::-;6369:3;6362:45;6271:142;;:::o;6419:254::-;6528:4;6566:2;6555:9;6551:18;6543:26;;6579:87;6663:1;6652:9;6648:17;6639:6;6579:87;:::i;:::-;6419:254;;;;:::o;6679:118::-;6766:24;6784:5;6766:24;:::i;:::-;6761:3;6754:37;6679:118;;:::o;6803:222::-;6896:4;6934:2;6923:9;6919:18;6911:26;;6947:71;7015:1;7004:9;7000:17;6991:6;6947:71;:::i;:::-;6803:222;;;;:::o;7031:474::-;7099:6;7107;7156:2;7144:9;7135:7;7131:23;7127:32;7124:119;;;7162:79;;:::i;:::-;7124:119;7282:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;:::i;:::-;7297:63;;7253:117;7409:2;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7380:118;7031:474;;;;;:::o;7511:116::-;7581:21;7596:5;7581:21;:::i;:::-;7574:5;7571:32;7561:60;;7617:1;7614;7607:12;7561:60;7511:116;:::o;7633:133::-;7676:5;7714:6;7701:20;7692:29;;7730:30;7754:5;7730:30;:::i;:::-;7633:133;;;;:::o;7772:323::-;7828:6;7877:2;7865:9;7856:7;7852:23;7848:32;7845:119;;;7883:79;;:::i;:::-;7845:119;8003:1;8028:50;8070:7;8061:6;8050:9;8046:22;8028:50;:::i;:::-;8018:60;;7974:114;7772:323;;;;:::o;8101:474::-;8169:6;8177;8226:2;8214:9;8205:7;8201:23;8197:32;8194:119;;;8232:79;;:::i;:::-;8194:119;8352:1;8377:53;8422:7;8413:6;8402:9;8398:22;8377:53;:::i;:::-;8367:63;;8323:117;8479:2;8505:53;8550:7;8541:6;8530:9;8526:22;8505:53;:::i;:::-;8495:63;;8450:118;8101:474;;;;;:::o;8581:180::-;8629:77;8626:1;8619:88;8726:4;8723:1;8716:15;8750:4;8747:1;8740:15;8767:320;8811:6;8848:1;8842:4;8838:12;8828:22;;8895:1;8889:4;8885:12;8916:18;8906:81;;8972:4;8964:6;8960:17;8950:27;;8906:81;9034:2;9026:6;9023:14;9003:18;9000:38;8997:84;;9053:18;;:::i;:::-;8997:84;8818:269;8767:320;;;:::o;9093:182::-;9233:34;9229:1;9221:6;9217:14;9210:58;9093:182;:::o;9281:366::-;9423:3;9444:67;9508:2;9503:3;9444:67;:::i;:::-;9437:74;;9520:93;9609:3;9520:93;:::i;:::-;9638:2;9633:3;9629:12;9622:19;;9281:366;;;:::o;9653:419::-;9819:4;9857:2;9846:9;9842:18;9834:26;;9906:9;9900:4;9896:20;9892:1;9881:9;9877:17;9870:47;9934:131;10060:4;9934:131;:::i;:::-;9926:139;;9653:419;;;:::o;10078:143::-;10135:5;10166:6;10160:13;10151:22;;10182:33;10209:5;10182:33;:::i;:::-;10078:143;;;;:::o;10227:351::-;10297:6;10346:2;10334:9;10325:7;10321:23;10317:32;10314:119;;;10352:79;;:::i;:::-;10314:119;10472:1;10497:64;10553:7;10544:6;10533:9;10529:22;10497:64;:::i;:::-;10487:74;;10443:128;10227:351;;;;:::o;10584:169::-;10724:21;10720:1;10712:6;10708:14;10701:45;10584:169;:::o;10759:366::-;10901:3;10922:67;10986:2;10981:3;10922:67;:::i;:::-;10915:74;;10998:93;11087:3;10998:93;:::i;:::-;11116:2;11111:3;11107:12;11100:19;;10759:366;;;:::o;11131:419::-;11297:4;11335:2;11324:9;11320:18;11312:26;;11384:9;11378:4;11374:20;11370:1;11359:9;11355:17;11348:47;11412:131;11538:4;11412:131;:::i;:::-;11404:139;;11131:419;;;:::o;11556:332::-;11677:4;11715:2;11704:9;11700:18;11692:26;;11728:71;11796:1;11785:9;11781:17;11772:6;11728:71;:::i;:::-;11809:72;11877:2;11866:9;11862:18;11853:6;11809:72;:::i;:::-;11556:332;;;;;:::o;11894:137::-;11948:5;11979:6;11973:13;11964:22;;11995:30;12019:5;11995:30;:::i;:::-;11894:137;;;;:::o;12037:345::-;12104:6;12153:2;12141:9;12132:7;12128:23;12124:32;12121:119;;;12159:79;;:::i;:::-;12121:119;12279:1;12304:61;12357:7;12348:6;12337:9;12333:22;12304:61;:::i;:::-;12294:71;;12250:125;12037:345;;;;:::o;12388:180::-;12436:77;12433:1;12426:88;12533:4;12530:1;12523:15;12557:4;12554:1;12547:15;12574:191;12614:3;12633:20;12651:1;12633:20;:::i;:::-;12628:25;;12667:20;12685:1;12667:20;:::i;:::-;12662:25;;12710:1;12707;12703:9;12696:16;;12731:3;12728:1;12725:10;12722:36;;;12738:18;;:::i;:::-;12722:36;12574:191;;;;:::o;12771:85::-;12816:7;12845:5;12834:16;;12771:85;;;:::o;12862:158::-;12920:9;12953:61;12971:42;12980:32;13006:5;12980:32;:::i;:::-;12971:42;:::i;:::-;12953:61;:::i;:::-;12940:74;;12862:158;;;:::o;13026:147::-;13121:45;13160:5;13121:45;:::i;:::-;13116:3;13109:58;13026:147;;:::o;13179:906::-;13450:4;13488:3;13477:9;13473:19;13465:27;;13502:71;13570:1;13559:9;13555:17;13546:6;13502:71;:::i;:::-;13583:66;13645:2;13634:9;13630:18;13621:6;13583:66;:::i;:::-;13659:72;13727:2;13716:9;13712:18;13703:6;13659:72;:::i;:::-;13741:80;13817:2;13806:9;13802:18;13793:6;13741:80;:::i;:::-;13831:81;13907:3;13896:9;13892:19;13883:6;13831:81;:::i;:::-;13922:73;13990:3;13979:9;13975:19;13966:6;13922:73;:::i;:::-;14005;14073:3;14062:9;14058:19;14049:6;14005:73;:::i;:::-;13179:906;;;;;;;;;;:::o;14091:663::-;14179:6;14187;14195;14244:2;14232:9;14223:7;14219:23;14215:32;14212:119;;;14250:79;;:::i;:::-;14212:119;14370:1;14395:64;14451:7;14442:6;14431:9;14427:22;14395:64;:::i;:::-;14385:74;;14341:128;14508:2;14534:64;14590:7;14581:6;14570:9;14566:22;14534:64;:::i;:::-;14524:74;;14479:129;14647:2;14673:64;14729:7;14720:6;14709:9;14705:22;14673:64;:::i;:::-;14663:74;;14618:129;14091:663;;;;;:::o;14760:225::-;14900:34;14896:1;14888:6;14884:14;14877:58;14969:8;14964:2;14956:6;14952:15;14945:33;14760:225;:::o;14991:366::-;15133:3;15154:67;15218:2;15213:3;15154:67;:::i;:::-;15147:74;;15230:93;15319:3;15230:93;:::i;:::-;15348:2;15343:3;15339:12;15332:19;;14991:366;;;:::o;15363:419::-;15529:4;15567:2;15556:9;15552:18;15544:26;;15616:9;15610:4;15606:20;15602:1;15591:9;15587:17;15580:47;15644:131;15770:4;15644:131;:::i;:::-;15636:139;;15363:419;;;:::o;15788:164::-;15928:16;15924:1;15916:6;15912:14;15905:40;15788:164;:::o;15958:366::-;16100:3;16121:67;16185:2;16180:3;16121:67;:::i;:::-;16114:74;;16197:93;16286:3;16197:93;:::i;:::-;16315:2;16310:3;16306:12;16299:19;;15958:366;;;:::o;16330:419::-;16496:4;16534:2;16523:9;16519:18;16511:26;;16583:9;16577:4;16573:20;16569:1;16558:9;16554:17;16547:47;16611:131;16737:4;16611:131;:::i;:::-;16603:139;;16330:419;;;:::o;16755:176::-;16895:28;16891:1;16883:6;16879:14;16872:52;16755:176;:::o;16937:366::-;17079:3;17100:67;17164:2;17159:3;17100:67;:::i;:::-;17093:74;;17176:93;17265:3;17176:93;:::i;:::-;17294:2;17289:3;17285:12;17278:19;;16937:366;;;:::o;17309:419::-;17475:4;17513:2;17502:9;17498:18;17490:26;;17562:9;17556:4;17552:20;17548:1;17537:9;17533:17;17526:47;17590:131;17716:4;17590:131;:::i;:::-;17582:139;;17309:419;;;:::o;17734:174::-;17874:26;17870:1;17862:6;17858:14;17851:50;17734:174;:::o;17914:366::-;18056:3;18077:67;18141:2;18136:3;18077:67;:::i;:::-;18070:74;;18153:93;18242:3;18153:93;:::i;:::-;18271:2;18266:3;18262:12;18255:19;;17914:366;;;:::o;18286:419::-;18452:4;18490:2;18479:9;18475:18;18467:26;;18539:9;18533:4;18529:20;18525:1;18514:9;18510:17;18503:47;18567:131;18693:4;18567:131;:::i;:::-;18559:139;;18286:419;;;:::o;18711:180::-;18851:32;18847:1;18839:6;18835:14;18828:56;18711:180;:::o;18897:366::-;19039:3;19060:67;19124:2;19119:3;19060:67;:::i;:::-;19053:74;;19136:93;19225:3;19136:93;:::i;:::-;19254:2;19249:3;19245:12;19238:19;;18897:366;;;:::o;19269:419::-;19435:4;19473:2;19462:9;19458:18;19450:26;;19522:9;19516:4;19512:20;19508:1;19497:9;19493:17;19486:47;19550:131;19676:4;19550:131;:::i;:::-;19542:139;;19269:419;;;:::o;19694:194::-;19734:4;19754:20;19772:1;19754:20;:::i;:::-;19749:25;;19788:20;19806:1;19788:20;:::i;:::-;19783:25;;19832:1;19829;19825:9;19817:17;;19856:1;19850:4;19847:11;19844:37;;;19861:18;;:::i;:::-;19844:37;19694:194;;;;:::o;19894:175::-;20034:27;20030:1;20022:6;20018:14;20011:51;19894:175;:::o;20075:366::-;20217:3;20238:67;20302:2;20297:3;20238:67;:::i;:::-;20231:74;;20314:93;20403:3;20314:93;:::i;:::-;20432:2;20427:3;20423:12;20416:19;;20075:366;;;:::o;20447:419::-;20613:4;20651:2;20640:9;20636:18;20628:26;;20700:9;20694:4;20690:20;20686:1;20675:9;20671:17;20664:47;20728:131;20854:4;20728:131;:::i;:::-;20720:139;;20447:419;;;:::o;20872:173::-;21012:25;21008:1;21000:6;20996:14;20989:49;20872:173;:::o;21051:366::-;21193:3;21214:67;21278:2;21273:3;21214:67;:::i;:::-;21207:74;;21290:93;21379:3;21290:93;:::i;:::-;21408:2;21403:3;21399:12;21392:19;;21051:366;;;:::o;21423:419::-;21589:4;21627:2;21616:9;21612:18;21604:26;;21676:9;21670:4;21666:20;21662:1;21651:9;21647:17;21640:47;21704:131;21830:4;21704:131;:::i;:::-;21696:139;;21423:419;;;:::o;21848:410::-;21888:7;21911:20;21929:1;21911:20;:::i;:::-;21906:25;;21945:20;21963:1;21945:20;:::i;:::-;21940:25;;22000:1;21997;21993:9;22022:30;22040:11;22022:30;:::i;:::-;22011:41;;22201:1;22192:7;22188:15;22185:1;22182:22;22162:1;22155:9;22135:83;22112:139;;22231:18;;:::i;:::-;22112:139;21896:362;21848:410;;;;:::o;22264:180::-;22312:77;22309:1;22302:88;22409:4;22406:1;22399:15;22433:4;22430:1;22423:15;22450:185;22490:1;22507:20;22525:1;22507:20;:::i;:::-;22502:25;;22541:20;22559:1;22541:20;:::i;:::-;22536:25;;22580:1;22570:35;;22585:18;;:::i;:::-;22570:35;22627:1;22624;22620:9;22615:14;;22450:185;;;;:::o;22641:220::-;22781:34;22777:1;22769:6;22765:14;22758:58;22850:3;22845:2;22837:6;22833:15;22826:28;22641:220;:::o;22867:366::-;23009:3;23030:67;23094:2;23089:3;23030:67;:::i;:::-;23023:74;;23106:93;23195:3;23106:93;:::i;:::-;23224:2;23219:3;23215:12;23208:19;;22867:366;;;:::o;23239:419::-;23405:4;23443:2;23432:9;23428:18;23420:26;;23492:9;23486:4;23482:20;23478:1;23467:9;23463:17;23456:47;23520:131;23646:4;23520:131;:::i;:::-;23512:139;;23239:419;;;:::o;23664:176::-;23804:28;23800:1;23792:6;23788:14;23781:52;23664:176;:::o;23846:366::-;23988:3;24009:67;24073:2;24068:3;24009:67;:::i;:::-;24002:74;;24085:93;24174:3;24085:93;:::i;:::-;24203:2;24198:3;24194:12;24187:19;;23846:366;;;:::o;24218:419::-;24384:4;24422:2;24411:9;24407:18;24399:26;;24471:9;24465:4;24461:20;24457:1;24446:9;24442:17;24435:47;24499:131;24625:4;24499:131;:::i;:::-;24491:139;;24218:419;;;:::o;24643:177::-;24783:29;24779:1;24771:6;24767:14;24760:53;24643:177;:::o;24826:366::-;24968:3;24989:67;25053:2;25048:3;24989:67;:::i;:::-;24982:74;;25065:93;25154:3;25065:93;:::i;:::-;25183:2;25178:3;25174:12;25167:19;;24826:366;;;:::o;25198:419::-;25364:4;25402:2;25391:9;25387:18;25379:26;;25451:9;25445:4;25441:20;25437:1;25426:9;25422:17;25415:47;25479:131;25605:4;25479:131;:::i;:::-;25471:139;;25198:419;;;:::o;25623:180::-;25671:77;25668:1;25661:88;25768:4;25765:1;25758:15;25792:4;25789:1;25782:15;25809:180;25857:77;25854:1;25847:88;25954:4;25951:1;25944:15;25978:4;25975:1;25968:15;25995:114;26062:6;26096:5;26090:12;26080:22;;25995:114;;;:::o;26115:184::-;26214:11;26248:6;26243:3;26236:19;26288:4;26283:3;26279:14;26264:29;;26115:184;;;;:::o;26305:132::-;26372:4;26395:3;26387:11;;26425:4;26420:3;26416:14;26408:22;;26305:132;;;:::o;26443:108::-;26520:24;26538:5;26520:24;:::i;:::-;26515:3;26508:37;26443:108;;:::o;26557:179::-;26626:10;26647:46;26689:3;26681:6;26647:46;:::i;:::-;26725:4;26720:3;26716:14;26702:28;;26557:179;;;;:::o;26742:113::-;26812:4;26844;26839:3;26835:14;26827:22;;26742:113;;;:::o;26891:732::-;27010:3;27039:54;27087:5;27039:54;:::i;:::-;27109:86;27188:6;27183:3;27109:86;:::i;:::-;27102:93;;27219:56;27269:5;27219:56;:::i;:::-;27298:7;27329:1;27314:284;27339:6;27336:1;27333:13;27314:284;;;27415:6;27409:13;27442:63;27501:3;27486:13;27442:63;:::i;:::-;27435:70;;27528:60;27581:6;27528:60;:::i;:::-;27518:70;;27374:224;27361:1;27358;27354:9;27349:14;;27314:284;;;27318:14;27614:3;27607:10;;27015:608;;;26891:732;;;;:::o;27629:134::-;27687:9;27720:37;27751:5;27720:37;:::i;:::-;27707:50;;27629:134;;;:::o;27769:147::-;27864:45;27903:5;27864:45;:::i;:::-;27859:3;27852:58;27769:147;;:::o;27922:847::-;28193:4;28231:3;28220:9;28216:19;28208:27;;28245:71;28313:1;28302:9;28298:17;28289:6;28245:71;:::i;:::-;28326:80;28402:2;28391:9;28387:18;28378:6;28326:80;:::i;:::-;28453:9;28447:4;28443:20;28438:2;28427:9;28423:18;28416:48;28481:108;28584:4;28575:6;28481:108;:::i;:::-;28473:116;;28599:80;28675:2;28664:9;28660:18;28651:6;28599:80;:::i;:::-;28689:73;28757:3;28746:9;28742:19;28733:6;28689:73;:::i;:::-;27922:847;;;;;;;;:::o

Swarm Source

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