ETH Price: $2,268.53 (-4.84%)
Gas: 1.12 Gwei

Token

Fuck The Callers (FTC)
 

Overview

Max Total Supply

1,000,000,000 FTC

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,857,697.901115551914521181 FTC

Value
$0.00
0xba8e107cb361fc552f468a8d6c79ee001c6e08aa
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:
FTC

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-21
*/

/*
Ever seen a call then you buy and find out you’ve been dumped on/rugged?
 
Everyone has been there…
 
Fuck The Callers are creating a solid community based token, where we will be releasing our own Bot via Telegram that will show which call channels and callers are doing the best calls and subsequently which ones are doing the worst. 

It’ll show the amount of pump and dumps/rug pull projects as well as solid projects called from these callers and channels, then it will tally it up and showcase the results for our users to see from which they can make an informed decision of investing. Our bot will also have an option where you can type a username and it’ll show the amount of pump and dumps/rugs they have called also how many good solid projects they have called from our examinations so it can add an extra layer of security when investing. 

The bot will be granted to all $FTC token holders ($FTC token will be available on the Ethereum Blockchain)
 
Fuck The Callers will call out all callers that continually do us wrong for a paycheck as there are many of them in our shared space, we understand mistakes are made so we have a criteria in place to determine if the callers/channels have malicious intent. Fuck The Callers will also highlight good callers who want to see the community succeed as there is a lot of undervalued callers that should be more appreciated.
 
Fuck The Callers $FTC

Telegram: https://t.me/FuckTheCallersEntry

Medium:medium.com/@fuckthecallers

Twitter:https://twitter.com/fuckthecallers

Website: https://www.fuckthesecallers.com
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract FTC is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _blacklisted;
    address private _TeamWallet=0xbB578F0739d7cC522a4cb72751C01CF126502EDd;
    address private _routerAddress=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    uint256 private _totalfees=15;
    uint256 private _swapAfter=20;
    uint256 private _tTxs=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1e9 * 10**_decimals;
    string private constant _name = unicode"Fuck The Callers";
    string private constant _symbol = unicode"FTC";
    uint256 public _maxTxAmount = ((_tTotal*2)/100);
    uint256 public _maxWalletSize = ((_tTotal*2)/100);
    uint256 public _taxSwap=((_tTotal*15)/1000);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private _tradingActive;
    uint private _launchBlock;
    uint private _earlybuyersblocks = 0;
    bool private swaplock = false;
    bool private swapEnabled = false;

    event RemoveLimitTriggered(bool _status);
    modifier Swapping {
        swaplock = true;
        _;
        swaplock = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_TeamWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    receive() external payable {}
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        uint256 tfees=0;
        if (from != owner() && to != owner()) {
            require(!_blacklisted[from] && !_blacklisted[to]);
            if(!swaplock){
              tfees = amount.mul(_totalfees).div(100);
            }
            if(_launchBlock + _earlybuyersblocks >= block.number && _tradingActive==true){
                tfees = amount.mul(99).div(100);
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _tTxs++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!swaplock && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _tTxs>_swapAfter) {
                swapTokensForEth(_taxSwap>amount?amount:_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    _distributeTaxes(address(this).balance);
                }
            }
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(tfees));
        emit Transfer(from, to, amount.sub(tfees));
        if(tfees>0){
          _balances[address(this)]=_balances[address(this)].add(tfees);
          emit Transfer(from, address(this),tfees);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private Swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit RemoveLimitTriggered(true);
    }

    function _distributeTaxes(uint256 amount) private {
        payable(_TeamWallet).transfer(amount);
    }

    function _blockbots(address[] memory addys) public onlyOwner {
        for (uint i = 0; i < addys.length; i++) {
            //avoid bl pair & router 
            if(addys[i] != address(uniswapV2Router) && addys[i] != address(uniswapV2Pair)){
                _blacklisted[addys[i]] = true;
            }
            
        }
    }

    function _unblockbots(address[] memory addys) public onlyOwner {
      for (uint i = 0; i < addys.length; i++) {
          _blacklisted[addys[i]] = false;
      }
    }

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

    function _setfees(uint256 _newfees) external onlyOwner{
        require(_newfees < _totalfees,"Fees can't go up");
        _totalfees=_newfees;
    }
    function _swapback() external onlyOwner{
        //avoid nuking lp set swap to max swapAmount
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance>_taxSwap?_taxSwap:contractBalance);
    }
    function _rescueETH() external onlyOwner{
        _distributeTaxes(address(this).balance);
    }
    function _rescueERC(uint256 amount) external onlyOwner{
        if (amount == 0 || amount > balanceOf(address(this))) {
            amount = balanceOf(address(this));
        }
        _transfer(address(this),owner(),amount);       
    }
    function _changeTeamWallet(address _new_addy) external onlyOwner{
        _TeamWallet=_new_addy;
        _isExcludedFromFee[_new_addy] = true;
    }
    function _changeSnipersBlocks(uint _n) external onlyOwner{
        require(_tradingActive==false,"Trading already enabled");
        _earlybuyersblocks=_n;
    }
}

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":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"RemoveLimitTriggered","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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"_blockbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_n","type":"uint256"}],"name":"_changeSnipersBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new_addy","type":"address"}],"name":"_changeTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_rescueERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newfees","type":"uint256"}],"name":"_setfees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"_unblockbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273bb578f0739d7cc522a4cb72751c01cf126502edd600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60075560146008556000600955606460026012600a620000d191906200068b565b633b9aca00620000e29190620006dc565b620000ee9190620006dc565b620000fa919062000756565b600a55606460026012600a6200011191906200068b565b633b9aca00620001229190620006dc565b6200012e9190620006dc565b6200013a919062000756565b600b556103e8600f6012600a6200015291906200068b565b633b9aca00620001639190620006dc565b6200016f9190620006dc565b6200017b919062000756565b600c5560006010556000601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff021916908315150217905550348015620001c657600080fd5b506000620001d9620004c060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506012600a6200028791906200068b565b633b9aca00620002989190620006dc565b60016000620002ac620004c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000300620004c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000433620004c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200049291906200068b565b633b9aca00620004a39190620006dc565b604051620004b291906200079f565b60405180910390a3620007bc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057f57808604811115620005575762000556620004f1565b5b6001851615620005675780820291505b8081029050620005778562000520565b945062000537565b94509492505050565b6000826200059a57600190506200066d565b81620005aa57600090506200066d565b8160018114620005c35760028114620005ce5762000604565b60019150506200066d565b60ff841115620005e357620005e2620004f1565b5b8360020a915084821115620005fd57620005fc620004f1565b5b506200066d565b5060208310610133831016604e8410600b84101617156200063e5782820a905083811115620006385762000637620004f1565b5b6200066d565b6200064d84848460016200052d565b92509050818404811115620006675762000666620004f1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006988262000674565b9150620006a5836200067e565b9250620006d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000588565b905092915050565b6000620006e98262000674565b9150620006f68362000674565b9250828202620007068162000674565b9150828204841483151762000720576200071f620004f1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007638262000674565b9150620007708362000674565b92508262000783576200078262000727565b5b828204905092915050565b620007998162000674565b82525050565b6000602082019050620007b660008301846200078e565b92915050565b61394a80620007cc6000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063bffe77ad1161006f578063bffe77ad14610467578063d1d71d6014610490578063dd62ed3e146104a7578063ddb3a63b146104e4578063ddfcd18c1461050d578063e10fb3601461052457610156565b80637d1db4a5146103555780638b52b573146103805780638da5cb5b146103a95780638f9a55c0146103d457806395d89b41146103ff578063a9059cbb1461042a57610156565b806323b872dd1161010857806323b872dd14610257578063313ce5671461029457806334376f3b146102bf57806370a08231146102ea578063715018a614610327578063751039fc1461033e57610156565b806306fdde031461015b578063095ea7b31461018657806314a0a1b5146101c357806318160ddd146101ec5780631d97b7cd14610217578063237b8c721461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054d565b60405161017d9190612802565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128cc565b61058a565b6040516101ba9190612927565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612942565b6105a8565b005b3480156101f857600080fd5b5061020161069d565b60405161020e919061297e565b60405180910390f35b34801561022357600080fd5b5061022c6106c1565b005b34801561023a57600080fd5b5061025560048036038101906102509190612999565b610c0e565b005b34801561026357600080fd5b5061027e600480360381019061027991906129c6565b610d3f565b60405161028b9190612927565b60405180910390f35b3480156102a057600080fd5b506102a9610e18565b6040516102b69190612a35565b60405180910390f35b3480156102cb57600080fd5b506102d4610e21565b6040516102e1919061297e565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612999565b610e27565b60405161031e919061297e565b60405180910390f35b34801561033357600080fd5b5061033c610e70565b005b34801561034a57600080fd5b50610353610fc3565b005b34801561036157600080fd5b5061036a6110d8565b604051610377919061297e565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612942565b6110de565b005b3480156103b557600080fd5b506103be6111af565b6040516103cb9190612a5f565b60405180910390f35b3480156103e057600080fd5b506103e96111d8565b6040516103f6919061297e565b60405180910390f35b34801561040b57600080fd5b506104146111de565b6040516104219190612802565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906128cc565b61121b565b60405161045e9190612927565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bc2565b611239565b005b34801561049c57600080fd5b506104a5611363565b005b3480156104b357600080fd5b506104ce60048036038101906104c99190612c0b565b611403565b6040516104db919061297e565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190612bc2565b61148a565b005b34801561051957600080fd5b5061052261169a565b005b34801561053057600080fd5b5061054b60048036038101906105469190612942565b61175a565b005b60606040518060400160405280601081526020017f4675636b205468652043616c6c65727300000000000000000000000000000000815250905090565b600061059e61059761183d565b8484611845565b6001905092915050565b6105b061183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063490612c97565b60405180910390fd5b60001515600e60149054906101000a900460ff16151514610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612d03565b60405180910390fd5b8060108190555050565b60006012600a6106ad9190612e85565b633b9aca006106bc9190612ed0565b905090565b6106c961183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90612c97565b60405180910390fd5b600e60149054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612f5e565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061085230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61083e9190612e85565b633b9aca0061084d9190612ed0565b611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e39190612f93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109909190612f93565b6040518363ffffffff1660e01b81526004016109ad929190612fc0565b6020604051808303816000875af11580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f09190612f93565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a7930610e27565b600080610a846111af565b426040518863ffffffff1660e01b8152600401610aa69695949392919061302e565b60606040518083038185885af1158015610ac4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ae991906130a4565b50505043600f819055506001600e60146101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610bc89291906130f7565b6020604051808303816000875af1158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b919061314c565b50565b610c1661183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90612c97565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d4c848484611a0e565b610e0d84610d5861183d565b610e08856040518060600160405280602881526020016138ed60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dbe61183d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225a9092919063ffffffff16565b611845565b600190509392505050565b60006012905090565b600c5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e7861183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612c97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fcb61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90612c97565b60405180910390fd5b6012600a6110669190612e85565b633b9aca006110759190612ed0565b600a819055506012600a6110899190612e85565b633b9aca006110989190612ed0565b600b819055507f97349b872222986eb84ae5a80d8908f03ad1daf9e73bdae7d35a48264fdb293e60016040516110ce9190612927565b60405180910390a1565b600a5481565b6110e661183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90612c97565b60405180910390fd5b6000811480611189575061118630610e27565b81115b1561119a5761119730610e27565b90505b6111ac306111a66111af565b83611a0e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600381526020017f4654430000000000000000000000000000000000000000000000000000000000815250905090565b600061122f61122861183d565b8484611a0e565b6001905092915050565b61124161183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612c97565b60405180910390fd5b60005b815181101561135f576000600460008484815181106112f3576112f2613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611357906131a8565b9150506112d1565b5050565b61136b61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612c97565b60405180910390fd5b611401476122be565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61149261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612c97565b60405180910390fd5b60005b815181101561169657600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061157757611576613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561160b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106115ea576115e9613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156116835760016004600084848151811061162957611628613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061168e906131a8565b915050611522565b5050565b6116a261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612c97565b60405180910390fd5b600061173a30610e27565b9050611757600c54821161174e5781611752565b600c545b61232a565b50565b61176261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690612c97565b60405180910390fd5b6007548110611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a9061323c565b60405180910390fd5b8060078190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab906132ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613360565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a01919061297e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a74906133f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613484565b60405180910390fd5b60008111611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2690613516565b60405180910390fd5b6000611b396111af565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba75750611b776111af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9d57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5957600080fd5b601160009054906101000a900460ff16611c9857611c956064611c87600754856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b43601054600f54611ca99190613536565b10158015611cca575060011515600e60149054906101000a900460ff161515145b15611cf957611cf66064611ce86063856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eb557600a54821115611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906135b6565b60405180910390fd5b600b5482611e5185610e27565b611e5b9190613536565b1115611e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9390613622565b60405180910390fd5b60096000815480929190611eaf906131a8565b91905055505b6000611ec030610e27565b9050601160009054906101000a900460ff16158015611f2d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f455750601160019054906101000a900460ff165b8015611f525750600c5481115b8015611f615750600854600954115b15611f9b57611f8183600c5411611f7a57600c54611f7c565b835b61232a565b60004790506000811115611f9957611f98476122be565b5b505b505b611fef82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612096612048828461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61213b848661266790919063ffffffff16565b604051612148919061297e565b60405180910390a36000811115612254576121ab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224b919061297e565b60405180910390a35b50505050565b60008383111582906122a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122999190612802565b60405180910390fd5b50600083856122b19190613642565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612326573d6000803e3d6000fd5b5050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561236257612361612a7f565b5b6040519080825280602002602001820160405280156123905781602001602082028036833780820191505090505b50905030816000815181106123a8576123a7613179565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124739190612f93565b8160018151811061248757612486613179565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ee30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612552959493929190613734565b600060405180830381600087803b15801561256c57600080fd5b505af1158015612580573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b60008083036125b55760009050612617565b600082846125c39190612ed0565b90508284826125d291906137bd565b14612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613860565b60405180910390fd5b809150505b92915050565b600061265f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270f565b905092915050565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061225a565b905092915050565b60008082846126c09190613536565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc906138cc565b60405180910390fd5b8091505092915050565b60008083118290612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d9190612802565b60405180910390fd5b506000838561276591906137bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ac578082015181840152602081019050612791565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d482612772565b6127de818561277d565b93506127ee81856020860161278e565b6127f7816127b8565b840191505092915050565b6000602082019050818103600083015261281c81846127c9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286382612838565b9050919050565b61287381612858565b811461287e57600080fd5b50565b6000813590506128908161286a565b92915050565b6000819050919050565b6128a981612896565b81146128b457600080fd5b50565b6000813590506128c6816128a0565b92915050565b600080604083850312156128e3576128e261282e565b5b60006128f185828601612881565b9250506020612902858286016128b7565b9150509250929050565b60008115159050919050565b6129218161290c565b82525050565b600060208201905061293c6000830184612918565b92915050565b6000602082840312156129585761295761282e565b5b6000612966848285016128b7565b91505092915050565b61297881612896565b82525050565b6000602082019050612993600083018461296f565b92915050565b6000602082840312156129af576129ae61282e565b5b60006129bd84828501612881565b91505092915050565b6000806000606084860312156129df576129de61282e565b5b60006129ed86828701612881565b93505060206129fe86828701612881565b9250506040612a0f868287016128b7565b9150509250925092565b600060ff82169050919050565b612a2f81612a19565b82525050565b6000602082019050612a4a6000830184612a26565b92915050565b612a5981612858565b82525050565b6000602082019050612a746000830184612a50565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ab7826127b8565b810181811067ffffffffffffffff82111715612ad657612ad5612a7f565b5b80604052505050565b6000612ae9612824565b9050612af58282612aae565b919050565b600067ffffffffffffffff821115612b1557612b14612a7f565b5b602082029050602081019050919050565b600080fd5b6000612b3e612b3984612afa565b612adf565b90508083825260208201905060208402830185811115612b6157612b60612b26565b5b835b81811015612b8a5780612b768882612881565b845260208401935050602081019050612b63565b5050509392505050565b600082601f830112612ba957612ba8612a7a565b5b8135612bb9848260208601612b2b565b91505092915050565b600060208284031215612bd857612bd761282e565b5b600082013567ffffffffffffffff811115612bf657612bf5612833565b5b612c0284828501612b94565b91505092915050565b60008060408385031215612c2257612c2161282e565b5b6000612c3085828601612881565b9250506020612c4185828601612881565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c8160208361277d565b9150612c8c82612c4b565b602082019050919050565b60006020820190508181036000830152612cb081612c74565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612ced60178361277d565b9150612cf882612cb7565b602082019050919050565b60006020820190508181036000830152612d1c81612ce0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612da957808604811115612d8557612d84612d23565b5b6001851615612d945780820291505b8081029050612da285612d52565b9450612d69565b94509492505050565b600082612dc25760019050612e7e565b81612dd05760009050612e7e565b8160018114612de65760028114612df057612e1f565b6001915050612e7e565b60ff841115612e0257612e01612d23565b5b8360020a915084821115612e1957612e18612d23565b5b50612e7e565b5060208310610133831016604e8410600b8410161715612e545782820a905083811115612e4f57612e4e612d23565b5b612e7e565b612e618484846001612d5f565b92509050818404811115612e7857612e77612d23565b5b81810290505b9392505050565b6000612e9082612896565b9150612e9b83612a19565b9250612ec87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612db2565b905092915050565b6000612edb82612896565b9150612ee683612896565b9250828202612ef481612896565b91508282048414831517612f0b57612f0a612d23565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f4860178361277d565b9150612f5382612f12565b602082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b600081519050612f8d8161286a565b92915050565b600060208284031215612fa957612fa861282e565b5b6000612fb784828501612f7e565b91505092915050565b6000604082019050612fd56000830185612a50565b612fe26020830184612a50565b9392505050565b6000819050919050565b6000819050919050565b600061301861301361300e84612fe9565b612ff3565b612896565b9050919050565b61302881612ffd565b82525050565b600060c0820190506130436000830189612a50565b613050602083018861296f565b61305d604083018761301f565b61306a606083018661301f565b6130776080830185612a50565b61308460a083018461296f565b979650505050505050565b60008151905061309e816128a0565b92915050565b6000806000606084860312156130bd576130bc61282e565b5b60006130cb8682870161308f565b93505060206130dc8682870161308f565b92505060406130ed8682870161308f565b9150509250925092565b600060408201905061310c6000830185612a50565b613119602083018461296f565b9392505050565b6131298161290c565b811461313457600080fd5b50565b60008151905061314681613120565b92915050565b6000602082840312156131625761316161282e565b5b600061317084828501613137565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131b382612896565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131e5576131e4612d23565b5b600182019050919050565b7f466565732063616e277420676f20757000000000000000000000000000000000600082015250565b600061322660108361277d565b9150613231826131f0565b602082019050919050565b6000602082019050818103600083015261325581613219565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132b860248361277d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061334a60228361277d565b9150613355826132ee565b604082019050919050565b600060208201905081810360008301526133798161333d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133dc60258361277d565b91506133e782613380565b604082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061346e60238361277d565b915061347982613412565b604082019050919050565b6000602082019050818103600083015261349d81613461565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350060298361277d565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b9050919050565b600061354182612896565b915061354c83612896565b925082820190508082111561356457613563612d23565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135a060198361277d565b91506135ab8261356a565b602082019050919050565b600060208201905081810360008301526135cf81613593565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061360c601a8361277d565b9150613617826135d6565b602082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b600061364d82612896565b915061365883612896565b92508282039050818111156136705761366f612d23565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ab81612858565b82525050565b60006136bd83836136a2565b60208301905092915050565b6000602082019050919050565b60006136e182613676565b6136eb8185613681565b93506136f683613692565b8060005b8381101561372757815161370e88826136b1565b9750613719836136c9565b9250506001810190506136fa565b5085935050505092915050565b600060a082019050613749600083018861296f565b613756602083018761301f565b818103604083015261376881866136d6565b90506137776060830185612a50565b613784608083018461296f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137c882612896565b91506137d383612896565b9250826137e3576137e261378e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061384a60218361277d565b9150613855826137ee565b604082019050919050565b600060208201905081810360008301526138798161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b6601b8361277d565b91506138c182613880565b602082019050919050565b600060208201905081810360008301526138e5816138a9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4ae605300925dd0359b876a6d91e5c398c70c6c56d250d939743776e7fc39ad64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063bffe77ad1161006f578063bffe77ad14610467578063d1d71d6014610490578063dd62ed3e146104a7578063ddb3a63b146104e4578063ddfcd18c1461050d578063e10fb3601461052457610156565b80637d1db4a5146103555780638b52b573146103805780638da5cb5b146103a95780638f9a55c0146103d457806395d89b41146103ff578063a9059cbb1461042a57610156565b806323b872dd1161010857806323b872dd14610257578063313ce5671461029457806334376f3b146102bf57806370a08231146102ea578063715018a614610327578063751039fc1461033e57610156565b806306fdde031461015b578063095ea7b31461018657806314a0a1b5146101c357806318160ddd146101ec5780631d97b7cd14610217578063237b8c721461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054d565b60405161017d9190612802565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906128cc565b61058a565b6040516101ba9190612927565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612942565b6105a8565b005b3480156101f857600080fd5b5061020161069d565b60405161020e919061297e565b60405180910390f35b34801561022357600080fd5b5061022c6106c1565b005b34801561023a57600080fd5b5061025560048036038101906102509190612999565b610c0e565b005b34801561026357600080fd5b5061027e600480360381019061027991906129c6565b610d3f565b60405161028b9190612927565b60405180910390f35b3480156102a057600080fd5b506102a9610e18565b6040516102b69190612a35565b60405180910390f35b3480156102cb57600080fd5b506102d4610e21565b6040516102e1919061297e565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612999565b610e27565b60405161031e919061297e565b60405180910390f35b34801561033357600080fd5b5061033c610e70565b005b34801561034a57600080fd5b50610353610fc3565b005b34801561036157600080fd5b5061036a6110d8565b604051610377919061297e565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612942565b6110de565b005b3480156103b557600080fd5b506103be6111af565b6040516103cb9190612a5f565b60405180910390f35b3480156103e057600080fd5b506103e96111d8565b6040516103f6919061297e565b60405180910390f35b34801561040b57600080fd5b506104146111de565b6040516104219190612802565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906128cc565b61121b565b60405161045e9190612927565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bc2565b611239565b005b34801561049c57600080fd5b506104a5611363565b005b3480156104b357600080fd5b506104ce60048036038101906104c99190612c0b565b611403565b6040516104db919061297e565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190612bc2565b61148a565b005b34801561051957600080fd5b5061052261169a565b005b34801561053057600080fd5b5061054b60048036038101906105469190612942565b61175a565b005b60606040518060400160405280601081526020017f4675636b205468652043616c6c65727300000000000000000000000000000000815250905090565b600061059e61059761183d565b8484611845565b6001905092915050565b6105b061183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063490612c97565b60405180910390fd5b60001515600e60149054906101000a900460ff16151514610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612d03565b60405180910390fd5b8060108190555050565b60006012600a6106ad9190612e85565b633b9aca006106bc9190612ed0565b905090565b6106c961183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90612c97565b60405180910390fd5b600e60149054906101000a900460ff16156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90612f5e565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061085230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61083e9190612e85565b633b9aca0061084d9190612ed0565b611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e39190612f93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109909190612f93565b6040518363ffffffff1660e01b81526004016109ad929190612fc0565b6020604051808303816000875af11580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f09190612f93565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a7930610e27565b600080610a846111af565b426040518863ffffffff1660e01b8152600401610aa69695949392919061302e565b60606040518083038185885af1158015610ac4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ae991906130a4565b50505043600f819055506001600e60146101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610bc89291906130f7565b6020604051808303816000875af1158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b919061314c565b50565b610c1661183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90612c97565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d4c848484611a0e565b610e0d84610d5861183d565b610e08856040518060600160405280602881526020016138ed60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dbe61183d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225a9092919063ffffffff16565b611845565b600190509392505050565b60006012905090565b600c5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e7861183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612c97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fcb61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90612c97565b60405180910390fd5b6012600a6110669190612e85565b633b9aca006110759190612ed0565b600a819055506012600a6110899190612e85565b633b9aca006110989190612ed0565b600b819055507f97349b872222986eb84ae5a80d8908f03ad1daf9e73bdae7d35a48264fdb293e60016040516110ce9190612927565b60405180910390a1565b600a5481565b6110e661183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90612c97565b60405180910390fd5b6000811480611189575061118630610e27565b81115b1561119a5761119730610e27565b90505b6111ac306111a66111af565b83611a0e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600381526020017f4654430000000000000000000000000000000000000000000000000000000000815250905090565b600061122f61122861183d565b8484611a0e565b6001905092915050565b61124161183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612c97565b60405180910390fd5b60005b815181101561135f576000600460008484815181106112f3576112f2613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611357906131a8565b9150506112d1565b5050565b61136b61183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612c97565b60405180910390fd5b611401476122be565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61149261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612c97565b60405180910390fd5b60005b815181101561169657600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061157757611576613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561160b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106115ea576115e9613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156116835760016004600084848151811061162957611628613179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061168e906131a8565b915050611522565b5050565b6116a261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612c97565b60405180910390fd5b600061173a30610e27565b9050611757600c54821161174e5781611752565b600c545b61232a565b50565b61176261183d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690612c97565b60405180910390fd5b6007548110611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a9061323c565b60405180910390fd5b8060078190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab906132ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613360565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a01919061297e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a74906133f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613484565b60405180910390fd5b60008111611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2690613516565b60405180910390fd5b6000611b396111af565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba75750611b776111af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9d57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5957600080fd5b601160009054906101000a900460ff16611c9857611c956064611c87600754856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b43601054600f54611ca99190613536565b10158015611cca575060011515600e60149054906101000a900460ff161515145b15611cf957611cf66064611ce86063856125a390919063ffffffff16565b61261d90919063ffffffff16565b90505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eb557600a54821115611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906135b6565b60405180910390fd5b600b5482611e5185610e27565b611e5b9190613536565b1115611e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9390613622565b60405180910390fd5b60096000815480929190611eaf906131a8565b91905055505b6000611ec030610e27565b9050601160009054906101000a900460ff16158015611f2d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f455750601160019054906101000a900460ff165b8015611f525750600c5481115b8015611f615750600854600954115b15611f9b57611f8183600c5411611f7a57600c54611f7c565b835b61232a565b60004790506000811115611f9957611f98476122be565b5b505b505b611fef82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612096612048828461266790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61213b848661266790919063ffffffff16565b604051612148919061297e565b60405180910390a36000811115612254576121ab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224b919061297e565b60405180910390a35b50505050565b60008383111582906122a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122999190612802565b60405180910390fd5b50600083856122b19190613642565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612326573d6000803e3d6000fd5b5050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561236257612361612a7f565b5b6040519080825280602002602001820160405280156123905781602001602082028036833780820191505090505b50905030816000815181106123a8576123a7613179565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124739190612f93565b8160018151811061248757612486613179565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ee30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611845565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612552959493929190613734565b600060405180830381600087803b15801561256c57600080fd5b505af1158015612580573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b60008083036125b55760009050612617565b600082846125c39190612ed0565b90508284826125d291906137bd565b14612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613860565b60405180910390fd5b809150505b92915050565b600061265f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270f565b905092915050565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061225a565b905092915050565b60008082846126c09190613536565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc906138cc565b60405180910390fd5b8091505092915050565b60008083118290612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d9190612802565b60405180910390fd5b506000838561276591906137bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127ac578082015181840152602081019050612791565b60008484015250505050565b6000601f19601f8301169050919050565b60006127d482612772565b6127de818561277d565b93506127ee81856020860161278e565b6127f7816127b8565b840191505092915050565b6000602082019050818103600083015261281c81846127c9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061286382612838565b9050919050565b61287381612858565b811461287e57600080fd5b50565b6000813590506128908161286a565b92915050565b6000819050919050565b6128a981612896565b81146128b457600080fd5b50565b6000813590506128c6816128a0565b92915050565b600080604083850312156128e3576128e261282e565b5b60006128f185828601612881565b9250506020612902858286016128b7565b9150509250929050565b60008115159050919050565b6129218161290c565b82525050565b600060208201905061293c6000830184612918565b92915050565b6000602082840312156129585761295761282e565b5b6000612966848285016128b7565b91505092915050565b61297881612896565b82525050565b6000602082019050612993600083018461296f565b92915050565b6000602082840312156129af576129ae61282e565b5b60006129bd84828501612881565b91505092915050565b6000806000606084860312156129df576129de61282e565b5b60006129ed86828701612881565b93505060206129fe86828701612881565b9250506040612a0f868287016128b7565b9150509250925092565b600060ff82169050919050565b612a2f81612a19565b82525050565b6000602082019050612a4a6000830184612a26565b92915050565b612a5981612858565b82525050565b6000602082019050612a746000830184612a50565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ab7826127b8565b810181811067ffffffffffffffff82111715612ad657612ad5612a7f565b5b80604052505050565b6000612ae9612824565b9050612af58282612aae565b919050565b600067ffffffffffffffff821115612b1557612b14612a7f565b5b602082029050602081019050919050565b600080fd5b6000612b3e612b3984612afa565b612adf565b90508083825260208201905060208402830185811115612b6157612b60612b26565b5b835b81811015612b8a5780612b768882612881565b845260208401935050602081019050612b63565b5050509392505050565b600082601f830112612ba957612ba8612a7a565b5b8135612bb9848260208601612b2b565b91505092915050565b600060208284031215612bd857612bd761282e565b5b600082013567ffffffffffffffff811115612bf657612bf5612833565b5b612c0284828501612b94565b91505092915050565b60008060408385031215612c2257612c2161282e565b5b6000612c3085828601612881565b9250506020612c4185828601612881565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c8160208361277d565b9150612c8c82612c4b565b602082019050919050565b60006020820190508181036000830152612cb081612c74565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612ced60178361277d565b9150612cf882612cb7565b602082019050919050565b60006020820190508181036000830152612d1c81612ce0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612da957808604811115612d8557612d84612d23565b5b6001851615612d945780820291505b8081029050612da285612d52565b9450612d69565b94509492505050565b600082612dc25760019050612e7e565b81612dd05760009050612e7e565b8160018114612de65760028114612df057612e1f565b6001915050612e7e565b60ff841115612e0257612e01612d23565b5b8360020a915084821115612e1957612e18612d23565b5b50612e7e565b5060208310610133831016604e8410600b8410161715612e545782820a905083811115612e4f57612e4e612d23565b5b612e7e565b612e618484846001612d5f565b92509050818404811115612e7857612e77612d23565b5b81810290505b9392505050565b6000612e9082612896565b9150612e9b83612a19565b9250612ec87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612db2565b905092915050565b6000612edb82612896565b9150612ee683612896565b9250828202612ef481612896565b91508282048414831517612f0b57612f0a612d23565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f4860178361277d565b9150612f5382612f12565b602082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b600081519050612f8d8161286a565b92915050565b600060208284031215612fa957612fa861282e565b5b6000612fb784828501612f7e565b91505092915050565b6000604082019050612fd56000830185612a50565b612fe26020830184612a50565b9392505050565b6000819050919050565b6000819050919050565b600061301861301361300e84612fe9565b612ff3565b612896565b9050919050565b61302881612ffd565b82525050565b600060c0820190506130436000830189612a50565b613050602083018861296f565b61305d604083018761301f565b61306a606083018661301f565b6130776080830185612a50565b61308460a083018461296f565b979650505050505050565b60008151905061309e816128a0565b92915050565b6000806000606084860312156130bd576130bc61282e565b5b60006130cb8682870161308f565b93505060206130dc8682870161308f565b92505060406130ed8682870161308f565b9150509250925092565b600060408201905061310c6000830185612a50565b613119602083018461296f565b9392505050565b6131298161290c565b811461313457600080fd5b50565b60008151905061314681613120565b92915050565b6000602082840312156131625761316161282e565b5b600061317084828501613137565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131b382612896565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131e5576131e4612d23565b5b600182019050919050565b7f466565732063616e277420676f20757000000000000000000000000000000000600082015250565b600061322660108361277d565b9150613231826131f0565b602082019050919050565b6000602082019050818103600083015261325581613219565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132b860248361277d565b91506132c38261325c565b604082019050919050565b600060208201905081810360008301526132e7816132ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061334a60228361277d565b9150613355826132ee565b604082019050919050565b600060208201905081810360008301526133798161333d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133dc60258361277d565b91506133e782613380565b604082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061346e60238361277d565b915061347982613412565b604082019050919050565b6000602082019050818103600083015261349d81613461565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350060298361277d565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b9050919050565b600061354182612896565b915061354c83612896565b925082820190508082111561356457613563612d23565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135a060198361277d565b91506135ab8261356a565b602082019050919050565b600060208201905081810360008301526135cf81613593565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061360c601a8361277d565b9150613617826135d6565b602082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b600061364d82612896565b915061365883612896565b92508282039050818111156136705761366f612d23565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ab81612858565b82525050565b60006136bd83836136a2565b60208301905092915050565b6000602082019050919050565b60006136e182613676565b6136eb8185613681565b93506136f683613692565b8060005b8381101561372757815161370e88826136b1565b9750613719836136c9565b9250506001810190506136fa565b5085935050505092915050565b600060a082019050613749600083018861296f565b613756602083018761301f565b818103604083015261376881866136d6565b90506137776060830185612a50565b613784608083018461296f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137c882612896565b91506137d383612896565b9250826137e3576137e261378e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061384a60218361277d565b9150613855826137ee565b604082019050919050565b600060208201905081810360008301526138798161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b6601b8361277d565b91506138c182613880565b602082019050919050565b600060208201905081810360008301526138e5816138a9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4ae605300925dd0359b876a6d91e5c398c70c6c56d250d939743776e7fc39ad64736f6c63430008110033

Deployed Bytecode Sourcemap

5087:8291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6782:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7615:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13211:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7059:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11600:689;;;;;;;;;;;;;:::i;:::-;;13054:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7784:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6968:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7162:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4168:148;;;;;;;;;;;;;:::i;:::-;;10792:158;;;;;;;;;;;;;:::i;:::-;;5892:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12805:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3954:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5946:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6873:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7289:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11420:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12701:98;;;;;;;;;;;;;:::i;:::-;;7464:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11072:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12455:240;;;;;;;;;;;;;:::i;:::-;;12297:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6782:83;6819:13;6852:5;;;;;;;;;;;;;;;;;6845:12;;6782:83;:::o;7615:161::-;7690:4;7707:39;7716:12;:10;:12::i;:::-;7730:7;7739:6;7707:8;:39::i;:::-;7764:4;7757:11;;7615:161;;;;:::o;13211:164::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13303:5:::1;13287:21;;:14;;;;;;;;;;;:21;;;13279:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13365:2;13346:18;:21;;;;13211:164:::0;:::o;7059:95::-;7112:7;5705:2;5755;:13;;;;:::i;:::-;5749:3;:19;;;;:::i;:::-;7132:14;;7059:95;:::o;11600:689::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11666:14:::1;;;;;;;;;;;11665:15;11657:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11755:14;;;;;;;;;;;11718:15;;:52;;;;;;;;;;;;;;;;;;11781:58;11798:4;11813:15;;;;;;;;;;;5705:2;5755;:13;;;;:::i;:::-;5749:3;:19;;;;:::i;:::-;11781:8;:58::i;:::-;11884:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11866:55;;;11930:4;11937:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11866:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11850:13;;:110;;;;;;;;;;;;;;;;;;11971:15;;;;;;;;;;;:31;;;12010:21;12041:4;12047:24;12065:4;12047:9;:24::i;:::-;12072:1;12074::::0;12076:7:::1;:5;:7::i;:::-;12084:15;11971:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12126:12;12111;:27;;;;12166:4;12149:14;;:21;;;;;;;;;;;;;;;;;;12195:4;12181:11;;:18;;;;;;;;;;;;;;;;;;12217:13;;;;;;;;;;;12210:29;;;12248:15;;;;;;;;;;;12266:14;12210:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11600:689::o:0;13054:151::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13141:9:::1;13129:11;;:21;;;;;;;;;;;;;;;;;;13193:4;13161:18;:29;13180:9;13161:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13054:151:::0;:::o;7784:313::-;7882:4;7899:36;7909:6;7917:9;7928:6;7899:9;:36::i;:::-;7946:121;7955:6;7963:12;:10;:12::i;:::-;7977:89;8015:6;7977:89;;;;;;;;;;;;;;;;;:11;:19;7989:6;7977:19;;;;;;;;;;;;;;;:33;7997:12;:10;:12::i;:::-;7977:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7946:8;:121::i;:::-;8085:4;8078:11;;7784:313;;;;;:::o;6968:83::-;7009:5;5705:2;7027:16;;6968:83;:::o;6002:43::-;;;;:::o;7162:119::-;7228:7;7255:9;:18;7265:7;7255:18;;;;;;;;;;;;;;;;7248:25;;7162:119;;;:::o;4168:148::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4275:1:::1;4238:40;;4259:6;::::0;::::1;;;;;;;;4238:40;;;;;;;;;;;;4306:1;4289:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4168:148::o:0;10792:158::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5705:2:::1;5755;:13;;;;:::i;:::-;5749:3;:19;;;;:::i;:::-;10845:12;:22;;;;5705:2;5755;:13;;;;:::i;:::-;5749:3;:19;;;;:::i;:::-;10878:14;:22;;;;10916:26;10937:4;10916:26;;;;;;:::i;:::-;;;;;;;;10792:158::o:0;5892:47::-;;;;:::o;12805:243::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12884:1:::1;12874:6;:11;:48;;;;12898:24;12916:4;12898:9;:24::i;:::-;12889:6;:33;12874:48;12870:114;;;12948:24;12966:4;12948:9;:24::i;:::-;12939:33;;12870:114;12994:39;13012:4;13018:7;:5;:7::i;:::-;13026:6;12994:9;:39::i;:::-;12805:243:::0;:::o;3954:79::-;3992:7;4019:6;;;;;;;;;;;4012:13;;3954:79;:::o;5946:49::-;;;;:::o;6873:87::-;6912:13;6945:7;;;;;;;;;;;;;;;;;6938:14;;6873:87;:::o;7289:167::-;7367:4;7384:42;7394:12;:10;:12::i;:::-;7408:9;7419:6;7384:9;:42::i;:::-;7444:4;7437:11;;7289:167;;;;:::o;11420:172::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11497:6:::1;11492:93;11513:5;:12;11509:1;:16;11492:93;;;11570:5;11545:12;:22;11558:5;11564:1;11558:8;;;;;;;;:::i;:::-;;;;;;;;11545:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11527:3;;;;;:::i;:::-;;;;11492:93;;;;11420:172:::0;:::o;12701:98::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12752:39:::1;12769:21;12752:16;:39::i;:::-;12701:98::o:0;7464:143::-;7545:7;7572:11;:18;7584:5;7572:18;;;;;;;;;;;;;;;:27;7591:7;7572:27;;;;;;;;;;;;;;;;7565:34;;7464:143;;;;:::o;11072:340::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11149:6:::1;11144:261;11165:5;:12;11161:1;:16;11144:261;;;11261:15;;;;;;;;;;;11241:36;;:5;11247:1;11241:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;:74;;;;;11301:13;;;;;;;;;;;11281:34;;:5;11287:1;11281:8;;;;;;;;:::i;:::-;;;;;;;;:34;;;;11241:74;11238:142;;;11360:4;11335:12;:22;11348:5;11354:1;11348:8;;;;;;;;:::i;:::-;;;;;;;;11335:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11238:142;11179:3;;;;;:::i;:::-;;;;11144:261;;;;11072:340:::0;:::o;12455:240::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12559:23:::1;12585:24;12603:4;12585:9;:24::i;:::-;12559:50;;12620:67;12653:8;;12637:15;:24;:49;;12671:15;12637:49;;;12662:8;;12637:49;12620:16;:67::i;:::-;12494:201;12455:240::o:0;12297:152::-;4091:12;:10;:12::i;:::-;4081:22;;:6;;;;;;;;;;:22;;;4073:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12381:10:::1;;12370:8;:21;12362:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12433:8;12422:10;:19;;;;12297:152:::0;:::o;1703:98::-;1756:7;1783:10;1776:17;;1703:98;:::o;8105:335::-;8215:1;8198:19;;:5;:19;;;8190:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8296:1;8277:21;;:7;:21;;;8269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8378:6;8348:11;:18;8360:5;8348:18;;;;;;;;;;;;;;;:27;8367:7;8348:27;;;;;;;;;;;;;;;:36;;;;8416:7;8400:32;;8409:5;8400:32;;;8425:6;8400:32;;;;;;:::i;:::-;;;;;;;;8105:335;;;:::o;8448:1848::-;8552:1;8536:18;;:4;:18;;;8528:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8629:1;8615:16;;:2;:16;;;8607:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8699:1;8690:6;:10;8682:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8767:13;8805:7;:5;:7::i;:::-;8797:15;;:4;:15;;;;:32;;;;;8822:7;:5;:7::i;:::-;8816:13;;:2;:13;;;;8797:32;8793:1167;;;8855:12;:18;8868:4;8855:18;;;;;;;;;;;;;;;;;;;;;;;;;8854:19;:40;;;;;8878:12;:16;8891:2;8878:16;;;;;;;;;;;;;;;;;;;;;;;;;8877:17;8854:40;8846:49;;;;;;8914:8;;;;;;;;;;;8910:85;;8948:31;8975:3;8948:22;8959:10;;8948:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;8940:39;;8910:85;9049:12;9027:18;;9012:12;;:33;;;;:::i;:::-;:49;;:73;;;;;9081:4;9065:20;;:14;;;;;;;;;;;:20;;;9012:73;9009:143;;;9113:23;9132:3;9113:14;9124:2;9113:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9105:31;;9009:143;9178:13;;;;;;;;;;;9170:21;;:4;:21;;;:55;;;;;9209:15;;;;;;;;;;;9195:30;;:2;:30;;;;9170:55;:83;;;;;9231:18;:22;9250:2;9231:22;;;;;;;;;;;;;;;;;;;;;;;;;9229:24;9170:83;9166:309;;;9293:12;;9283:6;:22;;9275:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9388:14;;9378:6;9362:13;9372:2;9362:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9354:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9452:5;;:7;;;;;;;;;:::i;:::-;;;;;;9166:309;9491:28;9522:24;9540:4;9522:9;:24::i;:::-;9491:55;;9566:8;;;;;;;;;;;9565:9;:34;;;;;9586:13;;;;;;;;;;;9578:21;;:4;:21;;;;9565:34;:49;;;;;9603:11;;;;;;;;;;;9565:49;:82;;;;;9639:8;;9618:20;:29;9565:82;:102;;;;;9657:10;;9651:5;;:16;9565:102;9561:388;;;9688:49;9714:6;9705:8;;:15;:31;;9728:8;;9705:31;;;9721:6;9705:31;9688:16;:49::i;:::-;9756:26;9785:21;9756:50;;9849:1;9828:18;:22;9825:109;;;9875:39;9892:21;9875:16;:39::i;:::-;9825:109;9669:280;9561:388;8831:1129;8793:1167;9988:27;10008:6;9988:9;:15;9998:4;9988:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9972:9;:15;9982:4;9972:15;;;;;;;;;;;;;;;:43;;;;10040:36;10058:17;10069:5;10058:6;:10;;:17;;;;:::i;:::-;10040:9;:13;10050:2;10040:13;;;;;;;;;;;;;;;;:17;;:36;;;;:::i;:::-;10026:9;:13;10036:2;10026:13;;;;;;;;;;;;;;;:50;;;;10107:2;10092:37;;10101:4;10092:37;;;10111:17;10122:5;10111:6;:10;;:17;;;;:::i;:::-;10092:37;;;;;;:::i;:::-;;;;;;;;10149:1;10143:5;:7;10140:149;;;10189:35;10218:5;10189:9;:24;10207:4;10189:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;10164:9;:24;10182:4;10164:24;;;;;;;;;;;;;;;:60;;;;10265:4;10242:35;;10251:4;10242:35;;;10271:5;10242:35;;;;;;:::i;:::-;;;;;;;;10140:149;8517:1779;8448:1848;;;:::o;2846:190::-;2932:7;2965:1;2960;:6;;2968:12;2952:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2992:9;3008:1;3004;:5;;;;:::i;:::-;2992:17;;3027:1;3020:8;;;2846:190;;;;;:::o;10958:106::-;11027:11;;;;;;;;;;;11019:29;;:37;11049:6;11019:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10958:106;:::o;10304:480::-;6411:4;6400:8;;:15;;;;;;;;;;;;;;;;;;10379:21:::1;10417:1;10403:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10379:40;;10448:4;10430;10435:1;10430:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10474:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10464:4;10469:1;10464:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10507:62;10524:4;10539:15;;;;;;;;;;;10557:11;10507:8;:62::i;:::-;10580:15;;;;;;;;;;;:66;;;10661:11;10687:1;10703:4;10730;10750:15;10580:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10368:416;6449:5:::0;6438:8;;:16;;;;;;;;;;;;;;;;;;10304:480;:::o;3044:246::-;3102:7;3131:1;3126;:6;3122:47;;3156:1;3149:8;;;;3122:47;3179:9;3195:1;3191;:5;;;;:::i;:::-;3179:17;;3224:1;3219;3215;:5;;;;:::i;:::-;:10;3207:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3281:1;3274:8;;;3044:246;;;;;:::o;3298:132::-;3356:7;3383:39;3387:1;3390;3383:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3376:46;;3298:132;;;;:::o;2702:136::-;2760:7;2787:43;2791:1;2794;2787:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2780:50;;2702:136;;;;:::o;2515:179::-;2573:7;2593:9;2609:1;2605;:5;;;;:::i;:::-;2593:17;;2634:1;2629;:6;;2621:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2685:1;2678:8;;;2515:179;;;;:::o;3438:189::-;3524:7;3556:1;3552;:5;3559:12;3544:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3583:9;3599:1;3595;:5;;;;:::i;:::-;3583:17;;3618:1;3611:8;;;3438:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:329::-;4192:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:119;;;4247:79;;:::i;:::-;4209:119;4367:1;4392:53;4437:7;4428:6;4417:9;4413:22;4392:53;:::i;:::-;4382:63;;4338:117;4133:329;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::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:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:182::-;9337:34;9333:1;9325:6;9321:14;9314:58;9197:182;:::o;9385:366::-;9527:3;9548:67;9612:2;9607:3;9548:67;:::i;:::-;9541:74;;9624:93;9713:3;9624:93;:::i;:::-;9742:2;9737:3;9733:12;9726:19;;9385:366;;;:::o;9757:419::-;9923:4;9961:2;9950:9;9946:18;9938:26;;10010:9;10004:4;10000:20;9996:1;9985:9;9981:17;9974:47;10038:131;10164:4;10038:131;:::i;:::-;10030:139;;9757:419;;;:::o;10182:173::-;10322:25;10318:1;10310:6;10306:14;10299:49;10182:173;:::o;10361:366::-;10503:3;10524:67;10588:2;10583:3;10524:67;:::i;:::-;10517:74;;10600:93;10689:3;10600:93;:::i;:::-;10718:2;10713:3;10709:12;10702:19;;10361:366;;;:::o;10733:419::-;10899:4;10937:2;10926:9;10922:18;10914:26;;10986:9;10980:4;10976:20;10972:1;10961:9;10957:17;10950:47;11014:131;11140:4;11014:131;:::i;:::-;11006:139;;10733:419;;;:::o;11158:180::-;11206:77;11203:1;11196:88;11303:4;11300:1;11293:15;11327:4;11324:1;11317:15;11344:102;11386:8;11433:5;11430:1;11426:13;11405:34;;11344:102;;;:::o;11452:848::-;11513:5;11520:4;11544:6;11535:15;;11568:5;11559:14;;11582:712;11603:1;11593:8;11590:15;11582:712;;;11698:4;11693:3;11689:14;11683:4;11680:24;11677:50;;;11707:18;;:::i;:::-;11677:50;11757:1;11747:8;11743:16;11740:451;;;12172:4;12165:5;12161:16;12152:25;;11740:451;12222:4;12216;12212:15;12204:23;;12252:32;12275:8;12252:32;:::i;:::-;12240:44;;11582:712;;;11452:848;;;;;;;:::o;12306:1073::-;12360:5;12551:8;12541:40;;12572:1;12563:10;;12574:5;;12541:40;12600:4;12590:36;;12617:1;12608:10;;12619:5;;12590:36;12686:4;12734:1;12729:27;;;;12770:1;12765:191;;;;12679:277;;12729:27;12747:1;12738:10;;12749:5;;;12765:191;12810:3;12800:8;12797:17;12794:43;;;12817:18;;:::i;:::-;12794:43;12866:8;12863:1;12859:16;12850:25;;12901:3;12894:5;12891:14;12888:40;;;12908:18;;:::i;:::-;12888:40;12941:5;;;12679:277;;13065:2;13055:8;13052:16;13046:3;13040:4;13037:13;13033:36;13015:2;13005:8;13002:16;12997:2;12991:4;12988:12;12984:35;12968:111;12965:246;;;13121:8;13115:4;13111:19;13102:28;;13156:3;13149:5;13146:14;13143:40;;;13163:18;;:::i;:::-;13143:40;13196:5;;12965:246;13236:42;13274:3;13264:8;13258:4;13255:1;13236:42;:::i;:::-;13221:57;;;;13310:4;13305:3;13301:14;13294:5;13291:25;13288:51;;;13319:18;;:::i;:::-;13288:51;13368:4;13361:5;13357:16;13348:25;;12306:1073;;;;;;:::o;13385:281::-;13443:5;13467:23;13485:4;13467:23;:::i;:::-;13459:31;;13511:25;13527:8;13511:25;:::i;:::-;13499:37;;13555:104;13592:66;13582:8;13576:4;13555:104;:::i;:::-;13546:113;;13385:281;;;;:::o;13672:410::-;13712:7;13735:20;13753:1;13735:20;:::i;:::-;13730:25;;13769:20;13787:1;13769:20;:::i;:::-;13764:25;;13824:1;13821;13817:9;13846:30;13864:11;13846:30;:::i;:::-;13835:41;;14025:1;14016:7;14012:15;14009:1;14006:22;13986:1;13979:9;13959:83;13936:139;;14055:18;;:::i;:::-;13936:139;13720:362;13672:410;;;;:::o;14088:173::-;14228:25;14224:1;14216:6;14212:14;14205:49;14088:173;:::o;14267:366::-;14409:3;14430:67;14494:2;14489:3;14430:67;:::i;:::-;14423:74;;14506:93;14595:3;14506:93;:::i;:::-;14624:2;14619:3;14615:12;14608:19;;14267:366;;;:::o;14639:419::-;14805:4;14843:2;14832:9;14828:18;14820:26;;14892:9;14886:4;14882:20;14878:1;14867:9;14863:17;14856:47;14920:131;15046:4;14920:131;:::i;:::-;14912:139;;14639:419;;;:::o;15064:143::-;15121:5;15152:6;15146:13;15137:22;;15168:33;15195:5;15168:33;:::i;:::-;15064:143;;;;:::o;15213:351::-;15283:6;15332:2;15320:9;15311:7;15307:23;15303:32;15300:119;;;15338:79;;:::i;:::-;15300:119;15458:1;15483:64;15539:7;15530:6;15519:9;15515:22;15483:64;:::i;:::-;15473:74;;15429:128;15213:351;;;;:::o;15570:332::-;15691:4;15729:2;15718:9;15714:18;15706:26;;15742:71;15810:1;15799:9;15795:17;15786:6;15742:71;:::i;:::-;15823:72;15891:2;15880:9;15876:18;15867:6;15823:72;:::i;:::-;15570:332;;;;;:::o;15908:85::-;15953:7;15982:5;15971:16;;15908:85;;;:::o;15999:60::-;16027:3;16048:5;16041:12;;15999:60;;;:::o;16065:158::-;16123:9;16156:61;16174:42;16183:32;16209:5;16183:32;:::i;:::-;16174:42;:::i;:::-;16156:61;:::i;:::-;16143:74;;16065:158;;;:::o;16229:147::-;16324:45;16363:5;16324:45;:::i;:::-;16319:3;16312:58;16229:147;;:::o;16382:807::-;16631:4;16669:3;16658:9;16654:19;16646:27;;16683:71;16751:1;16740:9;16736:17;16727:6;16683:71;:::i;:::-;16764:72;16832:2;16821:9;16817:18;16808:6;16764:72;:::i;:::-;16846:80;16922:2;16911:9;16907:18;16898:6;16846:80;:::i;:::-;16936;17012:2;17001:9;16997:18;16988:6;16936:80;:::i;:::-;17026:73;17094:3;17083:9;17079:19;17070:6;17026:73;:::i;:::-;17109;17177:3;17166:9;17162:19;17153:6;17109:73;:::i;:::-;16382:807;;;;;;;;;:::o;17195:143::-;17252:5;17283:6;17277:13;17268:22;;17299:33;17326:5;17299:33;:::i;:::-;17195:143;;;;:::o;17344:663::-;17432:6;17440;17448;17497:2;17485:9;17476:7;17472:23;17468:32;17465:119;;;17503:79;;:::i;:::-;17465:119;17623:1;17648:64;17704:7;17695:6;17684:9;17680:22;17648:64;:::i;:::-;17638:74;;17594:128;17761:2;17787:64;17843:7;17834:6;17823:9;17819:22;17787:64;:::i;:::-;17777:74;;17732:129;17900:2;17926:64;17982:7;17973:6;17962:9;17958:22;17926:64;:::i;:::-;17916:74;;17871:129;17344:663;;;;;:::o;18013:332::-;18134:4;18172:2;18161:9;18157:18;18149:26;;18185:71;18253:1;18242:9;18238:17;18229:6;18185:71;:::i;:::-;18266:72;18334:2;18323:9;18319:18;18310:6;18266:72;:::i;:::-;18013:332;;;;;:::o;18351:116::-;18421:21;18436:5;18421:21;:::i;:::-;18414:5;18411:32;18401:60;;18457:1;18454;18447:12;18401:60;18351:116;:::o;18473:137::-;18527:5;18558:6;18552:13;18543:22;;18574:30;18598:5;18574:30;:::i;:::-;18473:137;;;;:::o;18616:345::-;18683:6;18732:2;18720:9;18711:7;18707:23;18703:32;18700:119;;;18738:79;;:::i;:::-;18700:119;18858:1;18883:61;18936:7;18927:6;18916:9;18912:22;18883:61;:::i;:::-;18873:71;;18829:125;18616:345;;;;:::o;18967:180::-;19015:77;19012:1;19005:88;19112:4;19109:1;19102:15;19136:4;19133:1;19126:15;19153:233;19192:3;19215:24;19233:5;19215:24;:::i;:::-;19206:33;;19261:66;19254:5;19251:77;19248:103;;19331:18;;:::i;:::-;19248:103;19378:1;19371:5;19367:13;19360:20;;19153:233;;;:::o;19392:166::-;19532:18;19528:1;19520:6;19516:14;19509:42;19392:166;:::o;19564:366::-;19706:3;19727:67;19791:2;19786:3;19727:67;:::i;:::-;19720:74;;19803:93;19892:3;19803:93;:::i;:::-;19921:2;19916:3;19912:12;19905:19;;19564:366;;;:::o;19936:419::-;20102:4;20140:2;20129:9;20125:18;20117:26;;20189:9;20183:4;20179:20;20175:1;20164:9;20160:17;20153:47;20217:131;20343:4;20217:131;:::i;:::-;20209:139;;19936:419;;;:::o;20361:223::-;20501:34;20497:1;20489:6;20485:14;20478:58;20570:6;20565:2;20557:6;20553:15;20546:31;20361:223;:::o;20590:366::-;20732:3;20753:67;20817:2;20812:3;20753:67;:::i;:::-;20746:74;;20829:93;20918:3;20829:93;:::i;:::-;20947:2;20942:3;20938:12;20931:19;;20590:366;;;:::o;20962:419::-;21128:4;21166:2;21155:9;21151:18;21143:26;;21215:9;21209:4;21205:20;21201:1;21190:9;21186:17;21179:47;21243:131;21369:4;21243:131;:::i;:::-;21235:139;;20962:419;;;:::o;21387:221::-;21527:34;21523:1;21515:6;21511:14;21504:58;21596:4;21591:2;21583:6;21579:15;21572:29;21387:221;:::o;21614:366::-;21756:3;21777:67;21841:2;21836:3;21777:67;:::i;:::-;21770:74;;21853:93;21942:3;21853:93;:::i;:::-;21971:2;21966:3;21962:12;21955:19;;21614:366;;;:::o;21986:419::-;22152:4;22190:2;22179:9;22175:18;22167:26;;22239:9;22233:4;22229:20;22225:1;22214:9;22210:17;22203:47;22267:131;22393:4;22267:131;:::i;:::-;22259:139;;21986:419;;;:::o;22411:224::-;22551:34;22547:1;22539:6;22535:14;22528:58;22620:7;22615:2;22607:6;22603:15;22596:32;22411:224;:::o;22641:366::-;22783:3;22804:67;22868:2;22863:3;22804:67;:::i;:::-;22797:74;;22880:93;22969:3;22880:93;:::i;:::-;22998:2;22993:3;22989:12;22982:19;;22641:366;;;:::o;23013:419::-;23179:4;23217:2;23206:9;23202:18;23194:26;;23266:9;23260:4;23256:20;23252:1;23241:9;23237:17;23230:47;23294:131;23420:4;23294:131;:::i;:::-;23286:139;;23013:419;;;:::o;23438:222::-;23578:34;23574:1;23566:6;23562:14;23555:58;23647:5;23642:2;23634:6;23630:15;23623:30;23438:222;:::o;23666:366::-;23808:3;23829:67;23893:2;23888:3;23829:67;:::i;:::-;23822:74;;23905:93;23994:3;23905:93;:::i;:::-;24023:2;24018:3;24014:12;24007:19;;23666:366;;;:::o;24038:419::-;24204:4;24242:2;24231:9;24227:18;24219:26;;24291:9;24285:4;24281:20;24277:1;24266:9;24262:17;24255:47;24319:131;24445:4;24319:131;:::i;:::-;24311:139;;24038:419;;;:::o;24463:228::-;24603:34;24599:1;24591:6;24587:14;24580:58;24672:11;24667:2;24659:6;24655:15;24648:36;24463:228;:::o;24697:366::-;24839:3;24860:67;24924:2;24919:3;24860:67;:::i;:::-;24853:74;;24936:93;25025:3;24936:93;:::i;:::-;25054:2;25049:3;25045:12;25038:19;;24697:366;;;:::o;25069:419::-;25235:4;25273:2;25262:9;25258:18;25250:26;;25322:9;25316:4;25312:20;25308:1;25297:9;25293:17;25286:47;25350:131;25476:4;25350:131;:::i;:::-;25342:139;;25069:419;;;:::o;25494:191::-;25534:3;25553:20;25571:1;25553:20;:::i;:::-;25548:25;;25587:20;25605:1;25587:20;:::i;:::-;25582:25;;25630:1;25627;25623:9;25616:16;;25651:3;25648:1;25645:10;25642:36;;;25658:18;;:::i;:::-;25642:36;25494:191;;;;:::o;25691:175::-;25831:27;25827:1;25819:6;25815:14;25808:51;25691:175;:::o;25872:366::-;26014:3;26035:67;26099:2;26094:3;26035:67;:::i;:::-;26028:74;;26111:93;26200:3;26111:93;:::i;:::-;26229:2;26224:3;26220:12;26213:19;;25872:366;;;:::o;26244:419::-;26410:4;26448:2;26437:9;26433:18;26425:26;;26497:9;26491:4;26487:20;26483:1;26472:9;26468:17;26461:47;26525:131;26651:4;26525:131;:::i;:::-;26517:139;;26244:419;;;:::o;26669:176::-;26809:28;26805:1;26797:6;26793:14;26786:52;26669:176;:::o;26851:366::-;26993:3;27014:67;27078:2;27073:3;27014:67;:::i;:::-;27007:74;;27090:93;27179:3;27090:93;:::i;:::-;27208:2;27203:3;27199:12;27192:19;;26851:366;;;:::o;27223:419::-;27389:4;27427:2;27416:9;27412:18;27404:26;;27476:9;27470:4;27466:20;27462:1;27451:9;27447:17;27440:47;27504:131;27630:4;27504:131;:::i;:::-;27496:139;;27223:419;;;:::o;27648:194::-;27688:4;27708:20;27726:1;27708:20;:::i;:::-;27703:25;;27742:20;27760:1;27742:20;:::i;:::-;27737:25;;27786:1;27783;27779:9;27771:17;;27810:1;27804:4;27801:11;27798:37;;;27815:18;;:::i;:::-;27798:37;27648:194;;;;:::o;27848:114::-;27915:6;27949:5;27943:12;27933:22;;27848:114;;;:::o;27968:184::-;28067:11;28101:6;28096:3;28089:19;28141:4;28136:3;28132:14;28117:29;;27968:184;;;;:::o;28158:132::-;28225:4;28248:3;28240:11;;28278:4;28273:3;28269:14;28261:22;;28158:132;;;:::o;28296:108::-;28373:24;28391:5;28373:24;:::i;:::-;28368:3;28361:37;28296:108;;:::o;28410:179::-;28479:10;28500:46;28542:3;28534:6;28500:46;:::i;:::-;28578:4;28573:3;28569:14;28555:28;;28410:179;;;;:::o;28595:113::-;28665:4;28697;28692:3;28688:14;28680:22;;28595:113;;;:::o;28744:732::-;28863:3;28892:54;28940:5;28892:54;:::i;:::-;28962:86;29041:6;29036:3;28962:86;:::i;:::-;28955:93;;29072:56;29122:5;29072:56;:::i;:::-;29151:7;29182:1;29167:284;29192:6;29189:1;29186:13;29167:284;;;29268:6;29262:13;29295:63;29354:3;29339:13;29295:63;:::i;:::-;29288:70;;29381:60;29434:6;29381:60;:::i;:::-;29371:70;;29227:224;29214:1;29211;29207:9;29202:14;;29167:284;;;29171:14;29467:3;29460:10;;28868:608;;;28744:732;;;;:::o;29482:831::-;29745:4;29783:3;29772:9;29768:19;29760:27;;29797:71;29865:1;29854:9;29850:17;29841:6;29797:71;:::i;:::-;29878:80;29954:2;29943:9;29939:18;29930:6;29878:80;:::i;:::-;30005:9;29999:4;29995:20;29990:2;29979:9;29975:18;29968:48;30033:108;30136:4;30127:6;30033:108;:::i;:::-;30025:116;;30151:72;30219:2;30208:9;30204:18;30195:6;30151:72;:::i;:::-;30233:73;30301:3;30290:9;30286:19;30277:6;30233:73;:::i;:::-;29482:831;;;;;;;;:::o;30319:180::-;30367:77;30364:1;30357:88;30464:4;30461:1;30454:15;30488:4;30485:1;30478:15;30505:185;30545:1;30562:20;30580:1;30562:20;:::i;:::-;30557:25;;30596:20;30614:1;30596:20;:::i;:::-;30591:25;;30635:1;30625:35;;30640:18;;:::i;:::-;30625:35;30682:1;30679;30675:9;30670:14;;30505:185;;;;:::o;30696:220::-;30836:34;30832:1;30824:6;30820:14;30813:58;30905:3;30900:2;30892:6;30888:15;30881:28;30696:220;:::o;30922:366::-;31064:3;31085:67;31149:2;31144:3;31085:67;:::i;:::-;31078:74;;31161:93;31250:3;31161:93;:::i;:::-;31279:2;31274:3;31270:12;31263:19;;30922:366;;;:::o;31294:419::-;31460:4;31498:2;31487:9;31483:18;31475:26;;31547:9;31541:4;31537:20;31533:1;31522:9;31518:17;31511:47;31575:131;31701:4;31575:131;:::i;:::-;31567:139;;31294:419;;;:::o;31719:177::-;31859:29;31855:1;31847:6;31843:14;31836:53;31719:177;:::o;31902:366::-;32044:3;32065:67;32129:2;32124:3;32065:67;:::i;:::-;32058:74;;32141:93;32230:3;32141:93;:::i;:::-;32259:2;32254:3;32250:12;32243:19;;31902:366;;;:::o;32274:419::-;32440:4;32478:2;32467:9;32463:18;32455:26;;32527:9;32521:4;32517:20;32513:1;32502:9;32498:17;32491:47;32555:131;32681:4;32555:131;:::i;:::-;32547:139;;32274:419;;;:::o

Swarm Source

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