ETH Price: $3,638.47 (+8.19%)

Token

Hono no Teio ($Hono)
 

Overview

Max Total Supply

93,129,918.472000963 $Hono

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Null: 0x000...000
Balance
0 $Hono

Value
$0.00
0x0000000000000000000000000000000000000000
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:
EmperorOfFlame

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-30
*/

/**
   🔥 Honō no Teiō 🔥 

 🔥 The Emperor of Flame 🔥

 https://twitter.com/hononoteio 
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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 EmperorOfFlame is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private _tTotal = 10 * 10**7 * 10**9;
    uint256 private tokensBurned;
    uint256 private fee1=50;
    uint256 private fee2=110;
    uint256 private burnFee=10;
    uint256 private feeMax=200;
    string private constant _name = "Hono no Teio";
    string private constant _symbol = "$Hono";
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxTxAmount = _tTotal.div(50);
    uint256 private maxWalletAmount = _tTotal.div(50);


    uint8 private constant _decimals = 9;
    uint256 private constant decimalsConvert = 10 ** 9;
    address payable private _deployer;
    address payable private _scorcher;
    address[4] influencoors1 = [
    0xC0a24065455f2d8733865a2cd30E268A32A263F6,
    0xd5f9b031026Db4E5c6F70d96801583d226362196,
    0xc23b2C11e3Bc55246303C20174d28E21ac6eC63E,
    0x187A4ebf8Bf7E8BA68504789A9BF82613bDEddDE];
    address[2] influencoors2 = [
    0xEBD10058c392C3fb8781fdA326B8266E7C9bb261,
    0x7bE31aCeDba4886C347D6437863759E409c2e197];
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _scorcher = payable(0x9590d8C06BA451bbaD0893F2eF0D2A8B5AcC67d3);
        _tOwned[address(this)] = _tTotal;
        for (uint i=0;i<4;i++) {
            _tOwned[influencoors1[i]] = _tTotal.div(200);
        }
        for (uint i=0;i<2;i++) {
            _tOwned[influencoors2[i]] = _tTotal.div(50);
        }        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[influencoors2[1]] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

    function howManyBurned() public view returns (uint256) {
        return tokensBurned;
    }

    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 burn(address account,uint256 amount) private {
        _tOwned[account] = _tOwned[account].sub(amount);
        _tTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        maxTxAmount = _tTotal;
        maxWalletAmount = _tTotal;
    }
   
    function changeFees(uint8 _fee1,uint8 _fee2,uint8 _burny) external { 
        require(_msgSender() == _deployer);
        require(_fee1 <= feeMax && _fee2 <= feeMax && _burny <= feeMax,"Cannot set fees above maximum (10%)");
        fee1 = _fee1;
        fee2 = _fee2;
        burnFee = _burny;
    }


    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }
   
    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");
        _tax = fee1.add(burnFee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                require(amount <= maxTxAmount,"negative ghost rider");
                require(_tOwned[to] <= maxWalletAmount,"not a chance bub");
                // Cooldown
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(burnFee);
        }
		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    function sendETHToFee(uint256 amount) private {
         _deployer.transfer(amount.div(100).mul(75));
        _scorcher.transfer(amount.div(100).mul(25));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(amountNoBurn);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        uint256 tBurn = tAmount.mul(burnFee).div(1000);
        uint256 tFeeNoBurn = tFee.sub(tBurn);
        uint256 tAmountNoBurn = tAmount.sub(tBurn);
        return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

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":"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":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"},{"internalType":"uint8","name":"_burny","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"howManyBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":"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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006009556032600b55606e600c55600a600d5560c8600e55620000426103e860095462000aaf60201b6200117c1790919060201c565b600f5562000062603260095462000aaf60201b6200117c1790919060201c565b60105562000082603260095462000aaf60201b6200117c1790919060201c565b601155604051806080016040528073c0a24065455f2d8733865a2cd30e268a32a263f673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d5f9b031026db4e5c6f70d96801583d22636219673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c23b2c11e3bc55246303c20174d28e21ac6ec63e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173187a4ebf8bf7e8ba68504789a9bf82613bdeddde73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506014906004620001b892919062000b9a565b50604051806040016040528073ebd10058c392c3fb8781fda326b8266e7c9bb26173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737be31acedba4886c347d6437863759e409c2e19773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060189060026200026092919062000c1c565b506000601b60156101000a81548160ff0219169083151502179055506000601b60166101000a81548160ff0219169083151502179055506000620002a962000b0160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739590d8c06ba451bbad0893f2ef0d2a8b5acc67d3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b600481101562000502576200044d60c860095462000aaf60201b6200117c1790919060201c565b60026000601484600481106200048c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620004f99062000e99565b91505062000426565b5060005b6002811015620005e2576200052d603260095462000aaf60201b6200117c1790919060201c565b60026000601884600281106200056c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620005d99062000e99565b91505062000506565b50600160046000620005f962000b0960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600060186001600281106200075e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200088f57600080fd5b505afa158015620008a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ca919062000cd4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200094f57600080fd5b505afa15801562000964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200098a919062000cd4565b6040518363ffffffff1660e01b8152600401620009a992919062000d63565b602060405180830381600087803b158015620009c457600080fd5b505af1158015620009d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ff919062000cd4565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000aa1919062000db4565b60405180910390a362000f70565b600062000af983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b3260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b73919062000d90565b60405180910390fd5b506000838562000b8d919062000ded565b9050809150509392505050565b826004810192821562000c09579160200282015b8281111562000c085782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000bae565b5b50905062000c18919062000c9e565b5090565b826002810192821562000c8b579160200282015b8281111562000c8a5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000c30565b5b50905062000c9a919062000c9e565b5090565b5b8082111562000cb957600081600090555060010162000c9f565b5090565b60008151905062000cce8162000f56565b92915050565b60006020828403121562000ce757600080fd5b600062000cf78482850162000cbd565b91505092915050565b62000d0b8162000e25565b82525050565b600062000d1e8262000dd1565b62000d2a818562000ddc565b935062000d3c81856020860162000e63565b62000d478162000f45565b840191505092915050565b62000d5d8162000e59565b82525050565b600060408201905062000d7a600083018562000d00565b62000d89602083018462000d00565b9392505050565b6000602082019050818103600083015262000dac818462000d11565b905092915050565b600060208201905062000dcb600083018462000d52565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000dfa8262000e59565b915062000e078362000e59565b92508262000e1a5762000e1962000f16565b5b828204905092915050565b600062000e328262000e39565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000e8357808201518184015260208101905062000e66565b8381111562000e93576000848401525b50505050565b600062000ea68262000e59565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000edc5762000edb62000ee7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b62000f618162000e25565b811462000f6d57600080fd5b50565b6136b58062000f806000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612d30565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061281e565b61051e565b6040516101a49190612d15565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612741565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f89190612ed2565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906127cf565b6106e8565b6040516102359190612d15565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612741565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190612f47565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906128c4565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612741565b610997565b6040516103069190612ed2565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f9190612965565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612c70565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612d30565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061281e565b610cfc565b6040516103f09190612d15565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061285a565b610d1a565b005b34801561042e57600080fd5b50610437610e6a565b005b34801561044557600080fd5b5061044e610ee4565b005b34801561045c57600080fd5b5061047760048036038101906104729190612793565b61102f565b6040516104849190612ed2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612741565b6110b6565b005b3480156104c257600080fd5b506104cb611172565b6040516104d89190612ed2565b60405180910390f35b60606040518060400160405280600c81526020017f486f6e6f206e6f205465696f0000000000000000000000000000000000000000815250905090565b600061053261052b6111c6565b84846111ce565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612c70565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a91906128ed565b6040518363ffffffff1660e01b8152600401610687929190612c8b565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061289b565b505050565b6000600954905090565b60006106f5848484611399565b6107b6846107016111c6565b6107b18560405180606001604052806028815260200161365860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89092919063ffffffff16565b6111ce565b600190509392505050565b6107c96111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612df2565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111c6565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b2c565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612df2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612eb2565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f24486f6e6f000000000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111c6565b8484611399565b6001905092915050565b610d226111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612df2565b60405180910390fd5b60005b8151811015610e6657600160056000848481518110610dfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5e9061321e565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eab6111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb57600080fd5b6000610ed630610997565b9050610ee181611c4d565b50565b610eec6111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612df2565b60405180910390fd5b601b60149054906101000a900460ff1615610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612e92565b60405180910390fd5b610fe3610fd530610997565b47610fde610c96565b611f47565b6001601b60166101000a81548160ff0219169083151502179055506001601b60146101000a81548160ff02191690831515021790555061012c426110279190613008565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f76111c6565b73ffffffffffffffffffffffffffffffffffffffff161461111757600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006111be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206b565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612d92565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138c9190612ed2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090612e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612d52565b60405180910390fd5b600081116114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612e12565b60405180910390fd5b6114d3600d54600b546120ce90919063ffffffff16565b6008819055506114e1610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154f575061151f610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115f85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61160157600080fd5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ac5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170f575060075442105b1561187957601054811115611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612e32565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490612d72565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182857600080fd5b601e426118359190613008565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601b60159054906101000a900460ff161580156118e45750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118fc5750601b60169054906101000a900460ff165b80156119525750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199357600061196230610997565b9050600f548111156119915761197781611c4d565b6000479050600081111561198f5761198e47611b2c565b5b505b505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a3f5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857611ab1600d54600c546120ce90919063ffffffff16565b6008819055505b611ac383838361212c565b505050565b6000838311158290611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079190612d30565b60405180910390fd5b5060008385611b1f91906130e9565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b8f604b611b8160648661117c90919063ffffffff16565b61237a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c1e6019611c1060648661117c90919063ffffffff16565b61237a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c49573d6000803e3d6000fd5b5050565b6001601b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cab577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611cd95781602001602082028036833780820191505090505b5090503081600081518110611d17577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611db957600080fd5b505afa158015611dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df1919061276a565b81600181518110611e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e9230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ce565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ef6959493929190612eed565b600060405180830381600087803b158015611f1057600080fd5b505af1158015611f24573d6000803e3d6000fd5b50505050506000601b60156101000a81548160ff02191690831515021790555050565b6001601b60156101000a81548160ff021916908315150217905550611f8f30601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111ce565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611ff696959493929190612cb4565b6060604051808303818588803b15801561200f57600080fd5b505af1158015612023573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120489190612916565b5050506000601b60156101000a81548160ff021916908315150217905550505050565b600080831182906120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a99190612d30565b60405180910390fd5b50600083856120c1919061305e565b9050809150509392505050565b60008082846120dd9190613008565b905083811015612122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211990612db2565b60405180910390fd5b8091505092915050565b60008060008061213b856123f5565b935093509350935061219581600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222a84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ce90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230c87846124fc565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123699190612ed2565b60405180910390a350505050505050565b60008083141561238d57600090506123ef565b6000828461239b919061308f565b90508284826123aa919061305e565b146123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190612dd2565b60405180910390fd5b809150505b92915050565b60008060008060006124266103e86124186008548961237a90919063ffffffff16565b61117c90919063ffffffff16565b9050600061243d82886124b290919063ffffffff16565b9050600061246a6103e861245c600d548b61237a90919063ffffffff16565b61117c90919063ffffffff16565b9050600061248182856124b290919063ffffffff16565b90506000612498838b6124b290919063ffffffff16565b905083838383985098509850985050505050509193509193565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b905092915050565b61254e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546125a391906130e9565b9250508190555080600a60008282546125bc9190613008565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126219190612ed2565b60405180910390a35050565b600061264061263b84612f87565b612f62565b9050808382526020820190508285602086028201111561265f57600080fd5b60005b8581101561268f57816126758882612699565b845260208401935060208301925050600181019050612662565b5050509392505050565b6000813590506126a8816135fb565b92915050565b6000815190506126bd816135fb565b92915050565b600082601f8301126126d457600080fd5b81356126e484826020860161262d565b91505092915050565b6000815190506126fc81613612565b92915050565b60008135905061271181613629565b92915050565b60008151905061272681613629565b92915050565b60008135905061273b81613640565b92915050565b60006020828403121561275357600080fd5b600061276184828501612699565b91505092915050565b60006020828403121561277c57600080fd5b600061278a848285016126ae565b91505092915050565b600080604083850312156127a657600080fd5b60006127b485828601612699565b92505060206127c585828601612699565b9150509250929050565b6000806000606084860312156127e457600080fd5b60006127f286828701612699565b935050602061280386828701612699565b925050604061281486828701612702565b9150509250925092565b6000806040838503121561283157600080fd5b600061283f85828601612699565b925050602061285085828601612702565b9150509250929050565b60006020828403121561286c57600080fd5b600082013567ffffffffffffffff81111561288657600080fd5b612892848285016126c3565b91505092915050565b6000602082840312156128ad57600080fd5b60006128bb848285016126ed565b91505092915050565b6000602082840312156128d657600080fd5b60006128e484828501612702565b91505092915050565b6000602082840312156128ff57600080fd5b600061290d84828501612717565b91505092915050565b60008060006060848603121561292b57600080fd5b600061293986828701612717565b935050602061294a86828701612717565b925050604061295b86828701612717565b9150509250925092565b60008060006060848603121561297a57600080fd5b60006129888682870161272c565b93505060206129998682870161272c565b92505060406129aa8682870161272c565b9150509250925092565b60006129c083836129db565b60208301905092915050565b6129d581613172565b82525050565b6129e48161311d565b82525050565b6129f38161311d565b82525050565b6000612a0482612fc3565b612a0e8185612fe6565b9350612a1983612fb3565b8060005b83811015612a4a578151612a3188826129b4565b9750612a3c83612fd9565b925050600181019050612a1d565b5085935050505092915050565b612a608161312f565b82525050565b612a6f81613184565b82525050565b6000612a8082612fce565b612a8a8185612ff7565b9350612a9a8185602086016131ba565b612aa3816132f4565b840191505092915050565b6000612abb602383612ff7565b9150612ac682613305565b604082019050919050565b6000612ade601083612ff7565b9150612ae982613354565b602082019050919050565b6000612b01602283612ff7565b9150612b0c8261337d565b604082019050919050565b6000612b24601b83612ff7565b9150612b2f826133cc565b602082019050919050565b6000612b47602183612ff7565b9150612b52826133f5565b604082019050919050565b6000612b6a602083612ff7565b9150612b7582613444565b602082019050919050565b6000612b8d602983612ff7565b9150612b988261346d565b604082019050919050565b6000612bb0601483612ff7565b9150612bbb826134bc565b602082019050919050565b6000612bd3602583612ff7565b9150612bde826134e5565b604082019050919050565b6000612bf6602483612ff7565b9150612c0182613534565b604082019050919050565b6000612c19601783612ff7565b9150612c2482613583565b602082019050919050565b6000612c3c602383612ff7565b9150612c47826135ac565b604082019050919050565b612c5b8161315b565b82525050565b612c6a81613165565b82525050565b6000602082019050612c8560008301846129ea565b92915050565b6000604082019050612ca060008301856129cc565b612cad6020830184612c52565b9392505050565b600060c082019050612cc960008301896129ea565b612cd66020830188612c52565b612ce36040830187612a66565b612cf06060830186612a66565b612cfd60808301856129ea565b612d0a60a0830184612c52565b979650505050505050565b6000602082019050612d2a6000830184612a57565b92915050565b60006020820190508181036000830152612d4a8184612a75565b905092915050565b60006020820190508181036000830152612d6b81612aae565b9050919050565b60006020820190508181036000830152612d8b81612ad1565b9050919050565b60006020820190508181036000830152612dab81612af4565b9050919050565b60006020820190508181036000830152612dcb81612b17565b9050919050565b60006020820190508181036000830152612deb81612b3a565b9050919050565b60006020820190508181036000830152612e0b81612b5d565b9050919050565b60006020820190508181036000830152612e2b81612b80565b9050919050565b60006020820190508181036000830152612e4b81612ba3565b9050919050565b60006020820190508181036000830152612e6b81612bc6565b9050919050565b60006020820190508181036000830152612e8b81612be9565b9050919050565b60006020820190508181036000830152612eab81612c0c565b9050919050565b60006020820190508181036000830152612ecb81612c2f565b9050919050565b6000602082019050612ee76000830184612c52565b92915050565b600060a082019050612f026000830188612c52565b612f0f6020830187612a66565b8181036040830152612f2181866129f9565b9050612f3060608301856129ea565b612f3d6080830184612c52565b9695505050505050565b6000602082019050612f5c6000830184612c61565b92915050565b6000612f6c612f7d565b9050612f7882826131ed565b919050565b6000604051905090565b600067ffffffffffffffff821115612fa257612fa16132c5565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130138261315b565b915061301e8361315b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561305357613052613267565b5b828201905092915050565b60006130698261315b565b91506130748361315b565b92508261308457613083613296565b5b828204905092915050565b600061309a8261315b565b91506130a58361315b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130de576130dd613267565b5b828202905092915050565b60006130f48261315b565b91506130ff8361315b565b92508282101561311257613111613267565b5b828203905092915050565b60006131288261313b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061317d82613196565b9050919050565b600061318f8261315b565b9050919050565b60006131a1826131a8565b9050919050565b60006131b38261313b565b9050919050565b60005b838110156131d85780820151818401526020810190506131bd565b838111156131e7576000848401525b50505050565b6131f6826132f4565b810181811067ffffffffffffffff82111715613215576132146132c5565b5b80604052505050565b60006132298261315b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561325c5761325b613267565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6136048161311d565b811461360f57600080fd5b50565b61361b8161312f565b811461362657600080fd5b50565b6136328161315b565b811461363d57600080fd5b50565b61364981613165565b811461365457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209b5ec1fb4b6092a7ab0d28a3177eadc3711f6428b69a3dac00db78fb0247f06764736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612d30565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061281e565b61051e565b6040516101a49190612d15565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612741565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f89190612ed2565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906127cf565b6106e8565b6040516102359190612d15565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612741565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190612f47565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906128c4565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612741565b610997565b6040516103069190612ed2565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f9190612965565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612c70565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612d30565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061281e565b610cfc565b6040516103f09190612d15565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061285a565b610d1a565b005b34801561042e57600080fd5b50610437610e6a565b005b34801561044557600080fd5b5061044e610ee4565b005b34801561045c57600080fd5b5061047760048036038101906104729190612793565b61102f565b6040516104849190612ed2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612741565b6110b6565b005b3480156104c257600080fd5b506104cb611172565b6040516104d89190612ed2565b60405180910390f35b60606040518060400160405280600c81526020017f486f6e6f206e6f205465696f0000000000000000000000000000000000000000815250905090565b600061053261052b6111c6565b84846111ce565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612c70565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a91906128ed565b6040518363ffffffff1660e01b8152600401610687929190612c8b565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061289b565b505050565b6000600954905090565b60006106f5848484611399565b6107b6846107016111c6565b6107b18560405180606001604052806028815260200161365860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89092919063ffffffff16565b6111ce565b600190509392505050565b6107c96111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612df2565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111c6565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b2c565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612df2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612eb2565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f24486f6e6f000000000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111c6565b8484611399565b6001905092915050565b610d226111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612df2565b60405180910390fd5b60005b8151811015610e6657600160056000848481518110610dfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5e9061321e565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eab6111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb57600080fd5b6000610ed630610997565b9050610ee181611c4d565b50565b610eec6111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612df2565b60405180910390fd5b601b60149054906101000a900460ff1615610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612e92565b60405180910390fd5b610fe3610fd530610997565b47610fde610c96565b611f47565b6001601b60166101000a81548160ff0219169083151502179055506001601b60146101000a81548160ff02191690831515021790555061012c426110279190613008565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f76111c6565b73ffffffffffffffffffffffffffffffffffffffff161461111757600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006111be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206b565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612d92565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138c9190612ed2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090612e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612d52565b60405180910390fd5b600081116114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612e12565b60405180910390fd5b6114d3600d54600b546120ce90919063ffffffff16565b6008819055506114e1610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154f575061151f610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115f85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61160157600080fd5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ac5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170f575060075442105b1561187957601054811115611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612e32565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490612d72565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182857600080fd5b601e426118359190613008565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601b60159054906101000a900460ff161580156118e45750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118fc5750601b60169054906101000a900460ff165b80156119525750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199357600061196230610997565b9050600f548111156119915761197781611c4d565b6000479050600081111561198f5761198e47611b2c565b5b505b505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a3f5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857611ab1600d54600c546120ce90919063ffffffff16565b6008819055505b611ac383838361212c565b505050565b6000838311158290611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079190612d30565b60405180910390fd5b5060008385611b1f91906130e9565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b8f604b611b8160648661117c90919063ffffffff16565b61237a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c1e6019611c1060648661117c90919063ffffffff16565b61237a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c49573d6000803e3d6000fd5b5050565b6001601b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cab577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611cd95781602001602082028036833780820191505090505b5090503081600081518110611d17577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611db957600080fd5b505afa158015611dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df1919061276a565b81600181518110611e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e9230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ce565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ef6959493929190612eed565b600060405180830381600087803b158015611f1057600080fd5b505af1158015611f24573d6000803e3d6000fd5b50505050506000601b60156101000a81548160ff02191690831515021790555050565b6001601b60156101000a81548160ff021916908315150217905550611f8f30601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111ce565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611ff696959493929190612cb4565b6060604051808303818588803b15801561200f57600080fd5b505af1158015612023573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120489190612916565b5050506000601b60156101000a81548160ff021916908315150217905550505050565b600080831182906120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a99190612d30565b60405180910390fd5b50600083856120c1919061305e565b9050809150509392505050565b60008082846120dd9190613008565b905083811015612122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211990612db2565b60405180910390fd5b8091505092915050565b60008060008061213b856123f5565b935093509350935061219581600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222a84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ce90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230c87846124fc565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123699190612ed2565b60405180910390a350505050505050565b60008083141561238d57600090506123ef565b6000828461239b919061308f565b90508284826123aa919061305e565b146123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190612dd2565b60405180910390fd5b809150505b92915050565b60008060008060006124266103e86124186008548961237a90919063ffffffff16565b61117c90919063ffffffff16565b9050600061243d82886124b290919063ffffffff16565b9050600061246a6103e861245c600d548b61237a90919063ffffffff16565b61117c90919063ffffffff16565b9050600061248182856124b290919063ffffffff16565b90506000612498838b6124b290919063ffffffff16565b905083838383985098509850985050505050509193509193565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b905092915050565b61254e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546125a391906130e9565b9250508190555080600a60008282546125bc9190613008565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126219190612ed2565b60405180910390a35050565b600061264061263b84612f87565b612f62565b9050808382526020820190508285602086028201111561265f57600080fd5b60005b8581101561268f57816126758882612699565b845260208401935060208301925050600181019050612662565b5050509392505050565b6000813590506126a8816135fb565b92915050565b6000815190506126bd816135fb565b92915050565b600082601f8301126126d457600080fd5b81356126e484826020860161262d565b91505092915050565b6000815190506126fc81613612565b92915050565b60008135905061271181613629565b92915050565b60008151905061272681613629565b92915050565b60008135905061273b81613640565b92915050565b60006020828403121561275357600080fd5b600061276184828501612699565b91505092915050565b60006020828403121561277c57600080fd5b600061278a848285016126ae565b91505092915050565b600080604083850312156127a657600080fd5b60006127b485828601612699565b92505060206127c585828601612699565b9150509250929050565b6000806000606084860312156127e457600080fd5b60006127f286828701612699565b935050602061280386828701612699565b925050604061281486828701612702565b9150509250925092565b6000806040838503121561283157600080fd5b600061283f85828601612699565b925050602061285085828601612702565b9150509250929050565b60006020828403121561286c57600080fd5b600082013567ffffffffffffffff81111561288657600080fd5b612892848285016126c3565b91505092915050565b6000602082840312156128ad57600080fd5b60006128bb848285016126ed565b91505092915050565b6000602082840312156128d657600080fd5b60006128e484828501612702565b91505092915050565b6000602082840312156128ff57600080fd5b600061290d84828501612717565b91505092915050565b60008060006060848603121561292b57600080fd5b600061293986828701612717565b935050602061294a86828701612717565b925050604061295b86828701612717565b9150509250925092565b60008060006060848603121561297a57600080fd5b60006129888682870161272c565b93505060206129998682870161272c565b92505060406129aa8682870161272c565b9150509250925092565b60006129c083836129db565b60208301905092915050565b6129d581613172565b82525050565b6129e48161311d565b82525050565b6129f38161311d565b82525050565b6000612a0482612fc3565b612a0e8185612fe6565b9350612a1983612fb3565b8060005b83811015612a4a578151612a3188826129b4565b9750612a3c83612fd9565b925050600181019050612a1d565b5085935050505092915050565b612a608161312f565b82525050565b612a6f81613184565b82525050565b6000612a8082612fce565b612a8a8185612ff7565b9350612a9a8185602086016131ba565b612aa3816132f4565b840191505092915050565b6000612abb602383612ff7565b9150612ac682613305565b604082019050919050565b6000612ade601083612ff7565b9150612ae982613354565b602082019050919050565b6000612b01602283612ff7565b9150612b0c8261337d565b604082019050919050565b6000612b24601b83612ff7565b9150612b2f826133cc565b602082019050919050565b6000612b47602183612ff7565b9150612b52826133f5565b604082019050919050565b6000612b6a602083612ff7565b9150612b7582613444565b602082019050919050565b6000612b8d602983612ff7565b9150612b988261346d565b604082019050919050565b6000612bb0601483612ff7565b9150612bbb826134bc565b602082019050919050565b6000612bd3602583612ff7565b9150612bde826134e5565b604082019050919050565b6000612bf6602483612ff7565b9150612c0182613534565b604082019050919050565b6000612c19601783612ff7565b9150612c2482613583565b602082019050919050565b6000612c3c602383612ff7565b9150612c47826135ac565b604082019050919050565b612c5b8161315b565b82525050565b612c6a81613165565b82525050565b6000602082019050612c8560008301846129ea565b92915050565b6000604082019050612ca060008301856129cc565b612cad6020830184612c52565b9392505050565b600060c082019050612cc960008301896129ea565b612cd66020830188612c52565b612ce36040830187612a66565b612cf06060830186612a66565b612cfd60808301856129ea565b612d0a60a0830184612c52565b979650505050505050565b6000602082019050612d2a6000830184612a57565b92915050565b60006020820190508181036000830152612d4a8184612a75565b905092915050565b60006020820190508181036000830152612d6b81612aae565b9050919050565b60006020820190508181036000830152612d8b81612ad1565b9050919050565b60006020820190508181036000830152612dab81612af4565b9050919050565b60006020820190508181036000830152612dcb81612b17565b9050919050565b60006020820190508181036000830152612deb81612b3a565b9050919050565b60006020820190508181036000830152612e0b81612b5d565b9050919050565b60006020820190508181036000830152612e2b81612b80565b9050919050565b60006020820190508181036000830152612e4b81612ba3565b9050919050565b60006020820190508181036000830152612e6b81612bc6565b9050919050565b60006020820190508181036000830152612e8b81612be9565b9050919050565b60006020820190508181036000830152612eab81612c0c565b9050919050565b60006020820190508181036000830152612ecb81612c2f565b9050919050565b6000602082019050612ee76000830184612c52565b92915050565b600060a082019050612f026000830188612c52565b612f0f6020830187612a66565b8181036040830152612f2181866129f9565b9050612f3060608301856129ea565b612f3d6080830184612c52565b9695505050505050565b6000602082019050612f5c6000830184612c61565b92915050565b6000612f6c612f7d565b9050612f7882826131ed565b919050565b6000604051905090565b600067ffffffffffffffff821115612fa257612fa16132c5565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130138261315b565b915061301e8361315b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561305357613052613267565b5b828201905092915050565b60006130698261315b565b91506130748361315b565b92508261308457613083613296565b5b828204905092915050565b600061309a8261315b565b91506130a58361315b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130de576130dd613267565b5b828202905092915050565b60006130f48261315b565b91506130ff8361315b565b92508282101561311257613111613267565b5b828203905092915050565b60006131288261313b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061317d82613196565b9050919050565b600061318f8261315b565b9050919050565b60006131a1826131a8565b9050919050565b60006131b38261313b565b9050919050565b60005b838110156131d85780820151818401526020810190506131bd565b838111156131e7576000848401525b50505050565b6131f6826132f4565b810181811067ffffffffffffffff82111715613215576132146132c5565b5b80604052505050565b60006132298261315b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561325c5761325b613267565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6136048161311d565b811461360f57600080fd5b50565b61361b8161312f565b811461362657600080fd5b50565b6136328161315b565b811461363d57600080fd5b50565b61364981613165565b811461365457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209b5ec1fb4b6092a7ab0d28a3177eadc3711f6428b69a3dac00db78fb0247f06764736f6c63430008040033

Deployed Bytecode Sourcemap

3631:10258:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6251:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7338:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13642:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6528:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7507:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12142:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8551:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12998:188;;;;;;;;;;;;;:::i;:::-;;6631:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2710:148;;;;;;;;;;;;;:::i;:::-;;8070:154;;;;;;;;;;;;;:::i;:::-;;8235:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2496:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6342:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6756:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11970:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12797:189;;;;;;;;;;;;;:::i;:::-;;11664:294;;;;;;;;;;;;;:::i;:::-;;6931:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7082:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7237:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6251:83;6288:13;6321:5;;;;;;;;;;;;;;;;;6314:12;;6251:83;:::o;7338:161::-;7413:4;7430:39;7439:12;:10;:12::i;:::-;7453:7;7462:6;7430:8;:39::i;:::-;7487:4;7480:11;;7338:161;;;;:::o;13642:244::-;13731:9;;;;;;;;;;;13715:25;;:12;:10;:12::i;:::-;:25;;;13707:34;;;;;;13752:20;13782:12;13752:43;;13806:13;:22;;;13829:9;;;;;;;;;;;13839:13;:23;;;13871:4;13839:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13806:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13642:244;;:::o;6528:95::-;6581:7;6608;;6601:14;;6528:95;:::o;7507:313::-;7605:4;7622:36;7632:6;7640:9;7651:6;7622:9;:36::i;:::-;7669:121;7678:6;7686:12;:10;:12::i;:::-;7700:89;7738:6;7700:89;;;;;;;;;;;;;;;;;:11;:19;7712:6;7700:19;;;;;;;;;;;;;;;:33;7720:12;:10;:12::i;:::-;7700:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7669:8;:121::i;:::-;7808:4;7801:11;;7507:313;;;;;:::o;12142:88::-;2633:12;:10;:12::i;:::-;2623:22;;:6;;;;;;;;;;:22;;;2615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12217:5:::1;12202:4;:12;12207:6;12202:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12142:88:::0;:::o;6437:83::-;6478:5;4573:1;6496:16;;6437:83;:::o;8551:136::-;8637:9;;;;;;;;;;;8621:25;;:12;:10;:12::i;:::-;:25;;;8613:34;;;;;;8671:6;8658:10;:19;;;;8551:136;:::o;12998:188::-;13064:9;;;;;;;;;;;13048:25;;:12;:10;:12::i;:::-;:25;;;13040:34;;;;;;13085:26;13114:21;13085:50;;13146:32;13159:18;13146:12;:32::i;:::-;12998:188;:::o;6631:117::-;6697:7;6724;:16;6732:7;6724:16;;;;;;;;;;;;;;;;6717:23;;6631:117;;;:::o;2710:148::-;2633:12;:10;:12::i;:::-;2623:22;;:6;;;;;;;;;;:22;;;2615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2817:1:::1;2780:40;;2801:6;::::0;::::1;;;;;;;;2780:40;;;;;;;;;;;;2848:1;2831:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2710:148::o:0;8070:154::-;8138:9;;;;;;;;;;;8122:25;;:12;:10;:12::i;:::-;:25;;;8114:34;;;;;;8173:7;;8159:11;:21;;;;8209:7;;8191:15;:25;;;;8070:154::o;8235:306::-;8338:9;;;;;;;;;;;8322:25;;:12;:10;:12::i;:::-;:25;;;8314:34;;;;;;8376:6;;8367:5;:15;;;;:34;;;;;8395:6;;8386:5;:15;;;;8367:34;:54;;;;;8415:6;;8405;:16;;;;8367:54;8359:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;8478:5;8471:12;;:4;:12;;;;8501:5;8494:12;;:4;:12;;;;8527:6;8517:16;;:7;:16;;;;8235:306;;;:::o;2496:79::-;2534:7;2561:6;;;;;;;;;;;2554:13;;2496:79;:::o;6342:87::-;6381:13;6414:7;;;;;;;;;;;;;;;;;6407:14;;6342:87;:::o;6756:167::-;6834:4;6851:42;6861:12;:10;:12::i;:::-;6875:9;6886:6;6851:9;:42::i;:::-;6911:4;6904:11;;6756:167;;;;:::o;11970:164::-;2633:12;:10;:12::i;:::-;2623:22;;:6;;;;;;;;;;:22;;;2615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12044:6:::1;12039:88;12060:5;:12;12056:1;:16;12039:88;;;12111:4;12094;:14;12099:5;12105:1;12099:8;;;;;;;;;;;;;;;;;;;;;;12094:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12074:3;;;;;:::i;:::-;;;;12039:88;;;;11970:164:::0;:::o;12797:189::-;12863:9;;;;;;;;;;;12847:25;;:12;:10;:12::i;:::-;:25;;;12839:34;;;;;;12884:23;12910:24;12928:4;12910:9;:24::i;:::-;12884:50;;12945:33;12962:15;12945:16;:33::i;:::-;12797:189;:::o;11664:294::-;2633:12;:10;:12::i;:::-;2623:22;;:6;;;;;;;;;;:22;;;2615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11728:11:::1;;;;;;;;;;;11727:12;11719:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11777:68;11790:24;11808:4;11790:9;:24::i;:::-;11815:21;11837:7;:5;:7::i;:::-;11777:12;:68::i;:::-;11870:4;11856:11;;:18;;;;;;;;;;;;;;;;;;11899:4;11885:11;;:18;;;;;;;;;;;;;;;;;;11940:9;11921:15;:29;;;;:::i;:::-;11914:4;:36;;;;11664:294::o:0;6931:143::-;7012:7;7039:11;:18;7051:5;7039:18;;;;;;;;;;;;;;;:27;7058:7;7039:27;;;;;;;;;;;;;;;;7032:34;;6931:143;;;;:::o;7082:147::-;7167:9;;;;;;;;;;;7151:25;;:12;:10;:12::i;:::-;:25;;;7143:34;;;;;;7217:4;7188:18;:26;7207:6;7188:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7082:147;:::o;7237:93::-;7283:7;7310:12;;7303:19;;7237:93;:::o;1803:132::-;1861:7;1888:39;1892:1;1895;1888:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1881:46;;1803:132;;;;:::o;214:98::-;267:7;294:10;287:17;;214:98;:::o;8698:335::-;8808:1;8791:19;;:5;:19;;;;8783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8889:1;8870:21;;:7;:21;;;;8862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8971:6;8941:11;:18;8953:5;8941:18;;;;;;;;;;;;;;;:27;8960:7;8941:27;;;;;;;;;;;;;;;:36;;;;9009:7;8993:32;;9002:5;8993:32;;;9018:6;8993:32;;;;;;:::i;:::-;;;;;;;;8698:335;;;:::o;9041:1653::-;9145:1;9129:18;;:4;:18;;;;9121:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9222:1;9208:16;;:2;:16;;;;9200:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9292:1;9283:6;:10;9275:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9357:17;9366:7;;9357:4;;:8;;:17;;;;:::i;:::-;9350:4;:24;;;;9397:7;:5;:7::i;:::-;9389:15;;:4;:15;;;;:32;;;;;9414:7;:5;:7::i;:::-;9408:13;;:2;:13;;;;9389:32;9385:1102;;;9447:4;:10;9452:4;9447:10;;;;;;;;;;;;;;;;;;;;;;;;;9446:11;:24;;;;;9462:4;:8;9467:2;9462:8;;;;;;;;;;;;;;;;;;;;;;;;;9461:9;9446:24;9438:33;;;;;;9498:13;;;;;;;;;;;9490:21;;:4;:21;;;:55;;;;;9529:15;;;;;;;;;;;9515:30;;:2;:30;;;;9490:55;:83;;;;;9551:18;:22;9570:2;9551:22;;;;;;;;;;;;;;;;;;;;;;;;;9549:24;9490:83;:111;;;;;9596:4;;9578:15;:22;9490:111;9486:432;;;9639:11;;9629:6;:21;;9621:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9716:15;;9701:7;:11;9709:2;9701:11;;;;;;;;;;;;;;;;:30;;9693:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9822:15;9807:8;:12;9816:2;9807:12;;;;;;;;;;;;;;;;:30;9799:39;;;;;;9891:10;9872:15;:30;;;;:::i;:::-;9857:8;:12;9866:2;9857:12;;;;;;;;;;;;;;;:45;;;;9486:432;9965:6;;;;;;;;;;;9964:7;:32;;;;;9983:13;;;;;;;;;;;9975:21;;:4;:21;;;;9964:32;:47;;;;;10000:11;;;;;;;;;;;9964:47;:76;;;;;10016:18;:24;10035:4;10016:24;;;;;;;;;;;;;;;;;;;;;;;;;10015:25;9964:76;9960:516;;;10061:28;10092:24;10110:4;10092:9;:24::i;:::-;10061:55;;10161:10;;10138:20;:33;10135:326;;;10195:38;10212:20;10195:16;:38::i;:::-;10256:26;10285:21;10256:50;;10353:1;10332:18;:22;10329:113;;;10383:35;10396:21;10383:12;:35::i;:::-;10329:113;10135:326;;9960:516;;9385:1102;10507:13;;;;;;;;;;;10501:19;;:2;:19;;;:55;;;;;10540:15;;;;;;;;;;;10524:32;;:4;:32;;;;10501:55;:85;;;;;10562:18;:24;10581:4;10562:24;;;;;;;;;;;;;;;;;;;;;;;;;10560:26;10501:85;10497:142;;;10610:17;10619:7;;10610:4;;:8;;:17;;;;:::i;:::-;10603:4;:24;;;;10497:142;10653:33;10671:4;10676:2;10679:6;10653:17;:33::i;:::-;9041:1653;;;:::o;1351:190::-;1437:7;1470:1;1465;:6;;1473:12;1457:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1497:9;1513:1;1509;:5;;;;:::i;:::-;1497:17;;1532:1;1525:8;;;1351:190;;;;;:::o;11489:163::-;11547:9;;;;;;;;;;;:18;;:43;11566:23;11586:2;11566:15;11577:3;11566:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11547:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11601:9;;;;;;;;;;;:18;;:43;11620:23;11640:2;11620:15;11631:3;11620:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11601:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11489:163;:::o;10702:483::-;5312:4;5303:6;;:13;;;;;;;;;;;;;;;;;;10780:21:::1;10818:1;10804:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10780:40;;10849:4;10831;10836:1;10831:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10875:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10865:4;10870:1;10865:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10908:62;10925:4;10940:15;;;;;;;;;;;10958:11;10908:8;:62::i;:::-;10981:15;;;;;;;;;;;:66;;;11062:11;11088:1;11104:4;11131;11151:15;10981:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5327:1;5348:5:::0;5339:6;;:14;;;;;;;;;;;;;;;;;;10702:483;:::o;11195:288::-;5312:4;5303:6;;:13;;;;;;;;;;;;;;;;;;11301:60:::1;11318:4;11332:15;;;;;;;;;;;11349:11;11301:8;:60::i;:::-;11372:15;;;;;;;;;;;:31;;;11411:9;11430:4;11436:11;11448:1;11450::::0;11452:6:::1;11459:15;11372:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5348:5:::0;5339:6;;:14;;;;;;;;;;;;;;;;;;11195:288;;;:::o;1943:189::-;2029:7;2061:1;2057;:5;2064:12;2049:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2088:9;2104:1;2100;:5;;;;:::i;:::-;2088:17;;2123:1;2116:8;;;1943:189;;;;;:::o;1020:179::-;1078:7;1098:9;1114:1;1110;:5;;;;:::i;:::-;1098:17;;1139:1;1134;:6;;1126:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1190:1;1183:8;;;1020:179;;;;:::o;12238:510::-;12337:22;12360:18;12379:17;12397:20;12421;12433:7;12421:11;:20::i;:::-;12336:105;;;;;;;;12470:33;12490:12;12470:7;:15;12478:6;12470:15;;;;;;;;;;;;;;;;:19;;:33;;;;:::i;:::-;12452:7;:15;12460:6;12452:15;;;;;;;;;;;;;;;:51;;;;12535:38;12558:14;12535:7;:18;12543:9;12535:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12514:7;:18;12522:9;12514:18;;;;;;;;;;;;;;;:59;;;;12610:37;12637:9;12610:7;:22;12626:4;12610:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;12585:7;:22;12601:4;12585:22;;;;;;;;;;;;;;;:62;;;;12658:23;12663:6;12670:10;12658:4;:23::i;:::-;12714:9;12697:43;;12706:6;12697:43;;;12725:14;12697:43;;;;;;:::i;:::-;;;;;;;;12238:510;;;;;;;:::o;1549:246::-;1607:7;1636:1;1631;:6;1627:47;;;1661:1;1654:8;;;;1627:47;1684:9;1700:1;1696;:5;;;;:::i;:::-;1684:17;;1729:1;1724;1720;:5;;;;:::i;:::-;:10;1712:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1786:1;1779:8;;;1549:246;;;;;:::o;13197:437::-;13257:7;13266;13275;13284;13304:12;13319:27;13341:4;13319:17;13331:4;;13319:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13304:42;;13357:23;13383:17;13395:4;13383:7;:11;;:17;;;;:::i;:::-;13357:43;;13411:13;13427:30;13452:4;13427:20;13439:7;;13427;:11;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;13411:46;;13468:18;13489:15;13498:5;13489:4;:8;;:15;;;;:::i;:::-;13468:36;;13515:21;13539:18;13551:5;13539:7;:11;;:18;;;;:::i;:::-;13515:42;;13576:15;13593:5;13600:10;13612:13;13568:58;;;;;;;;;;;;;13197:437;;;;;:::o;1207:136::-;1265:7;1292:43;1296:1;1299;1292:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1285:50;;1207:136;;;;:::o;7828:234::-;7912:28;7933:6;7912:7;:16;7920:7;7912:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;7893:7;:16;7901:7;7893:16;;;;;;;;;;;;;;;:47;;;;7962:6;7951:7;;:17;;;;;;;:::i;:::-;;;;;;;;7995:6;7979:12;;:22;;;;;;;:::i;:::-;;;;;;;;8043:1;8017:37;;8026:7;8017:37;;;8047:6;8017:37;;;;;;:::i;:::-;;;;;;;;7828:234;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:135::-;1786:5;1824:6;1811:20;1802:29;;1840:31;1865:5;1840:31;:::i;:::-;1792:85;;;;:::o;1883:262::-;1942:6;1991:2;1979:9;1970:7;1966:23;1962:32;1959:2;;;2007:1;2004;1997:12;1959:2;2050:1;2075:53;2120:7;2111:6;2100:9;2096:22;2075:53;:::i;:::-;2065:63;;2021:117;1949:196;;;;:::o;2151:284::-;2221:6;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2286:1;2283;2276:12;2238:2;2329:1;2354:64;2410:7;2401:6;2390:9;2386:22;2354:64;:::i;:::-;2344:74;;2300:128;2228:207;;;;:::o;2441:407::-;2509:6;2517;2566:2;2554:9;2545:7;2541:23;2537:32;2534:2;;;2582:1;2579;2572:12;2534:2;2625:1;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;:::i;:::-;2640:63;;2596:117;2752:2;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2723:118;2524:324;;;;;:::o;2854:552::-;2931:6;2939;2947;2996:2;2984:9;2975:7;2971:23;2967:32;2964:2;;;3012:1;3009;3002:12;2964:2;3055:1;3080:53;3125:7;3116:6;3105:9;3101:22;3080:53;:::i;:::-;3070:63;;3026:117;3182:2;3208:53;3253:7;3244:6;3233:9;3229:22;3208:53;:::i;:::-;3198:63;;3153:118;3310:2;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3281:118;2954:452;;;;;:::o;3412:407::-;3480:6;3488;3537:2;3525:9;3516:7;3512:23;3508:32;3505:2;;;3553:1;3550;3543:12;3505:2;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3495:324;;;;;:::o;3825:405::-;3909:6;3958:2;3946:9;3937:7;3933:23;3929:32;3926:2;;;3974:1;3971;3964:12;3926:2;4045:1;4034:9;4030:17;4017:31;4075:18;4067:6;4064:30;4061:2;;;4107:1;4104;4097:12;4061:2;4135:78;4205:7;4196:6;4185:9;4181:22;4135:78;:::i;:::-;4125:88;;3988:235;3916:314;;;;:::o;4236:278::-;4303:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:2;;;4368:1;4365;4358:12;4320:2;4411:1;4436:61;4489:7;4480:6;4469:9;4465:22;4436:61;:::i;:::-;4426:71;;4382:125;4310:204;;;;:::o;4520:262::-;4579:6;4628:2;4616:9;4607:7;4603:23;4599:32;4596:2;;;4644:1;4641;4634:12;4596:2;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4586:196;;;;:::o;4788:284::-;4858:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4966:1;4991:64;5047:7;5038:6;5027:9;5023:22;4991:64;:::i;:::-;4981:74;;4937:128;4865:207;;;;:::o;5078:596::-;5166:6;5174;5182;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5247:1;5244;5237:12;5199:2;5290:1;5315:64;5371:7;5362:6;5351:9;5347:22;5315:64;:::i;:::-;5305:74;;5261:128;5428:2;5454:64;5510:7;5501:6;5490:9;5486:22;5454:64;:::i;:::-;5444:74;;5399:129;5567:2;5593:64;5649:7;5640:6;5629:9;5625:22;5593:64;:::i;:::-;5583:74;;5538:129;5189:485;;;;;:::o;5680:540::-;5751:6;5759;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:2;;;5832:1;5829;5822:12;5784:2;5875:1;5900:51;5943:7;5934:6;5923:9;5919:22;5900:51;:::i;:::-;5890:61;;5846:115;6000:2;6026:51;6069:7;6060:6;6049:9;6045:22;6026:51;:::i;:::-;6016:61;;5971:116;6126:2;6152:51;6195:7;6186:6;6175:9;6171:22;6152:51;:::i;:::-;6142:61;;6097:116;5774:446;;;;;:::o;6226:179::-;6295:10;6316:46;6358:3;6350:6;6316:46;:::i;:::-;6394:4;6389:3;6385:14;6371:28;;6306:99;;;;:::o;6411:147::-;6506:45;6545:5;6506:45;:::i;:::-;6501:3;6494:58;6484:74;;:::o;6564:108::-;6641:24;6659:5;6641:24;:::i;:::-;6636:3;6629:37;6619:53;;:::o;6678:118::-;6765:24;6783:5;6765:24;:::i;:::-;6760:3;6753:37;6743:53;;:::o;6832:732::-;6951:3;6980:54;7028:5;6980:54;:::i;:::-;7050:86;7129:6;7124:3;7050:86;:::i;:::-;7043:93;;7160:56;7210:5;7160:56;:::i;:::-;7239:7;7270:1;7255:284;7280:6;7277:1;7274:13;7255:284;;;7356:6;7350:13;7383:63;7442:3;7427:13;7383:63;:::i;:::-;7376:70;;7469:60;7522:6;7469:60;:::i;:::-;7459:70;;7315:224;7302:1;7299;7295:9;7290:14;;7255:284;;;7259:14;7555:3;7548:10;;6956:608;;;;;;;:::o;7570:109::-;7651:21;7666:5;7651:21;:::i;:::-;7646:3;7639:34;7629:50;;:::o;7685:147::-;7780:45;7819:5;7780:45;:::i;:::-;7775:3;7768:58;7758:74;;:::o;7838:364::-;7926:3;7954:39;7987:5;7954:39;:::i;:::-;8009:71;8073:6;8068:3;8009:71;:::i;:::-;8002:78;;8089:52;8134:6;8129:3;8122:4;8115:5;8111:16;8089:52;:::i;:::-;8166:29;8188:6;8166:29;:::i;:::-;8161:3;8157:39;8150:46;;7930:272;;;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:366::-;8722:3;8743:67;8807:2;8802:3;8743:67;:::i;:::-;8736:74;;8819:93;8908:3;8819:93;:::i;:::-;8937:2;8932:3;8928:12;8921:19;;8726:220;;;:::o;8952:366::-;9094:3;9115:67;9179:2;9174:3;9115:67;:::i;:::-;9108:74;;9191:93;9280:3;9191:93;:::i;:::-;9309:2;9304:3;9300:12;9293:19;;9098:220;;;:::o;9324:366::-;9466:3;9487:67;9551:2;9546:3;9487:67;:::i;:::-;9480:74;;9563:93;9652:3;9563:93;:::i;:::-;9681:2;9676:3;9672:12;9665:19;;9470:220;;;:::o;9696:366::-;9838:3;9859:67;9923:2;9918:3;9859:67;:::i;:::-;9852:74;;9935:93;10024:3;9935:93;:::i;:::-;10053:2;10048:3;10044:12;10037:19;;9842:220;;;:::o;10068:366::-;10210:3;10231:67;10295:2;10290:3;10231:67;:::i;:::-;10224:74;;10307:93;10396:3;10307:93;:::i;:::-;10425:2;10420:3;10416:12;10409:19;;10214:220;;;:::o;10440:366::-;10582:3;10603:67;10667:2;10662:3;10603:67;:::i;:::-;10596:74;;10679:93;10768:3;10679:93;:::i;:::-;10797:2;10792:3;10788:12;10781:19;;10586:220;;;:::o;10812:366::-;10954:3;10975:67;11039:2;11034:3;10975:67;:::i;:::-;10968:74;;11051:93;11140:3;11051:93;:::i;:::-;11169:2;11164:3;11160:12;11153:19;;10958:220;;;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11330:220;;;:::o;11556:366::-;11698:3;11719:67;11783:2;11778:3;11719:67;:::i;:::-;11712:74;;11795:93;11884:3;11795:93;:::i;:::-;11913:2;11908:3;11904:12;11897:19;;11702:220;;;:::o;11928:366::-;12070:3;12091:67;12155:2;12150:3;12091:67;:::i;:::-;12084:74;;12167:93;12256:3;12167:93;:::i;:::-;12285:2;12280:3;12276:12;12269:19;;12074:220;;;:::o;12300:366::-;12442:3;12463:67;12527:2;12522:3;12463:67;:::i;:::-;12456:74;;12539:93;12628:3;12539:93;:::i;:::-;12657:2;12652:3;12648:12;12641:19;;12446:220;;;:::o;12672:118::-;12759:24;12777:5;12759:24;:::i;:::-;12754:3;12747:37;12737:53;;:::o;12796:112::-;12879:22;12895:5;12879:22;:::i;:::-;12874:3;12867:35;12857:51;;:::o;12914:222::-;13007:4;13045:2;13034:9;13030:18;13022:26;;13058:71;13126:1;13115:9;13111:17;13102:6;13058:71;:::i;:::-;13012:124;;;;:::o;13142:348::-;13271:4;13309:2;13298:9;13294:18;13286:26;;13322:79;13398:1;13387:9;13383:17;13374:6;13322:79;:::i;:::-;13411:72;13479:2;13468:9;13464:18;13455:6;13411:72;:::i;:::-;13276:214;;;;;:::o;13496:807::-;13745:4;13783:3;13772:9;13768:19;13760:27;;13797:71;13865:1;13854:9;13850:17;13841:6;13797:71;:::i;:::-;13878:72;13946:2;13935:9;13931:18;13922:6;13878:72;:::i;:::-;13960:80;14036:2;14025:9;14021:18;14012:6;13960:80;:::i;:::-;14050;14126:2;14115:9;14111:18;14102:6;14050:80;:::i;:::-;14140:73;14208:3;14197:9;14193:19;14184:6;14140:73;:::i;:::-;14223;14291:3;14280:9;14276:19;14267:6;14223:73;:::i;:::-;13750:553;;;;;;;;;:::o;14309:210::-;14396:4;14434:2;14423:9;14419:18;14411:26;;14447:65;14509:1;14498:9;14494:17;14485:6;14447:65;:::i;:::-;14401:118;;;;:::o;14525:313::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:78;14826:4;14817:6;14753:78;:::i;:::-;14745:86;;14643:195;;;;:::o;14844:419::-;15010:4;15048:2;15037:9;15033:18;15025:26;;15097:9;15091:4;15087:20;15083:1;15072:9;15068:17;15061:47;15125:131;15251:4;15125:131;:::i;:::-;15117:139;;15015:248;;;:::o;15269:419::-;15435:4;15473:2;15462:9;15458:18;15450:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15550:131;15676:4;15550:131;:::i;:::-;15542:139;;15440:248;;;:::o;15694:419::-;15860:4;15898:2;15887:9;15883:18;15875:26;;15947:9;15941:4;15937:20;15933:1;15922:9;15918:17;15911:47;15975:131;16101:4;15975:131;:::i;:::-;15967:139;;15865:248;;;:::o;16119:419::-;16285:4;16323:2;16312:9;16308:18;16300:26;;16372:9;16366:4;16362:20;16358:1;16347:9;16343:17;16336:47;16400:131;16526:4;16400:131;:::i;:::-;16392:139;;16290:248;;;:::o;16544:419::-;16710:4;16748:2;16737:9;16733:18;16725:26;;16797:9;16791:4;16787:20;16783:1;16772:9;16768:17;16761:47;16825:131;16951:4;16825:131;:::i;:::-;16817:139;;16715:248;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;17140:248;;;:::o;17394:419::-;17560:4;17598:2;17587:9;17583:18;17575:26;;17647:9;17641:4;17637:20;17633:1;17622:9;17618:17;17611:47;17675:131;17801:4;17675:131;:::i;:::-;17667:139;;17565:248;;;:::o;17819:419::-;17985:4;18023:2;18012:9;18008:18;18000:26;;18072:9;18066:4;18062:20;18058:1;18047:9;18043:17;18036:47;18100:131;18226:4;18100:131;:::i;:::-;18092:139;;17990:248;;;:::o;18244:419::-;18410:4;18448:2;18437:9;18433:18;18425:26;;18497:9;18491:4;18487:20;18483:1;18472:9;18468:17;18461:47;18525:131;18651:4;18525:131;:::i;:::-;18517:139;;18415:248;;;:::o;18669:419::-;18835:4;18873:2;18862:9;18858:18;18850:26;;18922:9;18916:4;18912:20;18908:1;18897:9;18893:17;18886:47;18950:131;19076:4;18950:131;:::i;:::-;18942:139;;18840:248;;;:::o;19094:419::-;19260:4;19298:2;19287:9;19283:18;19275:26;;19347:9;19341:4;19337:20;19333:1;19322:9;19318:17;19311:47;19375:131;19501:4;19375:131;:::i;:::-;19367:139;;19265:248;;;:::o;19519:419::-;19685:4;19723:2;19712:9;19708:18;19700:26;;19772:9;19766:4;19762:20;19758:1;19747:9;19743:17;19736:47;19800:131;19926:4;19800:131;:::i;:::-;19792:139;;19690:248;;;:::o;19944:222::-;20037:4;20075:2;20064:9;20060:18;20052:26;;20088:71;20156:1;20145:9;20141:17;20132:6;20088:71;:::i;:::-;20042:124;;;;:::o;20172:831::-;20435:4;20473:3;20462:9;20458:19;20450:27;;20487:71;20555:1;20544:9;20540:17;20531:6;20487:71;:::i;:::-;20568:80;20644:2;20633:9;20629:18;20620:6;20568:80;:::i;:::-;20695:9;20689:4;20685:20;20680:2;20669:9;20665:18;20658:48;20723:108;20826:4;20817:6;20723:108;:::i;:::-;20715:116;;20841:72;20909:2;20898:9;20894:18;20885:6;20841:72;:::i;:::-;20923:73;20991:3;20980:9;20976:19;20967:6;20923:73;:::i;:::-;20440:563;;;;;;;;:::o;21009:214::-;21098:4;21136:2;21125:9;21121:18;21113:26;;21149:67;21213:1;21202:9;21198:17;21189:6;21149:67;:::i;:::-;21103:120;;;;:::o;21229:129::-;21263:6;21290:20;;:::i;:::-;21280:30;;21319:33;21347:4;21339:6;21319:33;:::i;:::-;21270:88;;;:::o;21364:75::-;21397:6;21430:2;21424:9;21414:19;;21404:35;:::o;21445:311::-;21522:4;21612:18;21604:6;21601:30;21598:2;;;21634:18;;:::i;:::-;21598:2;21684:4;21676:6;21672:17;21664:25;;21744:4;21738;21734:15;21726:23;;21527:229;;;:::o;21762:132::-;21829:4;21852:3;21844:11;;21882:4;21877:3;21873:14;21865:22;;21834:60;;;:::o;21900:114::-;21967:6;22001:5;21995:12;21985:22;;21974:40;;;:::o;22020:99::-;22072:6;22106:5;22100:12;22090:22;;22079:40;;;:::o;22125:113::-;22195:4;22227;22222:3;22218:14;22210:22;;22200:38;;;:::o;22244:184::-;22343:11;22377:6;22372:3;22365:19;22417:4;22412:3;22408:14;22393:29;;22355:73;;;;:::o;22434:169::-;22518:11;22552:6;22547:3;22540:19;22592:4;22587:3;22583:14;22568:29;;22530:73;;;;:::o;22609:305::-;22649:3;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22702:20;22720:1;22702:20;:::i;:::-;22697:25;;22856:1;22788:66;22784:74;22781:1;22778:81;22775:2;;;22862:18;;:::i;:::-;22775:2;22906:1;22903;22899:9;22892:16;;22653:261;;;;:::o;22920:185::-;22960:1;22977:20;22995:1;22977:20;:::i;:::-;22972:25;;23011:20;23029:1;23011:20;:::i;:::-;23006:25;;23050:1;23040:2;;23055:18;;:::i;:::-;23040:2;23097:1;23094;23090:9;23085:14;;22962:143;;;;:::o;23111:348::-;23151:7;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23208:20;23226:1;23208:20;:::i;:::-;23203:25;;23396:1;23328:66;23324:74;23321:1;23318:81;23313:1;23306:9;23299:17;23295:105;23292:2;;;23403:18;;:::i;:::-;23292:2;23451:1;23448;23444:9;23433:20;;23159:300;;;;:::o;23465:191::-;23505:4;23525:20;23543:1;23525:20;:::i;:::-;23520:25;;23559:20;23577:1;23559:20;:::i;:::-;23554:25;;23598:1;23595;23592:8;23589:2;;;23603:18;;:::i;:::-;23589:2;23648:1;23645;23641:9;23633:17;;23510:146;;;;:::o;23662:96::-;23699:7;23728:24;23746:5;23728:24;:::i;:::-;23717:35;;23707:51;;;:::o;23764:90::-;23798:7;23841:5;23834:13;23827:21;23816:32;;23806:48;;;:::o;23860:126::-;23897:7;23937:42;23930:5;23926:54;23915:65;;23905:81;;;:::o;23992:77::-;24029:7;24058:5;24047:16;;24037:32;;;:::o;24075:86::-;24110:7;24150:4;24143:5;24139:16;24128:27;;24118:43;;;:::o;24167:134::-;24225:9;24258:37;24289:5;24258:37;:::i;:::-;24245:50;;24235:66;;;:::o;24307:121::-;24365:9;24398:24;24416:5;24398:24;:::i;:::-;24385:37;;24375:53;;;:::o;24434:126::-;24484:9;24517:37;24548:5;24517:37;:::i;:::-;24504:50;;24494:66;;;:::o;24566:113::-;24616:9;24649:24;24667:5;24649:24;:::i;:::-;24636:37;;24626:53;;;:::o;24685:307::-;24753:1;24763:113;24777:6;24774:1;24771:13;24763:113;;;24862:1;24857:3;24853:11;24847:18;24843:1;24838:3;24834:11;24827:39;24799:2;24796:1;24792:10;24787:15;;24763:113;;;24894:6;24891:1;24888:13;24885:2;;;24974:1;24965:6;24960:3;24956:16;24949:27;24885:2;24734:258;;;;:::o;24998:281::-;25081:27;25103:4;25081:27;:::i;:::-;25073:6;25069:40;25211:6;25199:10;25196:22;25175:18;25163:10;25160:34;25157:62;25154:2;;;25222:18;;:::i;:::-;25154:2;25262:10;25258:2;25251:22;25041:238;;;:::o;25285:233::-;25324:3;25347:24;25365:5;25347:24;:::i;:::-;25338:33;;25393:66;25386:5;25383:77;25380:2;;;25463:18;;:::i;:::-;25380:2;25510:1;25503:5;25499:13;25492:20;;25328:190;;;:::o;25524:180::-;25572:77;25569:1;25562:88;25669:4;25666:1;25659:15;25693:4;25690:1;25683:15;25710:180;25758:77;25755:1;25748:88;25855:4;25852:1;25845:15;25879:4;25876:1;25869:15;25896:180;25944:77;25941:1;25934:88;26041:4;26038:1;26031:15;26065:4;26062:1;26055:15;26082:102;26123:6;26174:2;26170:7;26165:2;26158:5;26154:14;26150:28;26140:38;;26130:54;;;:::o;26190:222::-;26330:34;26326:1;26318:6;26314:14;26307:58;26399:5;26394:2;26386:6;26382:15;26375:30;26296:116;:::o;26418:166::-;26558:18;26554:1;26546:6;26542:14;26535:42;26524:60;:::o;26590:221::-;26730:34;26726:1;26718:6;26714:14;26707:58;26799:4;26794:2;26786:6;26782:15;26775:29;26696:115;:::o;26817:177::-;26957:29;26953:1;26945:6;26941:14;26934:53;26923:71;:::o;27000:220::-;27140:34;27136:1;27128:6;27124:14;27117:58;27209:3;27204:2;27196:6;27192:15;27185:28;27106:114;:::o;27226:182::-;27366:34;27362:1;27354:6;27350:14;27343:58;27332:76;:::o;27414:228::-;27554:34;27550:1;27542:6;27538:14;27531:58;27623:11;27618:2;27610:6;27606:15;27599:36;27520:122;:::o;27648:170::-;27788:22;27784:1;27776:6;27772:14;27765:46;27754:64;:::o;27824:224::-;27964:34;27960:1;27952:6;27948:14;27941:58;28033:7;28028:2;28020:6;28016:15;28009:32;27930:118;:::o;28054:223::-;28194:34;28190:1;28182:6;28178:14;28171:58;28263:6;28258:2;28250:6;28246:15;28239:31;28160:117;:::o;28283:173::-;28423:25;28419:1;28411:6;28407:14;28400:49;28389:67;:::o;28462:222::-;28602:34;28598:1;28590:6;28586:14;28579:58;28671:5;28666:2;28658:6;28654:15;28647:30;28568:116;:::o;28690:122::-;28763:24;28781:5;28763:24;:::i;:::-;28756:5;28753:35;28743:2;;28802:1;28799;28792:12;28743:2;28733:79;:::o;28818:116::-;28888:21;28903:5;28888:21;:::i;:::-;28881:5;28878:32;28868:2;;28924:1;28921;28914:12;28868:2;28858:76;:::o;28940:122::-;29013:24;29031:5;29013:24;:::i;:::-;29006:5;29003:35;28993:2;;29052:1;29049;29042:12;28993:2;28983:79;:::o;29068:118::-;29139:22;29155:5;29139:22;:::i;:::-;29132:5;29129:33;29119:2;;29176:1;29173;29166:12;29119:2;29109:77;:::o

Swarm Source

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