ETH Price: $3,352.36 (-0.87%)

Token

Sensor Protocol (SENSOR)
 

Overview

Max Total Supply

1,000,000,000 SENSOR

Holders

1,870

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
870,414.636815519584603791 SENSOR

Value
$0.00
0x8f2a60c78dfa15bd1157e62365e9542b0395f668
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:
SENSOR

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-27
*/

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

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

contract Ownable is Context {
    address private _owner;
    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 transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 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 SENSOR is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _IsLimitFree;
    mapping(address => uint256) private _BlockedAddress;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 40;
    uint256 public sellTax = 70;
    uint256 public txtax = 99;

    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 40000;
    uint256 private maxSwap = onePercent*5/10;
    uint256 public MaxTX = onePercent*2;
    uint256 public MxWall = onePercent*2;

    
    string private constant _name = "Sensor Protocol";
    string private constant _symbol = "SENSOR";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address public DevAdd ;
    address public AdminAdd;
    address public markAdd;

    bool private launch = false;

    constructor() {
        AdminAdd  = 0x0E0c451da265926199B97b391098804b10d30F69;
        DevAdd = 0x73056268b7D3064ECa15f185ffBef0D790bCd632;
        markAdd = 0x9485DCDfb7Cc4bF55A3C331D3A9D8A42B37E022e;
        _balance[msg.sender] = _totalSupply;
        _IsLimitFree[DevAdd ] = 1;
        _IsLimitFree[msg.sender] = 1;
        _IsLimitFree[address(this)] = 1;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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


    function OpenTrading() external onlyOwner {
        require(!launch,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
        InitialBlockNo = block.number;
    }

    function _ExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 0;
    }

    function changeTaxWallets(address _ad, address _de, address _ma) external onlyOwner {
        DevAdd = _de;
        markAdd = _ma;
        AdminAdd = _ad;
    }

    function TerminateActivity(address _wallet) external onlyOwner {
        require(_wallet != address(this) && _wallet != address(uniswapV2Pair) && _wallet != address(uniswapV2Router), "Invalid wallet");
        _BlockedAddress[_wallet] = 1;
    }

    function FreeActivity(address _wallet) external onlyOwner {
        _BlockedAddress[_wallet] = 0;
    }

    function TerminateActivityBulk(address[] memory _wallets) external onlyOwner {
        for (uint256 i = 0; i < _wallets.length; i++) {
            require(_wallets[i] != address(this) && _wallets[i] != address(uniswapV2Pair) && _wallets[i] != address(uniswapV2Router), "Invalid wallet");
            _BlockedAddress[_wallets[i]] = 1;
        }
    }

    function AbolishLimits() external onlyOwner {
        MaxTX = _totalSupply;
        MxWall = _totalSupply;
    }

    function ChangeTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= buyTax && newSellTax <= sellTax, "Tax cannot be increased");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function EditTxTax(uint256 _txtax) external onlyOwner {
        require(_txtax <= txtax, "Tax cannot be increased");
        txtax = _txtax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_IsLimitFree[from] == 0 && _IsLimitFree[to] == 0)
        {
            require(launch, "Trading not open");
            require(_BlockedAddress[from] == 0, "Please contact support");
            require(amount <= MaxTX, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MxWall, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 3) {
                _tax = (from == uniswapV2Pair) ? 40 : 70;
            } else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                } else if (to != uniswapV2Pair && from != uniswapV2Pair) {
                    _tax = txtax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function WDeth() external onlyOwner {
        bool success;
        (success, ) = owner().call{value: address(this).balance}("");
    } 

    function ManualSwap(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
        bool success;
        uint256 devtax = address(this).balance *60/100;
        uint256 Admin = address(this).balance *20/100;
        uint256 stake = address(this).balance *20/100;

        (success, ) = markAdd.call{value: stake}("");
        (success, ) = AdminAdd.call{value: Admin}("");
        (success, ) = DevAdd .call{value: devtax}("");
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AbolishLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AdminAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"ChangeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txtax","type":"uint256"}],"name":"EditTxTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"FreeActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MxWall","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"TerminateActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"}],"name":"TerminateActivityBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WDeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_ad","type":"address"},{"internalType":"address","name":"_de","type":"address"},{"internalType":"address","name":"_ma","type":"address"}],"name":"changeTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"markAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txtax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052602860065560466007556063600855600a600560646012600a6200002991906200064d565b633b9aca006200003a91906200069e565b62000046919062000718565b6200005291906200069e565b6200005e919062000718565b600955600260646012600a6200007591906200064d565b633b9aca006200008691906200069e565b62000092919062000718565b6200009e91906200069e565b600a55600260646012600a620000b591906200064d565b633b9aca00620000c691906200069e565b620000d2919062000718565b620000de91906200069e565b600b556000601060146101000a81548160ff0219169083151502179055503480156200010957600080fd5b5060006200011c620004ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350730e0c451da265926199b97b391098804b10d30f69600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507373056268b7d3064eca15f185ffbef0d790bcd632600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739485dcdfb7cc4bf55a3c331d3a9d8a42b37e022e601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002c991906200064d565b633b9aca00620002da91906200069e565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200041e620004ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200047d91906200064d565b633b9aca006200048e91906200069e565b6040516200049d919062000761565b60405180910390a36200077e565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200054157808604811115620005195762000518620004b3565b5b6001851615620005295780820291505b80810290506200053985620004e2565b9450620004f9565b94509492505050565b6000826200055c57600190506200062f565b816200056c57600090506200062f565b81600181146200058557600281146200059057620005c6565b60019150506200062f565b60ff841115620005a557620005a4620004b3565b5b8360020a915084821115620005bf57620005be620004b3565b5b506200062f565b5060208310610133831016604e8410600b8410161715620006005782820a905083811115620005fa57620005f9620004b3565b5b6200062f565b6200060f8484846001620004ef565b92509050818404811115620006295762000628620004b3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200065a8262000636565b9150620006678362000640565b9250620006967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200054a565b905092915050565b6000620006ab8262000636565b9150620006b88362000636565b9250828202620006c88162000636565b91508282048414831517620006e257620006e1620004b3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007258262000636565b9150620007328362000636565b925082620007455762000744620006e9565b5b828204905092915050565b6200075b8162000636565b82525050565b600060208201905062000778600083018462000750565b92915050565b614143806200078e6000396000f3fe6080604052600436106101f25760003560e01c8063787f4cfa1161010d578063c5cb28a3116100a0578063dd62ed3e1161006f578063dd62ed3e1461069c578063e5d51dc7146106d9578063f2fde38b14610702578063fa84095c1461072b578063fda38a8014610756576101f9565b8063c5cb28a314610608578063cc1776d31461061f578063d3547d4a1461064a578063d7f7385814610673576101f9565b8063a9059cbb116100dc578063a9059cbb14610560578063b19826f41461059d578063c1952304146105b4578063c34b1add146105df576101f9565b8063787f4cfa146104b657806382d088e5146104e15780638da5cb5b1461050a57806395d89b4114610535576101f9565b806349bd5a5e1161018557806351cd7cc31161015457806351cd7cc31461042257806356ca8a411461043957806370a0823114610462578063715018a61461049f576101f9565b806349bd5a5e146103785780634dabe75c146103a35780634e23803f146103ce5780634f7041a5146103f7576101f9565b80631d875776116101c15780631d875776146102bc57806323b872dd146102e5578063313ce567146103225780633297acb41461034d576101f9565b806306fdde03146101fe578063095ea7b3146102295780630ba4797f1461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061021361077f565b6040516102209190612f04565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190612fce565b6107bc565b60405161025d9190613029565b60405180910390f35b34801561027257600080fd5b5061027b6107da565b6040516102889190613053565b60405180910390f35b34801561029d57600080fd5b506102a6610800565b6040516102b3919061307d565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613098565b610824565b005b3480156102f157600080fd5b5061030c600480360381019061030791906130c5565b610a24565b6040516103199190613029565b60405180910390f35b34801561032e57600080fd5b50610337610b44565b6040516103449190613134565b60405180910390f35b34801561035957600080fd5b50610362610b4d565b60405161036f919061307d565b60405180910390f35b34801561038457600080fd5b5061038d610b53565b60405161039a9190613053565b60405180910390f35b3480156103af57600080fd5b506103b8610b79565b6040516103c59190613053565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190613098565b610b9f565b005b34801561040357600080fd5b5061040c610c7c565b604051610419919061307d565b60405180910390f35b34801561042e57600080fd5b50610437610c82565b005b34801561044557600080fd5b50610460600480360381019061045b919061314f565b6111a6565b005b34801561046e57600080fd5b5061048960048036038101906104849190613098565b611272565b604051610496919061307d565b60405180910390f35b3480156104ab57600080fd5b506104b46112bb565b005b3480156104c257600080fd5b506104cb61140e565b6040516104d8919061307d565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061314f565b611414565b005b34801561051657600080fd5b5061051f6114f8565b60405161052c9190613053565b60405180910390f35b34801561054157600080fd5b5061054a611521565b6040516105579190612f04565b60405180910390f35b34801561056c57600080fd5b5061058760048036038101906105829190612fce565b61155e565b6040516105949190613029565b60405180910390f35b3480156105a957600080fd5b506105b261157c565b005b3480156105c057600080fd5b506105c9611689565b6040516105d6919061307d565b60405180910390f35b3480156105eb57600080fd5b50610606600480360381019061060191906132c4565b61168f565b005b34801561061457600080fd5b5061061d611917565b005b34801561062b57600080fd5b506106346119f4565b604051610641919061307d565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c919061330d565b6119fa565b005b34801561067f57600080fd5b5061069a60048036038101906106959190613098565b611b57565b005b3480156106a857600080fd5b506106c360048036038101906106be9190613360565b611c34565b6040516106d0919061307d565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb91906133a0565b611cbb565b005b34801561070e57600080fd5b5061072960048036038101906107249190613098565b611db5565b005b34801561073757600080fd5b50610740611e56565b60405161074d9190613053565b60405180910390f35b34801561076257600080fd5b5061077d60048036038101906107789190613098565b611e7c565b005b60606040518060400160405280600f81526020017f53656e736f722050726f746f636f6c0000000000000000000000000000000000815250905090565b60006107d06107c9611f59565b8484611f61565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6108109190613542565b633b9aca0061081f919061358d565b905090565b61082c611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b09061361b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156109435750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561099d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390613687565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000610a3184848461212a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7c611f59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b385782811015610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90613719565b60405180910390fd5b610b3785610b2f611f59565b858403611f61565b5b60019150509392505050565b60006012905090565b600a5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ba7611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b9061361b565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60065481565b610c8a611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e9061361b565b60405180910390fd5b601060149054906101000a900460ff1615610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613785565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d91906137ba565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906137ba565b6040518363ffffffff1660e01b8152600401610f179291906137e7565b6020604051808303816000875af1158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906137ba565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fe330600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610fcf9190613542565b633b9aca00610fde919061358d565b611f61565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c30611272565b6000806110376114f8565b426040518863ffffffff1660e01b815260040161105996959493929190613855565b60606040518083038185885af1158015611077573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061109c91906138cb565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161113e92919061391e565b6020604051808303816000875af115801561115d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111819190613973565b506001601060146101000a81548160ff02191690831515021790555043600581905550565b6111ae611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112329061361b565b60405180910390fd5b600061124630611272565b9050600060648284611258919061358d565b61126291906139cf565b905061126d816126bc565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c3611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113479061361b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b61141c611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a09061361b565b60405180910390fd5b6008548111156114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613a4c565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53454e534f520000000000000000000000000000000000000000000000000000815250905090565b600061157261156b611f59565b848461212a565b6001905092915050565b611584611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116089061361b565b60405180910390fd5b600061161b6114f8565b73ffffffffffffffffffffffffffffffffffffffff164760405161163e90613a9d565b60006040518083038185875af1925050503d806000811461167b576040519150601f19603f3d011682016040523d82523d6000602084013e611680565b606091505b50508091505050565b600b5481565b611697611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b9061361b565b60405180910390fd5b60005b8151811015611913573073ffffffffffffffffffffffffffffffffffffffff1682828151811061175a57611759613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156117ee5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106117cd576117cc613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156118625750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061184157611840613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b6118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890613687565b60405180910390fd5b6001600460008484815181106118ba576118b9613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061190b90613ae1565b915050611727565b5050565b61191f611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061361b565b60405180910390fd5b6012600a6119ba9190613542565b633b9aca006119c9919061358d565b600a819055506012600a6119dd9190613542565b633b9aca006119ec919061358d565b600b81905550565b60075481565b611a02611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a869061361b565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611b5f611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be39061361b565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc3611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d479061361b565b60405180910390fd5b6006548211158015611d6457506007548111155b611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613a4c565b60405180910390fd5b81600681905550806007819055505050565b611dbd611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e419061361b565b60405180910390fd5b611e5381612b05565b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e84611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061361b565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613b9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361203f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203690613c2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161211d919061307d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613cbf565b60405180910390fd5b600081116121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613d2b565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561226b57506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156126aa57601060149054906101000a900460ff166122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b690613d97565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613e03565b60405180910390fd5b600a54821115612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d90613e6f565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612412575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561247057600b548261242485611272565b61242e9190613e8f565b111561246f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246690613f0f565b60405180910390fd5b5b600360055461247f9190613e8f565b4310156124ef57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146124e25760466124e5565b60285b60ff1690506126a9565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361254e5760065490506126a8565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ef5760006125ae30611272565b9050619c408111156125e45760006009549050838211156125cd578391505b808211156125d9578091505b6125e2826126bc565b505b6007549150506126a7565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561269b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126a65760085490505b5b5b5b5b6126b684848484612c31565b50505050565b6000600267ffffffffffffffff8111156126d9576126d8613181565b5b6040519080825280602002602001820160405280156127075781602001602082028036833780820191505090505b509050308160008151811061271f5761271e613ab2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ea91906137ba565b816001815181106127fe576127fd613ab2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286530600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f61565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128c9959493929190613fed565b600060405180830381600087803b1580156128e357600080fd5b505af11580156128f7573d6000803e3d6000fd5b505050506000806064603c4761290d919061358d565b61291791906139cf565b90506000606460144761292a919061358d565b61293491906139cf565b905060006064601447612947919061358d565b61295191906139cf565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161299990613a9d565b60006040518083038185875af1925050503d80600081146129d6576040519150601f19603f3d011682016040523d82523d6000602084013e6129db565b606091505b505080945050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612a2790613a9d565b60006040518083038185875af1925050503d8060008114612a64576040519150601f19603f3d011682016040523d82523d6000602084013e612a69565b606091505b505080945050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ab590613a9d565b60006040518083038185875af1925050503d8060008114612af2576040519150601f19603f3d011682016040523d82523d6000602084013e612af7565b606091505b505080945050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b906140b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284612c41919061358d565b612c4b91906139cf565b905060008184612c5b91906140d9565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca891906140d9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d369190613e8f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc49190613e8f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e64919061307d565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612eae578082015181840152602081019050612e93565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ed682612e74565b612ee08185612e7f565b9350612ef0818560208601612e90565b612ef981612eba565b840191505092915050565b60006020820190508181036000830152612f1e8184612ecb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6582612f3a565b9050919050565b612f7581612f5a565b8114612f8057600080fd5b50565b600081359050612f9281612f6c565b92915050565b6000819050919050565b612fab81612f98565b8114612fb657600080fd5b50565b600081359050612fc881612fa2565b92915050565b60008060408385031215612fe557612fe4612f30565b5b6000612ff385828601612f83565b925050602061300485828601612fb9565b9150509250929050565b60008115159050919050565b6130238161300e565b82525050565b600060208201905061303e600083018461301a565b92915050565b61304d81612f5a565b82525050565b60006020820190506130686000830184613044565b92915050565b61307781612f98565b82525050565b6000602082019050613092600083018461306e565b92915050565b6000602082840312156130ae576130ad612f30565b5b60006130bc84828501612f83565b91505092915050565b6000806000606084860312156130de576130dd612f30565b5b60006130ec86828701612f83565b93505060206130fd86828701612f83565b925050604061310e86828701612fb9565b9150509250925092565b600060ff82169050919050565b61312e81613118565b82525050565b60006020820190506131496000830184613125565b92915050565b60006020828403121561316557613164612f30565b5b600061317384828501612fb9565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131b982612eba565b810181811067ffffffffffffffff821117156131d8576131d7613181565b5b80604052505050565b60006131eb612f26565b90506131f782826131b0565b919050565b600067ffffffffffffffff82111561321757613216613181565b5b602082029050602081019050919050565b600080fd5b600061324061323b846131fc565b6131e1565b9050808382526020820190506020840283018581111561326357613262613228565b5b835b8181101561328c57806132788882612f83565b845260208401935050602081019050613265565b5050509392505050565b600082601f8301126132ab576132aa61317c565b5b81356132bb84826020860161322d565b91505092915050565b6000602082840312156132da576132d9612f30565b5b600082013567ffffffffffffffff8111156132f8576132f7612f35565b5b61330484828501613296565b91505092915050565b60008060006060848603121561332657613325612f30565b5b600061333486828701612f83565b935050602061334586828701612f83565b925050604061335686828701612f83565b9150509250925092565b6000806040838503121561337757613376612f30565b5b600061338585828601612f83565b925050602061339685828601612f83565b9150509250929050565b600080604083850312156133b7576133b6612f30565b5b60006133c585828601612fb9565b92505060206133d685828601612fb9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561346657808604811115613442576134416133e0565b5b60018516156134515780820291505b808102905061345f8561340f565b9450613426565b94509492505050565b60008261347f576001905061353b565b8161348d576000905061353b565b81600181146134a357600281146134ad576134dc565b600191505061353b565b60ff8411156134bf576134be6133e0565b5b8360020a9150848211156134d6576134d56133e0565b5b5061353b565b5060208310610133831016604e8410600b84101617156135115782820a90508381111561350c5761350b6133e0565b5b61353b565b61351e848484600161341c565b92509050818404811115613535576135346133e0565b5b81810290505b9392505050565b600061354d82612f98565b915061355883613118565b92506135857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461346f565b905092915050565b600061359882612f98565b91506135a383612f98565b92508282026135b181612f98565b915082820484148315176135c8576135c76133e0565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613605602083612e7f565b9150613610826135cf565b602082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b6000613671600e83612e7f565b915061367c8261363b565b602082019050919050565b600060208201905081810360008301526136a081613664565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613703602883612e7f565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061376f601783612e7f565b915061377a82613739565b602082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b6000815190506137b481612f6c565b92915050565b6000602082840312156137d0576137cf612f30565b5b60006137de848285016137a5565b91505092915050565b60006040820190506137fc6000830185613044565b6138096020830184613044565b9392505050565b6000819050919050565b6000819050919050565b600061383f61383a61383584613810565b61381a565b612f98565b9050919050565b61384f81613824565b82525050565b600060c08201905061386a6000830189613044565b613877602083018861306e565b6138846040830187613846565b6138916060830186613846565b61389e6080830185613044565b6138ab60a083018461306e565b979650505050505050565b6000815190506138c581612fa2565b92915050565b6000806000606084860312156138e4576138e3612f30565b5b60006138f2868287016138b6565b9350506020613903868287016138b6565b9250506040613914868287016138b6565b9150509250925092565b60006040820190506139336000830185613044565b613940602083018461306e565b9392505050565b6139508161300e565b811461395b57600080fd5b50565b60008151905061396d81613947565b92915050565b60006020828403121561398957613988612f30565b5b60006139978482850161395e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139da82612f98565b91506139e583612f98565b9250826139f5576139f46139a0565b5b828204905092915050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000613a36601783612e7f565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b600081905092915050565b50565b6000613a87600083613a6c565b9150613a9282613a77565b600082019050919050565b6000613aa882613a7a565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613aec82612f98565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b1e57613b1d6133e0565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b85602483612e7f565b9150613b9082613b29565b604082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c17602283612e7f565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca9602583612e7f565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000613d15601c83612e7f565b9150613d2082613cdf565b602082019050919050565b60006020820190508181036000830152613d4481613d08565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000613d81601083612e7f565b9150613d8c82613d4b565b602082019050919050565b60006020820190508181036000830152613db081613d74565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000613ded601683612e7f565b9150613df882613db7565b602082019050919050565b60006020820190508181036000830152613e1c81613de0565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000613e59601783612e7f565b9150613e6482613e23565b602082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b6000613e9a82612f98565b9150613ea583612f98565b9250828201905080821115613ebd57613ebc6133e0565b5b92915050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000613ef9601b83612e7f565b9150613f0482613ec3565b602082019050919050565b60006020820190508181036000830152613f2881613eec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6481612f5a565b82525050565b6000613f768383613f5b565b60208301905092915050565b6000602082019050919050565b6000613f9a82613f2f565b613fa48185613f3a565b9350613faf83613f4b565b8060005b83811015613fe0578151613fc78882613f6a565b9750613fd283613f82565b925050600181019050613fb3565b5085935050505092915050565b600060a082019050614002600083018861306e565b61400f6020830187613846565b81810360408301526140218186613f8f565b90506140306060830185613044565b61403d608083018461306e565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140a3602683612e7f565b91506140ae82614047565b604082019050919050565b600060208201905081810360008301526140d281614096565b9050919050565b60006140e482612f98565b91506140ef83612f98565b9250828203905081811115614107576141066133e0565b5b9291505056fea264697066735822122065aea363364431247fc7cc93b2836c5a06b79936e7f9e19602c0154b89e0177764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063787f4cfa1161010d578063c5cb28a3116100a0578063dd62ed3e1161006f578063dd62ed3e1461069c578063e5d51dc7146106d9578063f2fde38b14610702578063fa84095c1461072b578063fda38a8014610756576101f9565b8063c5cb28a314610608578063cc1776d31461061f578063d3547d4a1461064a578063d7f7385814610673576101f9565b8063a9059cbb116100dc578063a9059cbb14610560578063b19826f41461059d578063c1952304146105b4578063c34b1add146105df576101f9565b8063787f4cfa146104b657806382d088e5146104e15780638da5cb5b1461050a57806395d89b4114610535576101f9565b806349bd5a5e1161018557806351cd7cc31161015457806351cd7cc31461042257806356ca8a411461043957806370a0823114610462578063715018a61461049f576101f9565b806349bd5a5e146103785780634dabe75c146103a35780634e23803f146103ce5780634f7041a5146103f7576101f9565b80631d875776116101c15780631d875776146102bc57806323b872dd146102e5578063313ce567146103225780633297acb41461034d576101f9565b806306fdde03146101fe578063095ea7b3146102295780630ba4797f1461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061021361077f565b6040516102209190612f04565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190612fce565b6107bc565b60405161025d9190613029565b60405180910390f35b34801561027257600080fd5b5061027b6107da565b6040516102889190613053565b60405180910390f35b34801561029d57600080fd5b506102a6610800565b6040516102b3919061307d565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613098565b610824565b005b3480156102f157600080fd5b5061030c600480360381019061030791906130c5565b610a24565b6040516103199190613029565b60405180910390f35b34801561032e57600080fd5b50610337610b44565b6040516103449190613134565b60405180910390f35b34801561035957600080fd5b50610362610b4d565b60405161036f919061307d565b60405180910390f35b34801561038457600080fd5b5061038d610b53565b60405161039a9190613053565b60405180910390f35b3480156103af57600080fd5b506103b8610b79565b6040516103c59190613053565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190613098565b610b9f565b005b34801561040357600080fd5b5061040c610c7c565b604051610419919061307d565b60405180910390f35b34801561042e57600080fd5b50610437610c82565b005b34801561044557600080fd5b50610460600480360381019061045b919061314f565b6111a6565b005b34801561046e57600080fd5b5061048960048036038101906104849190613098565b611272565b604051610496919061307d565b60405180910390f35b3480156104ab57600080fd5b506104b46112bb565b005b3480156104c257600080fd5b506104cb61140e565b6040516104d8919061307d565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061314f565b611414565b005b34801561051657600080fd5b5061051f6114f8565b60405161052c9190613053565b60405180910390f35b34801561054157600080fd5b5061054a611521565b6040516105579190612f04565b60405180910390f35b34801561056c57600080fd5b5061058760048036038101906105829190612fce565b61155e565b6040516105949190613029565b60405180910390f35b3480156105a957600080fd5b506105b261157c565b005b3480156105c057600080fd5b506105c9611689565b6040516105d6919061307d565b60405180910390f35b3480156105eb57600080fd5b50610606600480360381019061060191906132c4565b61168f565b005b34801561061457600080fd5b5061061d611917565b005b34801561062b57600080fd5b506106346119f4565b604051610641919061307d565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c919061330d565b6119fa565b005b34801561067f57600080fd5b5061069a60048036038101906106959190613098565b611b57565b005b3480156106a857600080fd5b506106c360048036038101906106be9190613360565b611c34565b6040516106d0919061307d565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb91906133a0565b611cbb565b005b34801561070e57600080fd5b5061072960048036038101906107249190613098565b611db5565b005b34801561073757600080fd5b50610740611e56565b60405161074d9190613053565b60405180910390f35b34801561076257600080fd5b5061077d60048036038101906107789190613098565b611e7c565b005b60606040518060400160405280600f81526020017f53656e736f722050726f746f636f6c0000000000000000000000000000000000815250905090565b60006107d06107c9611f59565b8484611f61565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6108109190613542565b633b9aca0061081f919061358d565b905090565b61082c611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b09061361b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156109435750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561099d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390613687565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000610a3184848461212a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7c611f59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b385782811015610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90613719565b60405180910390fd5b610b3785610b2f611f59565b858403611f61565b5b60019150509392505050565b60006012905090565b600a5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ba7611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b9061361b565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60065481565b610c8a611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e9061361b565b60405180910390fd5b601060149054906101000a900460ff1615610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613785565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d91906137ba565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906137ba565b6040518363ffffffff1660e01b8152600401610f179291906137e7565b6020604051808303816000875af1158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906137ba565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fe330600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610fcf9190613542565b633b9aca00610fde919061358d565b611f61565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c30611272565b6000806110376114f8565b426040518863ffffffff1660e01b815260040161105996959493929190613855565b60606040518083038185885af1158015611077573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061109c91906138cb565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161113e92919061391e565b6020604051808303816000875af115801561115d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111819190613973565b506001601060146101000a81548160ff02191690831515021790555043600581905550565b6111ae611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112329061361b565b60405180910390fd5b600061124630611272565b9050600060648284611258919061358d565b61126291906139cf565b905061126d816126bc565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c3611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113479061361b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b61141c611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a09061361b565b60405180910390fd5b6008548111156114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613a4c565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53454e534f520000000000000000000000000000000000000000000000000000815250905090565b600061157261156b611f59565b848461212a565b6001905092915050565b611584611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116089061361b565b60405180910390fd5b600061161b6114f8565b73ffffffffffffffffffffffffffffffffffffffff164760405161163e90613a9d565b60006040518083038185875af1925050503d806000811461167b576040519150601f19603f3d011682016040523d82523d6000602084013e611680565b606091505b50508091505050565b600b5481565b611697611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b9061361b565b60405180910390fd5b60005b8151811015611913573073ffffffffffffffffffffffffffffffffffffffff1682828151811061175a57611759613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156117ee5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106117cd576117cc613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156118625750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061184157611840613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b6118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890613687565b60405180910390fd5b6001600460008484815181106118ba576118b9613ab2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061190b90613ae1565b915050611727565b5050565b61191f611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061361b565b60405180910390fd5b6012600a6119ba9190613542565b633b9aca006119c9919061358d565b600a819055506012600a6119dd9190613542565b633b9aca006119ec919061358d565b600b81905550565b60075481565b611a02611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a869061361b565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611b5f611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be39061361b565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc3611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d479061361b565b60405180910390fd5b6006548211158015611d6457506007548111155b611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613a4c565b60405180910390fd5b81600681905550806007819055505050565b611dbd611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e419061361b565b60405180910390fd5b611e5381612b05565b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e84611f59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061361b565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613b9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361203f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203690613c2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161211d919061307d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613cbf565b60405180910390fd5b600081116121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613d2b565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561226b57506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156126aa57601060149054906101000a900460ff166122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b690613d97565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613e03565b60405180910390fd5b600a54821115612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d90613e6f565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612412575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561247057600b548261242485611272565b61242e9190613e8f565b111561246f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246690613f0f565b60405180910390fd5b5b600360055461247f9190613e8f565b4310156124ef57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146124e25760466124e5565b60285b60ff1690506126a9565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361254e5760065490506126a8565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ef5760006125ae30611272565b9050619c408111156125e45760006009549050838211156125cd578391505b808211156125d9578091505b6125e2826126bc565b505b6007549150506126a7565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561269b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126a65760085490505b5b5b5b5b6126b684848484612c31565b50505050565b6000600267ffffffffffffffff8111156126d9576126d8613181565b5b6040519080825280602002602001820160405280156127075781602001602082028036833780820191505090505b509050308160008151811061271f5761271e613ab2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ea91906137ba565b816001815181106127fe576127fd613ab2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286530600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f61565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128c9959493929190613fed565b600060405180830381600087803b1580156128e357600080fd5b505af11580156128f7573d6000803e3d6000fd5b505050506000806064603c4761290d919061358d565b61291791906139cf565b90506000606460144761292a919061358d565b61293491906139cf565b905060006064601447612947919061358d565b61295191906139cf565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161299990613a9d565b60006040518083038185875af1925050503d80600081146129d6576040519150601f19603f3d011682016040523d82523d6000602084013e6129db565b606091505b505080945050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612a2790613a9d565b60006040518083038185875af1925050503d8060008114612a64576040519150601f19603f3d011682016040523d82523d6000602084013e612a69565b606091505b505080945050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ab590613a9d565b60006040518083038185875af1925050503d8060008114612af2576040519150601f19603f3d011682016040523d82523d6000602084013e612af7565b606091505b505080945050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b906140b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284612c41919061358d565b612c4b91906139cf565b905060008184612c5b91906140d9565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca891906140d9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d369190613e8f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc49190613e8f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e64919061307d565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612eae578082015181840152602081019050612e93565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ed682612e74565b612ee08185612e7f565b9350612ef0818560208601612e90565b612ef981612eba565b840191505092915050565b60006020820190508181036000830152612f1e8184612ecb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6582612f3a565b9050919050565b612f7581612f5a565b8114612f8057600080fd5b50565b600081359050612f9281612f6c565b92915050565b6000819050919050565b612fab81612f98565b8114612fb657600080fd5b50565b600081359050612fc881612fa2565b92915050565b60008060408385031215612fe557612fe4612f30565b5b6000612ff385828601612f83565b925050602061300485828601612fb9565b9150509250929050565b60008115159050919050565b6130238161300e565b82525050565b600060208201905061303e600083018461301a565b92915050565b61304d81612f5a565b82525050565b60006020820190506130686000830184613044565b92915050565b61307781612f98565b82525050565b6000602082019050613092600083018461306e565b92915050565b6000602082840312156130ae576130ad612f30565b5b60006130bc84828501612f83565b91505092915050565b6000806000606084860312156130de576130dd612f30565b5b60006130ec86828701612f83565b93505060206130fd86828701612f83565b925050604061310e86828701612fb9565b9150509250925092565b600060ff82169050919050565b61312e81613118565b82525050565b60006020820190506131496000830184613125565b92915050565b60006020828403121561316557613164612f30565b5b600061317384828501612fb9565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131b982612eba565b810181811067ffffffffffffffff821117156131d8576131d7613181565b5b80604052505050565b60006131eb612f26565b90506131f782826131b0565b919050565b600067ffffffffffffffff82111561321757613216613181565b5b602082029050602081019050919050565b600080fd5b600061324061323b846131fc565b6131e1565b9050808382526020820190506020840283018581111561326357613262613228565b5b835b8181101561328c57806132788882612f83565b845260208401935050602081019050613265565b5050509392505050565b600082601f8301126132ab576132aa61317c565b5b81356132bb84826020860161322d565b91505092915050565b6000602082840312156132da576132d9612f30565b5b600082013567ffffffffffffffff8111156132f8576132f7612f35565b5b61330484828501613296565b91505092915050565b60008060006060848603121561332657613325612f30565b5b600061333486828701612f83565b935050602061334586828701612f83565b925050604061335686828701612f83565b9150509250925092565b6000806040838503121561337757613376612f30565b5b600061338585828601612f83565b925050602061339685828601612f83565b9150509250929050565b600080604083850312156133b7576133b6612f30565b5b60006133c585828601612fb9565b92505060206133d685828601612fb9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561346657808604811115613442576134416133e0565b5b60018516156134515780820291505b808102905061345f8561340f565b9450613426565b94509492505050565b60008261347f576001905061353b565b8161348d576000905061353b565b81600181146134a357600281146134ad576134dc565b600191505061353b565b60ff8411156134bf576134be6133e0565b5b8360020a9150848211156134d6576134d56133e0565b5b5061353b565b5060208310610133831016604e8410600b84101617156135115782820a90508381111561350c5761350b6133e0565b5b61353b565b61351e848484600161341c565b92509050818404811115613535576135346133e0565b5b81810290505b9392505050565b600061354d82612f98565b915061355883613118565b92506135857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461346f565b905092915050565b600061359882612f98565b91506135a383612f98565b92508282026135b181612f98565b915082820484148315176135c8576135c76133e0565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613605602083612e7f565b9150613610826135cf565b602082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b6000613671600e83612e7f565b915061367c8261363b565b602082019050919050565b600060208201905081810360008301526136a081613664565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613703602883612e7f565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061376f601783612e7f565b915061377a82613739565b602082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b6000815190506137b481612f6c565b92915050565b6000602082840312156137d0576137cf612f30565b5b60006137de848285016137a5565b91505092915050565b60006040820190506137fc6000830185613044565b6138096020830184613044565b9392505050565b6000819050919050565b6000819050919050565b600061383f61383a61383584613810565b61381a565b612f98565b9050919050565b61384f81613824565b82525050565b600060c08201905061386a6000830189613044565b613877602083018861306e565b6138846040830187613846565b6138916060830186613846565b61389e6080830185613044565b6138ab60a083018461306e565b979650505050505050565b6000815190506138c581612fa2565b92915050565b6000806000606084860312156138e4576138e3612f30565b5b60006138f2868287016138b6565b9350506020613903868287016138b6565b9250506040613914868287016138b6565b9150509250925092565b60006040820190506139336000830185613044565b613940602083018461306e565b9392505050565b6139508161300e565b811461395b57600080fd5b50565b60008151905061396d81613947565b92915050565b60006020828403121561398957613988612f30565b5b60006139978482850161395e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139da82612f98565b91506139e583612f98565b9250826139f5576139f46139a0565b5b828204905092915050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000613a36601783612e7f565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b600081905092915050565b50565b6000613a87600083613a6c565b9150613a9282613a77565b600082019050919050565b6000613aa882613a7a565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613aec82612f98565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b1e57613b1d6133e0565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b85602483612e7f565b9150613b9082613b29565b604082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c17602283612e7f565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca9602583612e7f565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000613d15601c83612e7f565b9150613d2082613cdf565b602082019050919050565b60006020820190508181036000830152613d4481613d08565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000613d81601083612e7f565b9150613d8c82613d4b565b602082019050919050565b60006020820190508181036000830152613db081613d74565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000613ded601683612e7f565b9150613df882613db7565b602082019050919050565b60006020820190508181036000830152613e1c81613de0565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000613e59601783612e7f565b9150613e6482613e23565b602082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b6000613e9a82612f98565b9150613ea583612f98565b9250828201905080821115613ebd57613ebc6133e0565b5b92915050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000613ef9601b83612e7f565b9150613f0482613ec3565b602082019050919050565b60006020820190508181036000830152613f2881613eec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6481612f5a565b82525050565b6000613f768383613f5b565b60208301905092915050565b6000602082019050919050565b6000613f9a82613f2f565b613fa48185613f3a565b9350613faf83613f4b565b8060005b83811015613fe0578151613fc78882613f6a565b9750613fd283613f82565b925050600181019050613fb3565b5085935050505092915050565b600060a082019050614002600083018861306e565b61400f6020830187613846565b81810360408301526140218186613f8f565b90506140306060830185613044565b61403d608083018461306e565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140a3602683612e7f565b91506140ae82614047565b604082019050919050565b600060208201905081810360008301526140d281614096565b9050919050565b60006140e482612f98565b91506140ef83612f98565b9250828203905081811115614107576141066133e0565b5b9291505056fea264697066735822122065aea363364431247fc7cc93b2836c5a06b79936e7f9e19602c0154b89e0177764736f6c63430008130033

Deployed Bytecode Sourcemap

2734:9166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4358:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5192:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3842:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4635:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7384:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5360:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4544:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3499:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3748:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3812:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6984:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3157:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:685;;;;;;;;;;;;;:::i;:::-;;10803:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4743:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1786:148;;;;;;;;;;;;;:::i;:::-;;3224:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1218:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4869:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10656:138;;;;;;;;;;;;;:::i;:::-;;3541:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7753:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8115:115;;;;;;;;;;;;;:::i;:::-;;3190:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7212:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7095:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5042:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8238:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1432:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3783:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7640:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4358:83;4395:13;4428:5;;;;;;;;;;;;;;;;;4421:12;;4358:83;:::o;5192:160::-;5267:4;5283:39;5292:12;:10;:12::i;:::-;5306:7;5315:6;5283:8;:39::i;:::-;5340:4;5333:11;;5192:160;;;;:::o;3842:22::-;;;;;;;;;;;;;:::o;4635:100::-;4688:7;3107:2;3311;:13;;;;:::i;:::-;3298:10;:26;;;;:::i;:::-;4708:19;;4635:100;:::o;7384:248::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7485:4:::1;7466:24;;:7;:24;;;;:61;;;;;7513:13;;;;;;;;;;;7494:33;;:7;:33;;;;7466:61;:100;;;;;7550:15;;;;;;;;;;;7531:35;;:7;:35;;;;7466:100;7458:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;7623:1;7596:15;:24;7612:7;7596:24;;;;;;;;;;;;;;;:28;;;;7384:248:::0;:::o;5360:578::-;5458:4;5475:36;5485:6;5493:9;5504:6;5475:9;:36::i;:::-;5524:24;5551:11;:19;5563:6;5551:19;;;;;;;;;;;;;;;:33;5571:12;:10;:12::i;:::-;5551:33;;;;;;;;;;;;;;;;5524:60;;5618:17;5598:16;:37;5595:314;;5699:6;5679:16;:26;;5653:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5825:57;5834:6;5842:12;:10;:12::i;:::-;5875:6;5856:16;:25;5825:8;:57::i;:::-;5595:314;5926:4;5919:11;;;5360:578;;;;;:::o;4544:83::-;4585:5;3107:2;4603:16;;4544:83;:::o;3499:35::-;;;;:::o;3748:28::-;;;;;;;;;;;;;:::o;3812:23::-;;;;;;;;;;;;;:::o;6984:103::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7078:1:::1;7055:12;:20;7068:6;7055:20;;;;;;;;;;;;;;;:24;;;;6984:103:::0;:::o;3157:26::-;;;;:::o;6291:685::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6353:6:::1;;;;;;;;;;;6352:7;6344:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6434;6397:15;;:80;;;;;;;;;;;;;;;;;;6522:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6504:55;;;6568:4;6575:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6504:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6488:13;;:110;;;;;;;;;;;;;;;;;;6609:63;6626:4;6641:15;;;;;;;;;;;3107:2;3311;:13;;;;:::i;:::-;3298:10;:26;;;;:::i;:::-;6609:8;:63::i;:::-;6693:15;;;;;;;;;;;:31;;;6732:21;6763:4;6769:24;6787:4;6769:9;:24::i;:::-;6794:1;6796::::0;6798:7:::1;:5;:7::i;:::-;6806:15;6693:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6840:13;;;;;;;;;;;6833:29;;;6871:15;;;;;;;;;;;6889:14;6833:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6924:4;6915:6;;:13;;;;;;;;;;;;;;;;;;6956:12;6939:14;:29;;;;6291:685::o:0;10803:219::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10870:23:::1;10896:24;10914:4;10896:9;:24::i;:::-;10870:50;;10931:15;10975:3;10958:15;10950:7;:23;;;;:::i;:::-;10949:29;;;;:::i;:::-;10931:47;;10989:25;11006:7;10989:16;:25::i;:::-;10859:163;;10803:219:::0;:::o;4743:118::-;4809:7;4836:8;:17;4845:7;4836:17;;;;;;;;;;;;;;;;4829:24;;4743:118;;;:::o;1786:148::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1893:1:::1;1856:40;;1877:6;::::0;::::1;;;;;;;;1856:40;;;;;;;;;;;;1924:1;1907:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1786:148::o:0;3224:25::-;;;;:::o;8484:149::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8567:5:::1;;8557:6;:15;;8549:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8619:6;8611:5;:14;;;;8484:149:::0;:::o;1218:79::-;1256:7;1283:6;;;;;;;;;;;1276:13;;1218:79;:::o;4449:87::-;4488:13;4521:7;;;;;;;;;;;;;;;;;4514:14;;4449:87;:::o;4869:165::-;4946:4;4962:42;4972:12;:10;:12::i;:::-;4986:9;4997:6;4962:9;:42::i;:::-;5022:4;5015:11;;4869:165;;;;:::o;10656:138::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10703:12:::1;10740:7;:5;:7::i;:::-;:12;;10760:21;10740:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10726:60;;;;;10692:102;10656:138::o:0;3541:36::-;;;;:::o;7753:354::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7846:9:::1;7841:259;7865:8;:15;7861:1;:19;7841:259;;;7933:4;7910:28;;:8;7919:1;7910:11;;;;;;;;:::i;:::-;;;;;;;;:28;;;;:69;;;;;7965:13;;;;;;;;;;;7942:37;;:8;7951:1;7942:11;;;;;;;;:::i;:::-;;;;;;;;:37;;;;7910:69;:112;;;;;8006:15;;;;;;;;;;;7983:39;;:8;7992:1;7983:11;;;;;;;;:::i;:::-;;;;;;;;:39;;;;7910:112;7902:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;8087:1;8056:15;:28;8072:8;8081:1;8072:11;;;;;;;;:::i;:::-;;;;;;;;8056:28;;;;;;;;;;;;;;;:32;;;;7882:3;;;;;:::i;:::-;;;;7841:259;;;;7753:354:::0;:::o;8115:115::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3107:2:::1;3311;:13;;;;:::i;:::-;3298:10;:26;;;;:::i;:::-;8170:5;:20;;;;3107:2;3311;:13;;;;:::i;:::-;3298:10;:26;;;;:::i;:::-;8201:6;:21;;;;8115:115::o:0;3190:27::-;;;;:::o;7212:164::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7316:3:::1;7307:6;;:12;;;;;;;;;;;;;;;;;;7340:3;7330:7;;:13;;;;;;;;;;;;;;;;;;7365:3;7354:8;;:14;;;;;;;;;;;;;;;;;;7212:164:::0;;;:::o;7095:109::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7195:1:::1;7172:12;:20;7185:6;7172:20;;;;;;;;;;;;;;;:24;;;;7095:109:::0;:::o;5042:142::-;5123:7;5149:11;:18;5161:5;5149:18;;;;;;;;;;;;;;;:27;5168:7;5149:27;;;;;;;;;;;;;;;;5142:34;;5042:142;;;;:::o;8238:238::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8349:6:::1;;8336:9;:19;;:44;;;;;8373:7;;8359:10;:21;;8336:44;8328:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8428:9;8419:6;:18;;;;8458:10;8448:7;:20;;;;8238:238:::0;;:::o;1432:109::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1505:28:::1;1524:8;1505:18;:28::i;:::-;1432:109:::0;:::o;3783:21::-;;;;;;;;;;;;;:::o;7640:105::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7736:1:::1;7709:15;:24;7725:7;7709:24;;;;;;;;;;;;;;;:28;;;;7640:105:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;5946:335::-;6056:1;6039:19;;:5;:19;;;6031:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6137:1;6118:21;;:7;:21;;;6110:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6219:6;6189:11;:18;6201:5;6189:18;;;;;;;;;;;;;;;:27;6208:7;6189:27;;;;;;;;;;;;;;;:36;;;;6257:7;6241:32;;6250:5;6241:32;;;6266:6;6241:32;;;;;;:::i;:::-;;;;;;;;5946:335;;;:::o;9083:1565::-;9187:1;9171:18;;:4;:18;;;9163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9259:1;9250:6;:10;9242:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9304:12;9357:1;9335:12;:18;9348:4;9335:18;;;;;;;;;;;;;;;;:23;:48;;;;;9382:1;9362:12;:16;9375:2;9362:16;;;;;;;;;;;;;;;;:21;9335:48;9331:1261;;;9417:6;;;;;;;;;;;9409:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;9492:1;9467:15;:21;9483:4;9467:21;;;;;;;;;;;;;;;;:26;9459:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9553:5;;9543:6;:15;;9535:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9611:13;;;;;;;;;;;9605:19;;:2;:19;;;;:44;;;;;9642:6;9628:21;;:2;:21;;;;9605:44;9601:122;;;9685:6;;9675;9659:13;9669:2;9659:9;:13::i;:::-;:22;;;;:::i;:::-;:32;;9651:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9601:122;9774:1;9757:14;;:18;;;;:::i;:::-;9742:12;:33;9738:843;;;9812:13;;;;;;;;;;;9804:21;;:4;:21;;;9803:33;;9834:2;9803:33;;;9829:2;9803:33;9796:40;;;;9738:843;;;9889:13;;;;;;;;;;;9881:21;;:4;:21;;;9877:689;;9934:6;;9927:13;;9877:689;;;9976:13;;;;;;;;;;;9970:19;;:2;:19;;;9966:600;;10014:20;10037:24;10055:4;10037:9;:24::i;:::-;10014:47;;3439:5;10088:12;:32;10084:315;;;10150:12;10165:7;;10150:22;;10218:6;10203:12;:21;10199:48;;;10241:6;10226:21;;10199:48;10293:4;10278:12;:19;10274:44;;;10314:4;10299:19;;10274:44;10345:30;10362:12;10345:16;:30::i;:::-;10122:277;10084:315;10428:7;;10421:14;;9991:464;9966:600;;;10471:13;;;;;;;;;;;10465:19;;:2;:19;;;;:44;;;;;10496:13;;;;;;;;;;;10488:21;;:4;:21;;;;10465:44;10461:105;;;10541:5;;10534:12;;10461:105;9966:600;9877:689;9738:843;9331:1261;10602:38;10617:4;10623:2;10627:6;10635:4;10602:14;:38::i;:::-;9152:1496;9083:1565;;;:::o;11030:832::-;11096:21;11134:1;11120:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11096:40;;11165:4;11147;11152:1;11147:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11191:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11181:4;11186:1;11181:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11224:62;11241:4;11256:15;;;;;;;;;;;11274:11;11224:8;:62::i;:::-;11297:15;;;;;;;;;;;:66;;;11378:11;11404:1;11420:4;11447;11467:15;11297:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11504:12;11527:14;11570:3;11567:2;11544:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;11527:46;;11584:13;11626:3;11623:2;11600:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;11584:45;;11640:13;11682:3;11679:2;11656:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;11640:45;;11712:7;;;;;;;;;;;:12;;11732:5;11712:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11698:44;;;;;11767:8;;;;;;;;;;;:13;;11788:5;11767:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11753:45;;;;;11823:6;;;;;;;;;;;:12;;11843:6;11823:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11809:45;;;;;11085:777;;;;;11030:832;:::o;1549:229::-;1643:1;1623:22;;:8;:22;;;1615:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1733:8;1704:38;;1725:6;;;;;;;;;;1704:38;;;;;;;;;;;;1762:8;1753:6;;:17;;;;;;;;;;;;;;;;;;1549:229;:::o;8641:434::-;8740:17;8778:3;8770:4;8761:6;:13;;;;:::i;:::-;8760:21;;;;:::i;:::-;8740:41;;8792:22;8826:9;8817:6;:18;;;;:::i;:::-;8792:43;;8882:6;8865:8;:14;8874:4;8865:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;8848:8;:14;8857:4;8848:14;;;;;;;;;;;;;;;:40;;;;8929:14;8914:8;:12;8923:2;8914:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8899:8;:12;8908:2;8899:12;;;;;;;;;;;;;;;:44;;;;9006:9;8980:8;:23;8997:4;8980:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;8954:8;:23;8971:4;8954:23;;;;;;;;;;;;;;;:61;;;;9048:2;9033:34;;9042:4;9033:34;;;9052:14;9033:34;;;;;;:::i;:::-;;;;;;;;8729:346;;8641:434;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:329::-;4209:6;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4150:329;;;;:::o;4485:619::-;4562:6;4570;4578;4627:2;4615:9;4606:7;4602:23;4598:32;4595:119;;;4633:79;;:::i;:::-;4595:119;4753:1;4778:53;4823:7;4814:6;4803:9;4799:22;4778:53;:::i;:::-;4768:63;;4724:117;4880:2;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4851:118;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;4485:619;;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:180;6046:77;6043:1;6036:88;6143:4;6140:1;6133:15;6167:4;6164:1;6157:15;6184:281;6267:27;6289:4;6267:27;:::i;:::-;6259:6;6255:40;6397:6;6385:10;6382:22;6361:18;6349:10;6346:34;6343:62;6340:88;;;6408:18;;:::i;:::-;6340:88;6448:10;6444:2;6437:22;6227:238;6184:281;;:::o;6471:129::-;6505:6;6532:20;;:::i;:::-;6522:30;;6561:33;6589:4;6581:6;6561:33;:::i;:::-;6471:129;;;:::o;6606:311::-;6683:4;6773:18;6765:6;6762:30;6759:56;;;6795:18;;:::i;:::-;6759:56;6845:4;6837:6;6833:17;6825:25;;6905:4;6899;6895:15;6887:23;;6606:311;;;:::o;6923:117::-;7032:1;7029;7022:12;7063:710;7159:5;7184:81;7200:64;7257:6;7200:64;:::i;:::-;7184:81;:::i;:::-;7175:90;;7285:5;7314:6;7307:5;7300:21;7348:4;7341:5;7337:16;7330:23;;7401:4;7393:6;7389:17;7381:6;7377:30;7430:3;7422:6;7419:15;7416:122;;;7449:79;;:::i;:::-;7416:122;7564:6;7547:220;7581:6;7576:3;7573:15;7547:220;;;7656:3;7685:37;7718:3;7706:10;7685:37;:::i;:::-;7680:3;7673:50;7752:4;7747:3;7743:14;7736:21;;7623:144;7607:4;7602:3;7598:14;7591:21;;7547:220;;;7551:21;7165:608;;7063:710;;;;;:::o;7796:370::-;7867:5;7916:3;7909:4;7901:6;7897:17;7893:27;7883:122;;7924:79;;:::i;:::-;7883:122;8041:6;8028:20;8066:94;8156:3;8148:6;8141:4;8133:6;8129:17;8066:94;:::i;:::-;8057:103;;7873:293;7796:370;;;;:::o;8172:539::-;8256:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8459:1;8448:9;8444:17;8431:31;8489:18;8481:6;8478:30;8475:117;;;8511:79;;:::i;:::-;8475:117;8616:78;8686:7;8677:6;8666:9;8662:22;8616:78;:::i;:::-;8606:88;;8402:302;8172:539;;;;:::o;8717:619::-;8794:6;8802;8810;8859:2;8847:9;8838:7;8834:23;8830:32;8827:119;;;8865:79;;:::i;:::-;8827:119;8985:1;9010:53;9055:7;9046:6;9035:9;9031:22;9010:53;:::i;:::-;9000:63;;8956:117;9112:2;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9083:118;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8717:619;;;;;:::o;9342:474::-;9410:6;9418;9467:2;9455:9;9446:7;9442:23;9438:32;9435:119;;;9473:79;;:::i;:::-;9435:119;9593:1;9618:53;9663:7;9654:6;9643:9;9639:22;9618:53;:::i;:::-;9608:63;;9564:117;9720:2;9746:53;9791:7;9782:6;9771:9;9767:22;9746:53;:::i;:::-;9736:63;;9691:118;9342:474;;;;;:::o;9822:::-;9890:6;9898;9947:2;9935:9;9926:7;9922:23;9918:32;9915:119;;;9953:79;;:::i;:::-;9915:119;10073:1;10098:53;10143:7;10134:6;10123:9;10119:22;10098:53;:::i;:::-;10088:63;;10044:117;10200:2;10226:53;10271:7;10262:6;10251:9;10247:22;10226:53;:::i;:::-;10216:63;;10171:118;9822:474;;;;;:::o;10302:180::-;10350:77;10347:1;10340:88;10447:4;10444:1;10437:15;10471:4;10468:1;10461:15;10488:102;10530:8;10577:5;10574:1;10570:13;10549:34;;10488:102;;;:::o;10596:848::-;10657:5;10664:4;10688:6;10679:15;;10712:5;10703:14;;10726:712;10747:1;10737:8;10734:15;10726:712;;;10842:4;10837:3;10833:14;10827:4;10824:24;10821:50;;;10851:18;;:::i;:::-;10821:50;10901:1;10891:8;10887:16;10884:451;;;11316:4;11309:5;11305:16;11296:25;;10884:451;11366:4;11360;11356:15;11348:23;;11396:32;11419:8;11396:32;:::i;:::-;11384:44;;10726:712;;;10596:848;;;;;;;:::o;11450:1073::-;11504:5;11695:8;11685:40;;11716:1;11707:10;;11718:5;;11685:40;11744:4;11734:36;;11761:1;11752:10;;11763:5;;11734:36;11830:4;11878:1;11873:27;;;;11914:1;11909:191;;;;11823:277;;11873:27;11891:1;11882:10;;11893:5;;;11909:191;11954:3;11944:8;11941:17;11938:43;;;11961:18;;:::i;:::-;11938:43;12010:8;12007:1;12003:16;11994:25;;12045:3;12038:5;12035:14;12032:40;;;12052:18;;:::i;:::-;12032:40;12085:5;;;11823:277;;12209:2;12199:8;12196:16;12190:3;12184:4;12181:13;12177:36;12159:2;12149:8;12146:16;12141:2;12135:4;12132:12;12128:35;12112:111;12109:246;;;12265:8;12259:4;12255:19;12246:28;;12300:3;12293:5;12290:14;12287:40;;;12307:18;;:::i;:::-;12287:40;12340:5;;12109:246;12380:42;12418:3;12408:8;12402:4;12399:1;12380:42;:::i;:::-;12365:57;;;;12454:4;12449:3;12445:14;12438:5;12435:25;12432:51;;;12463:18;;:::i;:::-;12432:51;12512:4;12505:5;12501:16;12492:25;;11450:1073;;;;;;:::o;12529:281::-;12587:5;12611:23;12629:4;12611:23;:::i;:::-;12603:31;;12655:25;12671:8;12655:25;:::i;:::-;12643:37;;12699:104;12736:66;12726:8;12720:4;12699:104;:::i;:::-;12690:113;;12529:281;;;;:::o;12816:410::-;12856:7;12879:20;12897:1;12879:20;:::i;:::-;12874:25;;12913:20;12931:1;12913:20;:::i;:::-;12908:25;;12968:1;12965;12961:9;12990:30;13008:11;12990:30;:::i;:::-;12979:41;;13169:1;13160:7;13156:15;13153:1;13150:22;13130:1;13123:9;13103:83;13080:139;;13199:18;;:::i;:::-;13080:139;12864:362;12816:410;;;;:::o;13232:182::-;13372:34;13368:1;13360:6;13356:14;13349:58;13232:182;:::o;13420:366::-;13562:3;13583:67;13647:2;13642:3;13583:67;:::i;:::-;13576:74;;13659:93;13748:3;13659:93;:::i;:::-;13777:2;13772:3;13768:12;13761:19;;13420:366;;;:::o;13792:419::-;13958:4;13996:2;13985:9;13981:18;13973:26;;14045:9;14039:4;14035:20;14031:1;14020:9;14016:17;14009:47;14073:131;14199:4;14073:131;:::i;:::-;14065:139;;13792:419;;;:::o;14217:164::-;14357:16;14353:1;14345:6;14341:14;14334:40;14217:164;:::o;14387:366::-;14529:3;14550:67;14614:2;14609:3;14550:67;:::i;:::-;14543:74;;14626:93;14715:3;14626:93;:::i;:::-;14744:2;14739:3;14735:12;14728:19;;14387:366;;;:::o;14759:419::-;14925:4;14963:2;14952:9;14948:18;14940:26;;15012:9;15006:4;15002:20;14998:1;14987:9;14983:17;14976:47;15040:131;15166:4;15040:131;:::i;:::-;15032:139;;14759:419;;;:::o;15184:227::-;15324:34;15320:1;15312:6;15308:14;15301:58;15393:10;15388:2;15380:6;15376:15;15369:35;15184:227;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:173::-;16354:25;16350:1;16342:6;16338:14;16331:49;16214:173;:::o;16393:366::-;16535:3;16556:67;16620:2;16615:3;16556:67;:::i;:::-;16549:74;;16632:93;16721:3;16632:93;:::i;:::-;16750:2;16745:3;16741:12;16734:19;;16393:366;;;:::o;16765:419::-;16931:4;16969:2;16958:9;16954:18;16946:26;;17018:9;17012:4;17008:20;17004:1;16993:9;16989:17;16982:47;17046:131;17172:4;17046:131;:::i;:::-;17038:139;;16765:419;;;:::o;17190:143::-;17247:5;17278:6;17272:13;17263:22;;17294:33;17321:5;17294:33;:::i;:::-;17190:143;;;;:::o;17339:351::-;17409:6;17458:2;17446:9;17437:7;17433:23;17429:32;17426:119;;;17464:79;;:::i;:::-;17426:119;17584:1;17609:64;17665:7;17656:6;17645:9;17641:22;17609:64;:::i;:::-;17599:74;;17555:128;17339:351;;;;:::o;17696:332::-;17817:4;17855:2;17844:9;17840:18;17832:26;;17868:71;17936:1;17925:9;17921:17;17912:6;17868:71;:::i;:::-;17949:72;18017:2;18006:9;18002:18;17993:6;17949:72;:::i;:::-;17696:332;;;;;:::o;18034:85::-;18079:7;18108:5;18097:16;;18034:85;;;:::o;18125:60::-;18153:3;18174:5;18167:12;;18125:60;;;:::o;18191:158::-;18249:9;18282:61;18300:42;18309:32;18335:5;18309:32;:::i;:::-;18300:42;:::i;:::-;18282:61;:::i;:::-;18269:74;;18191:158;;;:::o;18355:147::-;18450:45;18489:5;18450:45;:::i;:::-;18445:3;18438:58;18355:147;;:::o;18508:807::-;18757:4;18795:3;18784:9;18780:19;18772:27;;18809:71;18877:1;18866:9;18862:17;18853:6;18809:71;:::i;:::-;18890:72;18958:2;18947:9;18943:18;18934:6;18890:72;:::i;:::-;18972:80;19048:2;19037:9;19033:18;19024:6;18972:80;:::i;:::-;19062;19138:2;19127:9;19123:18;19114:6;19062:80;:::i;:::-;19152:73;19220:3;19209:9;19205:19;19196:6;19152:73;:::i;:::-;19235;19303:3;19292:9;19288:19;19279:6;19235:73;:::i;:::-;18508:807;;;;;;;;;:::o;19321:143::-;19378:5;19409:6;19403:13;19394:22;;19425:33;19452:5;19425:33;:::i;:::-;19321:143;;;;:::o;19470:663::-;19558:6;19566;19574;19623:2;19611:9;19602:7;19598:23;19594:32;19591:119;;;19629:79;;:::i;:::-;19591:119;19749:1;19774:64;19830:7;19821:6;19810:9;19806:22;19774:64;:::i;:::-;19764:74;;19720:128;19887:2;19913:64;19969:7;19960:6;19949:9;19945:22;19913:64;:::i;:::-;19903:74;;19858:129;20026:2;20052:64;20108:7;20099:6;20088:9;20084:22;20052:64;:::i;:::-;20042:74;;19997:129;19470:663;;;;;:::o;20139:332::-;20260:4;20298:2;20287:9;20283:18;20275:26;;20311:71;20379:1;20368:9;20364:17;20355:6;20311:71;:::i;:::-;20392:72;20460:2;20449:9;20445:18;20436:6;20392:72;:::i;:::-;20139:332;;;;;:::o;20477:116::-;20547:21;20562:5;20547:21;:::i;:::-;20540:5;20537:32;20527:60;;20583:1;20580;20573:12;20527:60;20477:116;:::o;20599:137::-;20653:5;20684:6;20678:13;20669:22;;20700:30;20724:5;20700:30;:::i;:::-;20599:137;;;;:::o;20742:345::-;20809:6;20858:2;20846:9;20837:7;20833:23;20829:32;20826:119;;;20864:79;;:::i;:::-;20826:119;20984:1;21009:61;21062:7;21053:6;21042:9;21038:22;21009:61;:::i;:::-;20999:71;;20955:125;20742:345;;;;:::o;21093:180::-;21141:77;21138:1;21131:88;21238:4;21235:1;21228:15;21262:4;21259:1;21252:15;21279:185;21319:1;21336:20;21354:1;21336:20;:::i;:::-;21331:25;;21370:20;21388:1;21370:20;:::i;:::-;21365:25;;21409:1;21399:35;;21414:18;;:::i;:::-;21399:35;21456:1;21453;21449:9;21444:14;;21279:185;;;;:::o;21470:173::-;21610:25;21606:1;21598:6;21594:14;21587:49;21470:173;:::o;21649:366::-;21791:3;21812:67;21876:2;21871:3;21812:67;:::i;:::-;21805:74;;21888:93;21977:3;21888:93;:::i;:::-;22006:2;22001:3;21997:12;21990:19;;21649:366;;;:::o;22021:419::-;22187:4;22225:2;22214:9;22210:18;22202:26;;22274:9;22268:4;22264:20;22260:1;22249:9;22245:17;22238:47;22302:131;22428:4;22302:131;:::i;:::-;22294:139;;22021:419;;;:::o;22446:147::-;22547:11;22584:3;22569:18;;22446:147;;;;:::o;22599:114::-;;:::o;22719:398::-;22878:3;22899:83;22980:1;22975:3;22899:83;:::i;:::-;22892:90;;22991:93;23080:3;22991:93;:::i;:::-;23109:1;23104:3;23100:11;23093:18;;22719:398;;;:::o;23123:379::-;23307:3;23329:147;23472:3;23329:147;:::i;:::-;23322:154;;23493:3;23486:10;;23123:379;;;:::o;23508:180::-;23556:77;23553:1;23546:88;23653:4;23650:1;23643:15;23677:4;23674:1;23667:15;23694:233;23733:3;23756:24;23774:5;23756:24;:::i;:::-;23747:33;;23802:66;23795:5;23792:77;23789:103;;23872:18;;:::i;:::-;23789:103;23919:1;23912:5;23908:13;23901:20;;23694:233;;;:::o;23933:223::-;24073:34;24069:1;24061:6;24057:14;24050:58;24142:6;24137:2;24129:6;24125:15;24118:31;23933:223;:::o;24162:366::-;24304:3;24325:67;24389:2;24384:3;24325:67;:::i;:::-;24318:74;;24401:93;24490:3;24401:93;:::i;:::-;24519:2;24514:3;24510:12;24503:19;;24162:366;;;:::o;24534:419::-;24700:4;24738:2;24727:9;24723:18;24715:26;;24787:9;24781:4;24777:20;24773:1;24762:9;24758:17;24751:47;24815:131;24941:4;24815:131;:::i;:::-;24807:139;;24534:419;;;:::o;24959:221::-;25099:34;25095:1;25087:6;25083:14;25076:58;25168:4;25163:2;25155:6;25151:15;25144:29;24959:221;:::o;25186:366::-;25328:3;25349:67;25413:2;25408:3;25349:67;:::i;:::-;25342:74;;25425:93;25514:3;25425:93;:::i;:::-;25543:2;25538:3;25534:12;25527:19;;25186:366;;;:::o;25558:419::-;25724:4;25762:2;25751:9;25747:18;25739:26;;25811:9;25805:4;25801:20;25797:1;25786:9;25782:17;25775:47;25839:131;25965:4;25839:131;:::i;:::-;25831:139;;25558:419;;;:::o;25983:224::-;26123:34;26119:1;26111:6;26107:14;26100:58;26192:7;26187:2;26179:6;26175:15;26168:32;25983:224;:::o;26213:366::-;26355:3;26376:67;26440:2;26435:3;26376:67;:::i;:::-;26369:74;;26452:93;26541:3;26452:93;:::i;:::-;26570:2;26565:3;26561:12;26554:19;;26213:366;;;:::o;26585:419::-;26751:4;26789:2;26778:9;26774:18;26766:26;;26838:9;26832:4;26828:20;26824:1;26813:9;26809:17;26802:47;26866:131;26992:4;26866:131;:::i;:::-;26858:139;;26585:419;;;:::o;27010:178::-;27150:30;27146:1;27138:6;27134:14;27127:54;27010:178;:::o;27194:366::-;27336:3;27357:67;27421:2;27416:3;27357:67;:::i;:::-;27350:74;;27433:93;27522:3;27433:93;:::i;:::-;27551:2;27546:3;27542:12;27535:19;;27194:366;;;:::o;27566:419::-;27732:4;27770:2;27759:9;27755:18;27747:26;;27819:9;27813:4;27809:20;27805:1;27794:9;27790:17;27783:47;27847:131;27973:4;27847:131;:::i;:::-;27839:139;;27566:419;;;:::o;27991:166::-;28131:18;28127:1;28119:6;28115:14;28108:42;27991:166;:::o;28163:366::-;28305:3;28326:67;28390:2;28385:3;28326:67;:::i;:::-;28319:74;;28402:93;28491:3;28402:93;:::i;:::-;28520:2;28515:3;28511:12;28504:19;;28163:366;;;:::o;28535:419::-;28701:4;28739:2;28728:9;28724:18;28716:26;;28788:9;28782:4;28778:20;28774:1;28763:9;28759:17;28752:47;28816:131;28942:4;28816:131;:::i;:::-;28808:139;;28535:419;;;:::o;28960:172::-;29100:24;29096:1;29088:6;29084:14;29077:48;28960:172;:::o;29138:366::-;29280:3;29301:67;29365:2;29360:3;29301:67;:::i;:::-;29294:74;;29377:93;29466:3;29377:93;:::i;:::-;29495:2;29490:3;29486:12;29479:19;;29138:366;;;:::o;29510:419::-;29676:4;29714:2;29703:9;29699:18;29691:26;;29763:9;29757:4;29753:20;29749:1;29738:9;29734:17;29727:47;29791:131;29917:4;29791:131;:::i;:::-;29783:139;;29510:419;;;:::o;29935:173::-;30075:25;30071:1;30063:6;30059:14;30052:49;29935:173;:::o;30114:366::-;30256:3;30277:67;30341:2;30336:3;30277:67;:::i;:::-;30270:74;;30353:93;30442:3;30353:93;:::i;:::-;30471:2;30466:3;30462:12;30455:19;;30114:366;;;:::o;30486:419::-;30652:4;30690:2;30679:9;30675:18;30667:26;;30739:9;30733:4;30729:20;30725:1;30714:9;30710:17;30703:47;30767:131;30893:4;30767:131;:::i;:::-;30759:139;;30486:419;;;:::o;30911:191::-;30951:3;30970:20;30988:1;30970:20;:::i;:::-;30965:25;;31004:20;31022:1;31004:20;:::i;:::-;30999:25;;31047:1;31044;31040:9;31033:16;;31068:3;31065:1;31062:10;31059:36;;;31075:18;;:::i;:::-;31059:36;30911:191;;;;:::o;31108:177::-;31248:29;31244:1;31236:6;31232:14;31225:53;31108:177;:::o;31291:366::-;31433:3;31454:67;31518:2;31513:3;31454:67;:::i;:::-;31447:74;;31530:93;31619:3;31530:93;:::i;:::-;31648:2;31643:3;31639:12;31632:19;;31291:366;;;:::o;31663:419::-;31829:4;31867:2;31856:9;31852:18;31844:26;;31916:9;31910:4;31906:20;31902:1;31891:9;31887:17;31880:47;31944:131;32070:4;31944:131;:::i;:::-;31936:139;;31663:419;;;:::o;32088:114::-;32155:6;32189:5;32183:12;32173:22;;32088:114;;;:::o;32208:184::-;32307:11;32341:6;32336:3;32329:19;32381:4;32376:3;32372:14;32357:29;;32208:184;;;;:::o;32398:132::-;32465:4;32488:3;32480:11;;32518:4;32513:3;32509:14;32501:22;;32398:132;;;:::o;32536:108::-;32613:24;32631:5;32613:24;:::i;:::-;32608:3;32601:37;32536:108;;:::o;32650:179::-;32719:10;32740:46;32782:3;32774:6;32740:46;:::i;:::-;32818:4;32813:3;32809:14;32795:28;;32650:179;;;;:::o;32835:113::-;32905:4;32937;32932:3;32928:14;32920:22;;32835:113;;;:::o;32984:732::-;33103:3;33132:54;33180:5;33132:54;:::i;:::-;33202:86;33281:6;33276:3;33202:86;:::i;:::-;33195:93;;33312:56;33362:5;33312:56;:::i;:::-;33391:7;33422:1;33407:284;33432:6;33429:1;33426:13;33407:284;;;33508:6;33502:13;33535:63;33594:3;33579:13;33535:63;:::i;:::-;33528:70;;33621:60;33674:6;33621:60;:::i;:::-;33611:70;;33467:224;33454:1;33451;33447:9;33442:14;;33407:284;;;33411:14;33707:3;33700:10;;33108:608;;;32984:732;;;;:::o;33722:831::-;33985:4;34023:3;34012:9;34008:19;34000:27;;34037:71;34105:1;34094:9;34090:17;34081:6;34037:71;:::i;:::-;34118:80;34194:2;34183:9;34179:18;34170:6;34118:80;:::i;:::-;34245:9;34239:4;34235:20;34230:2;34219:9;34215:18;34208:48;34273:108;34376:4;34367:6;34273:108;:::i;:::-;34265:116;;34391:72;34459:2;34448:9;34444:18;34435:6;34391:72;:::i;:::-;34473:73;34541:3;34530:9;34526:19;34517:6;34473:73;:::i;:::-;33722:831;;;;;;;;:::o;34559:225::-;34699:34;34695:1;34687:6;34683:14;34676:58;34768:8;34763:2;34755:6;34751:15;34744:33;34559:225;:::o;34790:366::-;34932:3;34953:67;35017:2;35012:3;34953:67;:::i;:::-;34946:74;;35029:93;35118:3;35029:93;:::i;:::-;35147:2;35142:3;35138:12;35131:19;;34790:366;;;:::o;35162:419::-;35328:4;35366:2;35355:9;35351:18;35343:26;;35415:9;35409:4;35405:20;35401:1;35390:9;35386:17;35379:47;35443:131;35569:4;35443:131;:::i;:::-;35435:139;;35162:419;;;:::o;35587:194::-;35627:4;35647:20;35665:1;35647:20;:::i;:::-;35642:25;;35681:20;35699:1;35681:20;:::i;:::-;35676:25;;35725:1;35722;35718:9;35710:17;;35749:1;35743:4;35740:11;35737:37;;;35754:18;;:::i;:::-;35737:37;35587:194;;;;:::o

Swarm Source

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