ETH Price: $2,496.81 (+0.48%)

Token

ConfX (CONFX)
 

Overview

Max Total Supply

100,000,000 CONFX

Holders

27

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ConfX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*  ConfX: Elevate your meetings with AR and AI! Create dynamic, engaging, 
    and secure experiences using cutting-edge Web3 hybrid technology.
    Website: https://confx.io/
    App: https://app.confx.io/
    Twitter: https://twitter.com/confx_io
    Medium: https://confx.medium.com/
    Telegram: https://t.me/confx_io
    Documentation: https://docs.confx.io/
*/

pragma solidity 0.8.19;

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

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

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

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

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

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

    function transferOwner(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}



contract ConfX is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _IsLimitFree;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;


    uint256 public buyTax = 35;
    uint256 public sellTax = 55;

    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 40000;
    uint256 private maxSwap = onePercent*5/10;
    uint256 public MaxPerTxn = onePercent*15/10;
    uint256 public MaxPerWallet = onePercent*15/10;

    
    string private constant _name = "ConfX";
    string private constant _symbol = "CONFX";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public DevAddress ;
    address immutable public OperationAddress;
    address immutable public EcosystemAddress;

    bool private launch = false;



    constructor() {
        OperationAddress  = 0xb8e6Fd3116b2361B09860a9d90Ef772Dee28FeCc;   
        DevAddress = 0xf32F93ffF39ac9Ff6ce861Ee95aBB50Cd5191e78;        
        EcosystemAddress = 0xD7c99e5c46120319d8583c00FFDfD3306D7Cf556;     
        _balance[msg.sender] = _totalSupply;
        _IsLimitFree[DevAddress ] = 1;
        _IsLimitFree[OperationAddress ] = 1;
        _IsLimitFree[EcosystemAddress ] = 1;
        _IsLimitFree[msg.sender] = 1;
        _IsLimitFree[address(this)] = 1;

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

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

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

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

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: owner can't be zero address");
        require(spender != address(0), "ERC20: spender can't be zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


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

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

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


    function RemoveLimits() external onlyOwner {
        MaxPerTxn = _totalSupply;
        MaxPerWallet = _totalSupply;
    }

    function DecreaseTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= buyTax && newSellTax <= sellTax, "Tax cannot be increased");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }
    // Taxes can only be decreased and can never be increased.

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

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

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from zero address not allowed");
        require(amount > 0, "ERC20: amount should be greater than zero");
        uint256 _tax = 0;
        if (_IsLimitFree[from] == 0 && _IsLimitFree[to] == 0)
        {
            require(launch, "Trading not started yet");
            require(amount <= MaxPerTxn, "MaxPerTxn Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MaxPerWallet, "MaxPerWallet Enabled at launch");
            if (from == uniswapV2Pair) {
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = balanceOf(address(this));
                if (tokensToSwap > minimumSwapAmount) { 
                    uint256 mxSw = maxSwap;
                    if (tokensToSwap > amount) tokensToSwap = amount;
                    if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                    swapTokensForEth(tokensToSwap);
                }
                _tax = sellTax;
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

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

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

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        bool success;
        uint256 devtax = address(this).balance *425/1000;    
        uint256 Operation = address(this).balance *425/1000;
        uint256 Ecosystem = address(this).balance *15/100;

        (success, ) = EcosystemAddress.call{value: Ecosystem}("");
        (success, ) = OperationAddress.call{value: Operation}("");
        (success, ) = DevAddress .call{value: devtax}("");
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"DecreaseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EcosystemAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MaxPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OperationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Weth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"ownershipRenounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e060405260236004556037600555600a600560646012600a620000249190620006ab565b6305f5e100620000359190620006fc565b62000041919062000776565b6200004d9190620006fc565b62000059919062000776565b600655600a600f60646012600a620000729190620006ab565b6305f5e100620000839190620006fc565b6200008f919062000776565b6200009b9190620006fc565b620000a7919062000776565b600755600a600f60646012600a620000c09190620006ab565b6305f5e100620000d19190620006fc565b620000dd919062000776565b620000e99190620006fc565b620000f5919062000776565b6008556000600a60146101000a81548160ff0219169083151502179055503480156200012057600080fd5b506000620001336200050960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073b8e6fd3116b2361b09860a9d90ef772dee28fecc73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505073f32f93fff39ac9ff6ce861ee95abb50cd5191e7873ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073d7c99e5c46120319d8583c00ffdfd3306d7cf55673ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a620002b99190620006ab565b6305f5e100620002ca9190620006fc565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060c05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200047c6200050960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004db9190620006ab565b6305f5e100620004ec9190620006fc565b604051620004fb9190620007bf565b60405180910390a3620007dc565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200059f5780860481111562000577576200057662000511565b5b6001851615620005875780820291505b8081029050620005978562000540565b945062000557565b94509492505050565b600082620005ba57600190506200068d565b81620005ca57600090506200068d565b8160018114620005e35760028114620005ee5762000624565b60019150506200068d565b60ff84111562000603576200060262000511565b5b8360020a9150848211156200061d576200061c62000511565b5b506200068d565b5060208310610133831016604e8410600b84101617156200065e5782820a90508381111562000658576200065762000511565b5b6200068d565b6200066d84848460016200054d565b9250905081840481111562000687576200068662000511565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006b88262000694565b9150620006c5836200069e565b9250620006f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005a8565b905092915050565b6000620007098262000694565b9150620007168362000694565b9250828202620007268162000694565b9150828204841483151762000740576200073f62000511565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007838262000694565b9150620007908362000694565b925082620007a357620007a262000747565b5b828204905092915050565b620007b98162000694565b82525050565b6000602082019050620007d66000830184620007ae565b92915050565b60805160a05160c0516133e862000821600039600081816111a50152611fc40152600081816111c901526120500152600081816111ed01526120dc01526133e86000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063a9059cbb1161008a578063cc1776d311610064578063cc1776d314610579578063d6d47e41146105a4578063d7f73858146105cf578063dd62ed3e146105f8576101a7565b8063a9059cbb146104fc578063ad31100114610539578063c0267af314610550576101a7565b806389a4c1a0116100c657806389a4c1a0146104505780638bec1c6d1461047b5780638da5cb5b146104a657806395d89b41146104d1576101a7565b806370a08231146103bd5780638013f73a146103fa57806384e2d57814610425576101a7565b8063349849a3116101595780634f7041a5116101335780634f7041a5146103295780634fb2e45d1461035457806356ca8a411461037d57806356cd40e7146103a6576101a7565b8063349849a3146102be57806349bd5a5e146102d55780634e23803f14610300576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063293230b81461027c578063313ce56714610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610635565b6040516101ce9190612441565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906124fc565b610672565b60405161020b9190612557565b60405180910390f35b34801561022057600080fd5b50610229610690565b6040516102369190612581565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061259c565b6106b4565b6040516102739190612557565b60405180910390f35b34801561028857600080fd5b506102916107d4565b005b34801561029f57600080fd5b506102a8610cf1565b6040516102b5919061260b565b60405180910390f35b3480156102ca57600080fd5b506102d3610cfa565b005b3480156102e157600080fd5b506102ea610e07565b6040516102f79190612635565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612650565b610e2d565b005b34801561033557600080fd5b5061033e610f0a565b60405161034b9190612581565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190612650565b610f10565b005b34801561038957600080fd5b506103a4600480360381019061039f919061267d565b610fb1565b005b3480156103b257600080fd5b506103bb61107d565b005b3480156103c957600080fd5b506103e460048036038101906103df9190612650565b61115a565b6040516103f19190612581565b60405180910390f35b34801561040657600080fd5b5061040f6111a3565b60405161041c9190612635565b60405180910390f35b34801561043157600080fd5b5061043a6111c7565b6040516104479190612635565b60405180910390f35b34801561045c57600080fd5b506104656111eb565b6040516104729190612635565b60405180910390f35b34801561048757600080fd5b5061049061120f565b60405161049d9190612581565b60405180910390f35b3480156104b257600080fd5b506104bb611215565b6040516104c89190612635565b60405180910390f35b3480156104dd57600080fd5b506104e661123e565b6040516104f39190612441565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906124fc565b61127b565b6040516105309190612557565b60405180910390f35b34801561054557600080fd5b5061054e611299565b005b34801561055c57600080fd5b50610577600480360381019061057291906126aa565b6113ec565b005b34801561058557600080fd5b5061058e6114e6565b60405161059b9190612581565b60405180910390f35b3480156105b057600080fd5b506105b96114ec565b6040516105c69190612581565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190612650565b6114f2565b005b34801561060457600080fd5b5061061f600480360381019061061a91906126ea565b6115cf565b60405161062c9190612581565b60405180910390f35b60606040518060400160405280600581526020017f436f6e6658000000000000000000000000000000000000000000000000000000815250905090565b600061068661067f611656565b848461165e565b6001905092915050565b60006012600a6106a0919061288c565b6305f5e1006106af91906128d7565b905090565b60006106c1848484611827565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070c611656565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107c857828110156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061298b565b60405180910390fd5b6107c7856107bf611656565b85840361165e565b5b60019150509392505050565b6107dc611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090612a1d565b60405180910390fd5b600a60149054906101000a900460ff16156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090612a89565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099f9190612abe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190612abe565b6040518363ffffffff1660e01b8152600401610a69929190612aeb565b6020604051808303816000875af1158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac9190612abe565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b3530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b21919061288c565b6305f5e100610b3091906128d7565b61165e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b7e3061115a565b600080610b89611215565b426040518863ffffffff1660e01b8152600401610bab96959493929190612b59565b60606040518083038185885af1158015610bc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bee9190612bcf565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c90929190612c22565b6020604051808303816000875af1158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd39190612c77565b506001600a60146101000a81548160ff021916908315150217905550565b60006012905090565b610d02611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8690612a1d565b60405180910390fd5b6000610d99611215565b73ffffffffffffffffffffffffffffffffffffffff1647604051610dbc90612cd5565b60006040518083038185875af1925050503d8060008114610df9576040519150601f19603f3d011682016040523d82523d6000602084013e610dfe565b606091505b50508091505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e35611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990612a1d565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60045481565b610f18611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90612a1d565b60405180910390fd5b610fae81611bfb565b50565b610fb9611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90612a1d565b60405180910390fd5b60006110513061115a565b905060006064828461106391906128d7565b61106d9190612d19565b905061107881611d27565b505050565b611085611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990612a1d565b60405180910390fd5b6012600a611120919061288c565b6305f5e10061112f91906128d7565b6007819055506012600a611143919061288c565b6305f5e10061115291906128d7565b600881905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f434f4e4658000000000000000000000000000000000000000000000000000000815250905090565b600061128f611288611656565b8484611827565b6001905092915050565b6112a1611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612a1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113f4611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612a1d565b60405180910390fd5b600454821115801561149557506005548111155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90612d96565b60405180910390fd5b81600481905550806005819055505050565b60055481565b60075481565b6114fa611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612a1d565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390612eba565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161181a9190612581565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90612f4c565b60405180910390fd5b600081116118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090612fde565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561196857506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611be957600a60149054906101000a900460ff166119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b39061304a565b60405180910390fd5b600754821115611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f8906130b6565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a8d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aeb5760085482611a9f8561115a565b611aa991906130d6565b1115611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae190613156565b60405180910390fd5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b4a576004549050611be8565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be7576000611baa3061115a565b9050619c40811115611be0576000600654905083821115611bc9578391505b80821115611bd5578091505b611bde82611d27565b505b6005549150505b5b5b611bf58484848461216e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c61906131e8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600267ffffffffffffffff811115611d4457611d43613208565b5b604051908082528060200260200182016040528015611d725781602001602082028036833780820191505090505b5090503081600081518110611d8a57611d89613237565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e559190612abe565b81600181518110611e6957611e68613237565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ed030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461165e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f34959493929190613324565b600060405180830381600087803b158015611f4e57600080fd5b505af1158015611f62573d6000803e3d6000fd5b505050506000806103e86101a947611f7a91906128d7565b611f849190612d19565b905060006103e86101a947611f9991906128d7565b611fa39190612d19565b905060006064600f47611fb691906128d7565b611fc09190612d19565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168160405161200690612cd5565b60006040518083038185875af1925050503d8060008114612043576040519150601f19603f3d011682016040523d82523d6000602084013e612048565b606091505b5050809450507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405161209290612cd5565b60006040518083038185875af1925050503d80600081146120cf576040519150601f19603f3d011682016040523d82523d6000602084013e6120d4565b606091505b5050809450507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168360405161211e90612cd5565b60006040518083038185875af1925050503d806000811461215b576040519150601f19603f3d011682016040523d82523d6000602084013e612160565b606091505b505080945050505050505050565b60006064828461217e91906128d7565b6121889190612d19565b905060008184612198919061337e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e5919061337e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227391906130d6565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230191906130d6565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a19190612581565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123eb5780820151818401526020810190506123d0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612413826123b1565b61241d81856123bc565b935061242d8185602086016123cd565b612436816123f7565b840191505092915050565b6000602082019050818103600083015261245b8184612408565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061249382612468565b9050919050565b6124a381612488565b81146124ae57600080fd5b50565b6000813590506124c08161249a565b92915050565b6000819050919050565b6124d9816124c6565b81146124e457600080fd5b50565b6000813590506124f6816124d0565b92915050565b6000806040838503121561251357612512612463565b5b6000612521858286016124b1565b9250506020612532858286016124e7565b9150509250929050565b60008115159050919050565b6125518161253c565b82525050565b600060208201905061256c6000830184612548565b92915050565b61257b816124c6565b82525050565b60006020820190506125966000830184612572565b92915050565b6000806000606084860312156125b5576125b4612463565b5b60006125c3868287016124b1565b93505060206125d4868287016124b1565b92505060406125e5868287016124e7565b9150509250925092565b600060ff82169050919050565b612605816125ef565b82525050565b600060208201905061262060008301846125fc565b92915050565b61262f81612488565b82525050565b600060208201905061264a6000830184612626565b92915050565b60006020828403121561266657612665612463565b5b6000612674848285016124b1565b91505092915050565b60006020828403121561269357612692612463565b5b60006126a1848285016124e7565b91505092915050565b600080604083850312156126c1576126c0612463565b5b60006126cf858286016124e7565b92505060206126e0858286016124e7565b9150509250929050565b6000806040838503121561270157612700612463565b5b600061270f858286016124b1565b9250506020612720858286016124b1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b05780860481111561278c5761278b61272a565b5b600185161561279b5780820291505b80810290506127a985612759565b9450612770565b94509492505050565b6000826127c95760019050612885565b816127d75760009050612885565b81600181146127ed57600281146127f757612826565b6001915050612885565b60ff8411156128095761280861272a565b5b8360020a9150848211156128205761281f61272a565b5b50612885565b5060208310610133831016604e8410600b841016171561285b5782820a9050838111156128565761285561272a565b5b612885565b6128688484846001612766565b9250905081840481111561287f5761287e61272a565b5b81810290505b9392505050565b6000612897826124c6565b91506128a2836125ef565b92506128cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127b9565b905092915050565b60006128e2826124c6565b91506128ed836124c6565b92508282026128fb816124c6565b915082820484148315176129125761291161272a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206973206d6f7265207460008201527f68616e20616c6c6f77656420616d6f756e740000000000000000000000000000602082015250565b60006129756032836123bc565b915061298082612919565b604082019050919050565b600060208201905081810360008301526129a481612968565b9050919050565b7f4f776e61626c653a2063616c6c6572206d75737420626520746865206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a076021836123bc565b9150612a12826129ab565b604082019050919050565b60006020820190508181036000830152612a36816129fa565b9050919050565b7f74726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b6000612a736016836123bc565b9150612a7e82612a3d565b602082019050919050565b60006020820190508181036000830152612aa281612a66565b9050919050565b600081519050612ab88161249a565b92915050565b600060208284031215612ad457612ad3612463565b5b6000612ae284828501612aa9565b91505092915050565b6000604082019050612b006000830185612626565b612b0d6020830184612626565b9392505050565b6000819050919050565b6000819050919050565b6000612b43612b3e612b3984612b14565b612b1e565b6124c6565b9050919050565b612b5381612b28565b82525050565b600060c082019050612b6e6000830189612626565b612b7b6020830188612572565b612b886040830187612b4a565b612b956060830186612b4a565b612ba26080830185612626565b612baf60a0830184612572565b979650505050505050565b600081519050612bc9816124d0565b92915050565b600080600060608486031215612be857612be7612463565b5b6000612bf686828701612bba565b9350506020612c0786828701612bba565b9250506040612c1886828701612bba565b9150509250925092565b6000604082019050612c376000830185612626565b612c446020830184612572565b9392505050565b612c548161253c565b8114612c5f57600080fd5b50565b600081519050612c7181612c4b565b92915050565b600060208284031215612c8d57612c8c612463565b5b6000612c9b84828501612c62565b91505092915050565b600081905092915050565b50565b6000612cbf600083612ca4565b9150612cca82612caf565b600082019050919050565b6000612ce082612cb2565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d24826124c6565b9150612d2f836124c6565b925082612d3f57612d3e612cea565b5b828204905092915050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000612d806017836123bc565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f45524332303a206f776e65722063616e2774206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e126022836123bc565b9150612e1d82612db6565b604082019050919050565b60006020820190508181036000830152612e4181612e05565b9050919050565b7f45524332303a207370656e6465722063616e2774206265207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ea46024836123bc565b9150612eaf82612e48565b604082019050919050565b60006020820190508181036000830152612ed381612e97565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f2061646472657360008201527f73206e6f7420616c6c6f77656400000000000000000000000000000000000000602082015250565b6000612f36602d836123bc565b9150612f4182612eda565b604082019050919050565b60006020820190508181036000830152612f6581612f29565b9050919050565b7f45524332303a20616d6f756e742073686f756c6420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fc86029836123bc565b9150612fd382612f6c565b604082019050919050565b60006020820190508181036000830152612ff781612fbb565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b60006130346017836123bc565b915061303f82612ffe565b602082019050919050565b6000602082019050818103600083015261306381613027565b9050919050565b7f4d617850657254786e20456e61626c6564206174206c61756e63680000000000600082015250565b60006130a0601b836123bc565b91506130ab8261306a565b602082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b60006130e1826124c6565b91506130ec836124c6565b92508282019050808211156131045761310361272a565b5b92915050565b7f4d617850657257616c6c657420456e61626c6564206174206c61756e63680000600082015250565b6000613140601e836123bc565b915061314b8261310a565b602082019050919050565b6000602082019050818103600083015261316f81613133565b9050919050565b7f4f776e61626c653a206e6577206f776e65722073686f756c646e27742062652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006131d2602c836123bc565b91506131dd82613176565b604082019050919050565b60006020820190508181036000830152613201816131c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329b81612488565b82525050565b60006132ad8383613292565b60208301905092915050565b6000602082019050919050565b60006132d182613266565b6132db8185613271565b93506132e683613282565b8060005b838110156133175781516132fe88826132a1565b9750613309836132b9565b9250506001810190506132ea565b5085935050505092915050565b600060a0820190506133396000830188612572565b6133466020830187612b4a565b818103604083015261335881866132c6565b90506133676060830185612626565b6133746080830184612572565b9695505050505050565b6000613389826124c6565b9150613394836124c6565b92508282039050818111156133ac576133ab61272a565b5b9291505056fea26469706673582212204b30691621c0e2fbff2d210b3d5b5c0d103fdc61d9c04a98e7026cd5d5c9521264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063a9059cbb1161008a578063cc1776d311610064578063cc1776d314610579578063d6d47e41146105a4578063d7f73858146105cf578063dd62ed3e146105f8576101a7565b8063a9059cbb146104fc578063ad31100114610539578063c0267af314610550576101a7565b806389a4c1a0116100c657806389a4c1a0146104505780638bec1c6d1461047b5780638da5cb5b146104a657806395d89b41146104d1576101a7565b806370a08231146103bd5780638013f73a146103fa57806384e2d57814610425576101a7565b8063349849a3116101595780634f7041a5116101335780634f7041a5146103295780634fb2e45d1461035457806356ca8a411461037d57806356cd40e7146103a6576101a7565b8063349849a3146102be57806349bd5a5e146102d55780634e23803f14610300576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063293230b81461027c578063313ce56714610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610635565b6040516101ce9190612441565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906124fc565b610672565b60405161020b9190612557565b60405180910390f35b34801561022057600080fd5b50610229610690565b6040516102369190612581565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061259c565b6106b4565b6040516102739190612557565b60405180910390f35b34801561028857600080fd5b506102916107d4565b005b34801561029f57600080fd5b506102a8610cf1565b6040516102b5919061260b565b60405180910390f35b3480156102ca57600080fd5b506102d3610cfa565b005b3480156102e157600080fd5b506102ea610e07565b6040516102f79190612635565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612650565b610e2d565b005b34801561033557600080fd5b5061033e610f0a565b60405161034b9190612581565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190612650565b610f10565b005b34801561038957600080fd5b506103a4600480360381019061039f919061267d565b610fb1565b005b3480156103b257600080fd5b506103bb61107d565b005b3480156103c957600080fd5b506103e460048036038101906103df9190612650565b61115a565b6040516103f19190612581565b60405180910390f35b34801561040657600080fd5b5061040f6111a3565b60405161041c9190612635565b60405180910390f35b34801561043157600080fd5b5061043a6111c7565b6040516104479190612635565b60405180910390f35b34801561045c57600080fd5b506104656111eb565b6040516104729190612635565b60405180910390f35b34801561048757600080fd5b5061049061120f565b60405161049d9190612581565b60405180910390f35b3480156104b257600080fd5b506104bb611215565b6040516104c89190612635565b60405180910390f35b3480156104dd57600080fd5b506104e661123e565b6040516104f39190612441565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906124fc565b61127b565b6040516105309190612557565b60405180910390f35b34801561054557600080fd5b5061054e611299565b005b34801561055c57600080fd5b50610577600480360381019061057291906126aa565b6113ec565b005b34801561058557600080fd5b5061058e6114e6565b60405161059b9190612581565b60405180910390f35b3480156105b057600080fd5b506105b96114ec565b6040516105c69190612581565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190612650565b6114f2565b005b34801561060457600080fd5b5061061f600480360381019061061a91906126ea565b6115cf565b60405161062c9190612581565b60405180910390f35b60606040518060400160405280600581526020017f436f6e6658000000000000000000000000000000000000000000000000000000815250905090565b600061068661067f611656565b848461165e565b6001905092915050565b60006012600a6106a0919061288c565b6305f5e1006106af91906128d7565b905090565b60006106c1848484611827565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070c611656565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107c857828110156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061298b565b60405180910390fd5b6107c7856107bf611656565b85840361165e565b5b60019150509392505050565b6107dc611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090612a1d565b60405180910390fd5b600a60149054906101000a900460ff16156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090612a89565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099f9190612abe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190612abe565b6040518363ffffffff1660e01b8152600401610a69929190612aeb565b6020604051808303816000875af1158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac9190612abe565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b3530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b21919061288c565b6305f5e100610b3091906128d7565b61165e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b7e3061115a565b600080610b89611215565b426040518863ffffffff1660e01b8152600401610bab96959493929190612b59565b60606040518083038185885af1158015610bc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bee9190612bcf565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c90929190612c22565b6020604051808303816000875af1158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd39190612c77565b506001600a60146101000a81548160ff021916908315150217905550565b60006012905090565b610d02611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8690612a1d565b60405180910390fd5b6000610d99611215565b73ffffffffffffffffffffffffffffffffffffffff1647604051610dbc90612cd5565b60006040518083038185875af1925050503d8060008114610df9576040519150601f19603f3d011682016040523d82523d6000602084013e610dfe565b606091505b50508091505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e35611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990612a1d565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60045481565b610f18611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90612a1d565b60405180910390fd5b610fae81611bfb565b50565b610fb9611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90612a1d565b60405180910390fd5b60006110513061115a565b905060006064828461106391906128d7565b61106d9190612d19565b905061107881611d27565b505050565b611085611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990612a1d565b60405180910390fd5b6012600a611120919061288c565b6305f5e10061112f91906128d7565b6007819055506012600a611143919061288c565b6305f5e10061115291906128d7565b600881905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000d7c99e5c46120319d8583c00ffdfd3306d7cf55681565b7f000000000000000000000000b8e6fd3116b2361b09860a9d90ef772dee28fecc81565b7f000000000000000000000000f32f93fff39ac9ff6ce861ee95abb50cd5191e7881565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f434f4e4658000000000000000000000000000000000000000000000000000000815250905090565b600061128f611288611656565b8484611827565b6001905092915050565b6112a1611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612a1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113f4611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612a1d565b60405180910390fd5b600454821115801561149557506005548111155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90612d96565b60405180910390fd5b81600481905550806005819055505050565b60055481565b60075481565b6114fa611656565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612a1d565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390612eba565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161181a9190612581565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90612f4c565b60405180910390fd5b600081116118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090612fde565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561196857506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611be957600a60149054906101000a900460ff166119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b39061304a565b60405180910390fd5b600754821115611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f8906130b6565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a8d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aeb5760085482611a9f8561115a565b611aa991906130d6565b1115611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae190613156565b60405180910390fd5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b4a576004549050611be8565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be7576000611baa3061115a565b9050619c40811115611be0576000600654905083821115611bc9578391505b80821115611bd5578091505b611bde82611d27565b505b6005549150505b5b5b611bf58484848461216e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c61906131e8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600267ffffffffffffffff811115611d4457611d43613208565b5b604051908082528060200260200182016040528015611d725781602001602082028036833780820191505090505b5090503081600081518110611d8a57611d89613237565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e559190612abe565b81600181518110611e6957611e68613237565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ed030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461165e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f34959493929190613324565b600060405180830381600087803b158015611f4e57600080fd5b505af1158015611f62573d6000803e3d6000fd5b505050506000806103e86101a947611f7a91906128d7565b611f849190612d19565b905060006103e86101a947611f9991906128d7565b611fa39190612d19565b905060006064600f47611fb691906128d7565b611fc09190612d19565b90507f000000000000000000000000d7c99e5c46120319d8583c00ffdfd3306d7cf55673ffffffffffffffffffffffffffffffffffffffff168160405161200690612cd5565b60006040518083038185875af1925050503d8060008114612043576040519150601f19603f3d011682016040523d82523d6000602084013e612048565b606091505b5050809450507f000000000000000000000000b8e6fd3116b2361b09860a9d90ef772dee28fecc73ffffffffffffffffffffffffffffffffffffffff168260405161209290612cd5565b60006040518083038185875af1925050503d80600081146120cf576040519150601f19603f3d011682016040523d82523d6000602084013e6120d4565b606091505b5050809450507f000000000000000000000000f32f93fff39ac9ff6ce861ee95abb50cd5191e7873ffffffffffffffffffffffffffffffffffffffff168360405161211e90612cd5565b60006040518083038185875af1925050503d806000811461215b576040519150601f19603f3d011682016040523d82523d6000602084013e612160565b606091505b505080945050505050505050565b60006064828461217e91906128d7565b6121889190612d19565b905060008184612198919061337e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e5919061337e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227391906130d6565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230191906130d6565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a19190612581565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123eb5780820151818401526020810190506123d0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612413826123b1565b61241d81856123bc565b935061242d8185602086016123cd565b612436816123f7565b840191505092915050565b6000602082019050818103600083015261245b8184612408565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061249382612468565b9050919050565b6124a381612488565b81146124ae57600080fd5b50565b6000813590506124c08161249a565b92915050565b6000819050919050565b6124d9816124c6565b81146124e457600080fd5b50565b6000813590506124f6816124d0565b92915050565b6000806040838503121561251357612512612463565b5b6000612521858286016124b1565b9250506020612532858286016124e7565b9150509250929050565b60008115159050919050565b6125518161253c565b82525050565b600060208201905061256c6000830184612548565b92915050565b61257b816124c6565b82525050565b60006020820190506125966000830184612572565b92915050565b6000806000606084860312156125b5576125b4612463565b5b60006125c3868287016124b1565b93505060206125d4868287016124b1565b92505060406125e5868287016124e7565b9150509250925092565b600060ff82169050919050565b612605816125ef565b82525050565b600060208201905061262060008301846125fc565b92915050565b61262f81612488565b82525050565b600060208201905061264a6000830184612626565b92915050565b60006020828403121561266657612665612463565b5b6000612674848285016124b1565b91505092915050565b60006020828403121561269357612692612463565b5b60006126a1848285016124e7565b91505092915050565b600080604083850312156126c1576126c0612463565b5b60006126cf858286016124e7565b92505060206126e0858286016124e7565b9150509250929050565b6000806040838503121561270157612700612463565b5b600061270f858286016124b1565b9250506020612720858286016124b1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b05780860481111561278c5761278b61272a565b5b600185161561279b5780820291505b80810290506127a985612759565b9450612770565b94509492505050565b6000826127c95760019050612885565b816127d75760009050612885565b81600181146127ed57600281146127f757612826565b6001915050612885565b60ff8411156128095761280861272a565b5b8360020a9150848211156128205761281f61272a565b5b50612885565b5060208310610133831016604e8410600b841016171561285b5782820a9050838111156128565761285561272a565b5b612885565b6128688484846001612766565b9250905081840481111561287f5761287e61272a565b5b81810290505b9392505050565b6000612897826124c6565b91506128a2836125ef565b92506128cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127b9565b905092915050565b60006128e2826124c6565b91506128ed836124c6565b92508282026128fb816124c6565b915082820484148315176129125761291161272a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206973206d6f7265207460008201527f68616e20616c6c6f77656420616d6f756e740000000000000000000000000000602082015250565b60006129756032836123bc565b915061298082612919565b604082019050919050565b600060208201905081810360008301526129a481612968565b9050919050565b7f4f776e61626c653a2063616c6c6572206d75737420626520746865206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a076021836123bc565b9150612a12826129ab565b604082019050919050565b60006020820190508181036000830152612a36816129fa565b9050919050565b7f74726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b6000612a736016836123bc565b9150612a7e82612a3d565b602082019050919050565b60006020820190508181036000830152612aa281612a66565b9050919050565b600081519050612ab88161249a565b92915050565b600060208284031215612ad457612ad3612463565b5b6000612ae284828501612aa9565b91505092915050565b6000604082019050612b006000830185612626565b612b0d6020830184612626565b9392505050565b6000819050919050565b6000819050919050565b6000612b43612b3e612b3984612b14565b612b1e565b6124c6565b9050919050565b612b5381612b28565b82525050565b600060c082019050612b6e6000830189612626565b612b7b6020830188612572565b612b886040830187612b4a565b612b956060830186612b4a565b612ba26080830185612626565b612baf60a0830184612572565b979650505050505050565b600081519050612bc9816124d0565b92915050565b600080600060608486031215612be857612be7612463565b5b6000612bf686828701612bba565b9350506020612c0786828701612bba565b9250506040612c1886828701612bba565b9150509250925092565b6000604082019050612c376000830185612626565b612c446020830184612572565b9392505050565b612c548161253c565b8114612c5f57600080fd5b50565b600081519050612c7181612c4b565b92915050565b600060208284031215612c8d57612c8c612463565b5b6000612c9b84828501612c62565b91505092915050565b600081905092915050565b50565b6000612cbf600083612ca4565b9150612cca82612caf565b600082019050919050565b6000612ce082612cb2565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d24826124c6565b9150612d2f836124c6565b925082612d3f57612d3e612cea565b5b828204905092915050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000612d806017836123bc565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f45524332303a206f776e65722063616e2774206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e126022836123bc565b9150612e1d82612db6565b604082019050919050565b60006020820190508181036000830152612e4181612e05565b9050919050565b7f45524332303a207370656e6465722063616e2774206265207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ea46024836123bc565b9150612eaf82612e48565b604082019050919050565b60006020820190508181036000830152612ed381612e97565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f2061646472657360008201527f73206e6f7420616c6c6f77656400000000000000000000000000000000000000602082015250565b6000612f36602d836123bc565b9150612f4182612eda565b604082019050919050565b60006020820190508181036000830152612f6581612f29565b9050919050565b7f45524332303a20616d6f756e742073686f756c6420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fc86029836123bc565b9150612fd382612f6c565b604082019050919050565b60006020820190508181036000830152612ff781612fbb565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b60006130346017836123bc565b915061303f82612ffe565b602082019050919050565b6000602082019050818103600083015261306381613027565b9050919050565b7f4d617850657254786e20456e61626c6564206174206c61756e63680000000000600082015250565b60006130a0601b836123bc565b91506130ab8261306a565b602082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b60006130e1826124c6565b91506130ec836124c6565b92508282019050808211156131045761310361272a565b5b92915050565b7f4d617850657257616c6c657420456e61626c6564206174206c61756e63680000600082015250565b6000613140601e836123bc565b915061314b8261310a565b602082019050919050565b6000602082019050818103600083015261316f81613133565b9050919050565b7f4f776e61626c653a206e6577206f776e65722073686f756c646e27742062652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b60006131d2602c836123bc565b91506131dd82613176565b604082019050919050565b60006020820190508181036000830152613201816131c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329b81612488565b82525050565b60006132ad8383613292565b60208301905092915050565b6000602082019050919050565b60006132d182613266565b6132db8185613271565b93506132e683613282565b8060005b838110156133175781516132fe88826132a1565b9750613309836132b9565b9250506001810190506132ea565b5085935050505092915050565b600060a0820190506133396000830188612572565b6133466020830187612b4a565b818103604083015261335881866132c6565b90506133676060830185612626565b6133746080830184612572565b9695505050505050565b6000613389826124c6565b9150613394836124c6565b92508282039050818111156133ac576133ab61272a565b5b9291505056fea26469706673582212204b30691621c0e2fbff2d210b3d5b5c0d103fdc61d9c04a98e7026cd5d5c9521264736f6c63430008130033

Deployed Bytecode Sourcemap

3123:7921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5647:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5090:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5815:588;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6756:645;;;;;;;;;;;;;:::i;:::-;;4999:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:137;;;;;;;;;;;;;:::i;:::-;;4015:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7409:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3450:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1815:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9902:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7639:124;;;;;;;;;;;;;:::i;:::-;;5198:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4141:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4093;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4050:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3809:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1600:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4904:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5324:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2171:148;;;;;;;;;;;;;:::i;:::-;;7771:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3483:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3759:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5497:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4813:83;4850:13;4883:5;;;;;;;;;;;;;;;;;4876:12;;4813:83;:::o;5647:160::-;5722:4;5738:39;5747:12;:10;:12::i;:::-;5761:7;5770:6;5738:8;:39::i;:::-;5795:4;5788:11;;5647:160;;;;:::o;5090:100::-;5143:7;3437:2;3571;:13;;;;:::i;:::-;3559:9;:25;;;;:::i;:::-;5163:19;;5090:100;:::o;5815:588::-;5913:4;5930:36;5940:6;5948:9;5959:6;5930:9;:36::i;:::-;5979:24;6006:11;:19;6018:6;6006:19;;;;;;;;;;;;;;;:33;6026:12;:10;:12::i;:::-;6006:33;;;;;;;;;;;;;;;;5979:60;;6073:17;6053:16;:37;6050:324;;6154:6;6134:16;:26;;6108:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:57;6299:6;6307:12;:10;:12::i;:::-;6340:6;6321:16;:25;6290:8;:57::i;:::-;6050:324;6391:4;6384:11;;;5815:588;;;;;:::o;6756:645::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6819:6:::1;;;;;;;;;;;6818:7;6810:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6899:42;6862:15;;:80;;;;;;;;;;;;;;;;;;6987:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6969:55;;;7033:4;7040:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6969:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6953:13;;:110;;;;;;;;;;;;;;;;;;7074:63;7091:4;7106:15;;;;;;;;;;;3437:2;3571;:13;;;;:::i;:::-;3559:9;:25;;;;:::i;:::-;7074:8;:63::i;:::-;7158:15;;;;;;;;;;;:31;;;7197:21;7228:4;7234:24;7252:4;7234:9;:24::i;:::-;7259:1;7261::::0;7263:7:::1;:5;:7::i;:::-;7271:15;7158:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7305:13;;;;;;;;;;;7298:29;;;7336:15;;;;;;;;;;;7354:14;7298:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7389:4;7380:6;;:13;;;;;;;;;;;;;;;;;;6756:645::o:0;4999:83::-;5040:5;3437:2;5058:16;;4999:83;:::o;9756:137::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9802:12:::1;9839:7;:5;:7::i;:::-;:12;;9859:21;9839:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9825:60;;;;;9791:102;9756:137::o:0;4015:28::-;;;;;;;;;;;;;:::o;7409:103::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7503:1:::1;7480:12;:20;7493:6;7480:20;;;;;;;;;;;;;;;:24;;;;7409:103:::0;:::o;3450:26::-;;;;:::o;1815:105::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1884:28:::1;1903:8;1884:18;:28::i;:::-;1815:105:::0;:::o;9902:219::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9969:23:::1;9995:24;10013:4;9995:9;:24::i;:::-;9969:50;;10030:15;10074:3;10057:15;10049:7;:23;;;;:::i;:::-;10048:29;;;;:::i;:::-;10030:47;;10088:25;10105:7;10088:16;:25::i;:::-;9958:163;;9902:219:::0;:::o;7639:124::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3437:2:::1;3571;:13;;;;:::i;:::-;3559:9;:25;;;;:::i;:::-;7693:9;:24;;;;3437:2;3571;:13;;;;:::i;:::-;3559:9;:25;;;;:::i;:::-;7728:12;:27;;;;7639:124::o:0;5198:118::-;5264:7;5291:8;:17;5300:7;5291:17;;;;;;;;;;;;;;;;5284:24;;5198:118;;;:::o;4141:41::-;;;:::o;4093:::-;;;:::o;4050:35::-;;;:::o;3809:46::-;;;;:::o;1600:79::-;1638:7;1665:6;;;;;;;;;;;1658:13;;1600:79;:::o;4904:87::-;4943:13;4976:7;;;;;;;;;;;;;;;;;4969:14;;4904:87;:::o;5324:165::-;5401:4;5417:42;5427:12;:10;:12::i;:::-;5441:9;5452:6;5417:9;:42::i;:::-;5477:4;5470:11;;5324:165;;;;:::o;2171:148::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2278:1:::1;2241:40;;2262:6;::::0;::::1;;;;;;;;2241:40;;;;;;;;;;;;2309:1;2292:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2171:148::o:0;7771:238::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7882:6:::1;;7869:9;:19;;:44;;;;;7906:7;;7892:10;:21;;7869:44;7861:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:9;7952:6;:18;;;;7991:10;7981:7;:20;;;;7771:238:::0;;:::o;3483:27::-;;;;:::o;3759:43::-;;;;:::o;7520:109::-;1737:12;:10;:12::i;:::-;1727:22;;:6;;;;;;;;;;:22;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7620:1:::1;7597:12;:20;7610:6;7597:20;;;;;;;;;;;;;;;:24;;;;7520:109:::0;:::o;5497:142::-;5578:7;5604:11;:18;5616:5;5604:18;;;;;;;;;;;;;;;:27;5623:7;5604:27;;;;;;;;;;;;;;;;5597:34;;5497:142;;;;:::o;475:98::-;528:7;555:10;548:17;;475:98;:::o;6411:335::-;6521:1;6504:19;;:5;:19;;;6496:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6600:1;6581:21;;:7;:21;;;6573:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6684:6;6654:11;:18;6666:5;6654:18;;;;;;;;;;;;;;;:27;6673:7;6654:27;;;;;;;;;;;;;;;:36;;;;6722:7;6706:32;;6715:5;6706:32;;;6731:6;6706:32;;;;;;:::i;:::-;;;;;;;;6411:335;;;:::o;8523:1225::-;8627:1;8611:18;;:4;:18;;;8603:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;8707:1;8698:6;:10;8690:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8765:12;8818:1;8796:12;:18;8809:4;8796:18;;;;;;;;;;;;;;;;:23;:48;;;;;8843:1;8823:12;:16;8836:2;8823:16;;;;;;;;;;;;;;;;:21;8796:48;8792:900;;;8878:6;;;;;;;;;;;8870:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8945:9;;8935:6;:19;;8927:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:13;;;;;;;;;;;9005:19;;:2;:19;;;;:44;;;;;9042:6;9028:21;;:2;:21;;;;9005:44;9001:131;;;9085:12;;9075:6;9059:13;9069:2;9059:9;:13::i;:::-;:22;;;;:::i;:::-;:38;;9051:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;9001:131;9159:13;;;;;;;;;;;9151:21;;:4;:21;;;9147:534;;9200:6;;9193:13;;9147:534;;;9238:13;;;;;;;;;;;9232:19;;:2;:19;;;9228:453;;9272:20;9295:24;9313:4;9295:9;:24::i;:::-;9272:47;;3699:5;9342:12;:32;9338:295;;;9400:12;9415:7;;9400:22;;9464:6;9449:12;:21;9445:48;;;9487:6;9472:21;;9445:48;9535:4;9520:12;:19;9516:44;;;9556:4;9541:19;;9516:44;9583:30;9600:12;9583:16;:30::i;:::-;9376:257;9338:295;9658:7;;9651:14;;9253:428;9228:453;9147:534;8792:900;9702:38;9717:4;9723:2;9727:6;9735:4;9702:14;:38::i;:::-;8592:1156;8523:1225;;;:::o;1928:235::-;2022:1;2002:22;;:8;:22;;;1994:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2118:8;2089:38;;2110:6;;;;;;;;;;2089:38;;;;;;;;;;;;2147:8;2138:6;;:17;;;;;;;;;;;;;;;;;;1928:235;:::o;10129:877::-;10195:21;10233:1;10219:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10195:40;;10264:4;10246;10251:1;10246:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10290:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10280:4;10285:1;10280:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10323:62;10340:4;10355:15;;;;;;;;;;;10373:11;10323:8;:62::i;:::-;10396:15;;;;;;;;;;;:66;;;10477:11;10503:1;10519:4;10546;10566:15;10396:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:12;10626:14;10670:4;10666:3;10643:21;:26;;;;:::i;:::-;:31;;;;:::i;:::-;10626:48;;10689:17;10736:4;10732:3;10709:21;:26;;;;:::i;:::-;:31;;;;:::i;:::-;10689:51;;10751:17;10797:3;10794:2;10771:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;10751:49;;10827:16;:21;;10856:9;10827:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10813:57;;;;;10895:16;:21;;10924:9;10895:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:57;;;;;10963:10;:16;;10987:6;10963:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10949:49;;;;;10184:822;;;;;10129:877;:::o;8081:434::-;8180:17;8218:3;8210:4;8201:6;:13;;;;:::i;:::-;8200:21;;;;:::i;:::-;8180:41;;8232:22;8266:9;8257:6;:18;;;;:::i;:::-;8232:43;;8322:6;8305:8;:14;8314:4;8305:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;8288:8;:14;8297:4;8288:14;;;;;;;;;;;;;;;:40;;;;8369:14;8354:8;:12;8363:2;8354:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8339:8;:12;8348:2;8339:12;;;;;;;;;;;;;;;:44;;;;8446:9;8420:8;:23;8437:4;8420:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;8394:8;:23;8411:4;8394:23;;;;;;;;;;;;;;;:61;;;;8488:2;8473:34;;8482:4;8473:34;;;8492:14;8473:34;;;;;;:::i;:::-;;;;;;;;8169:346;;8081:434;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:237::-;9905:34;9901:1;9893:6;9889:14;9882:58;9974:20;9969:2;9961:6;9957:15;9950:45;9765:237;:::o;10008:366::-;10150:3;10171:67;10235:2;10230:3;10171:67;:::i;:::-;10164:74;;10247:93;10336:3;10247:93;:::i;:::-;10365:2;10360:3;10356:12;10349:19;;10008:366;;;:::o;10380:419::-;10546:4;10584:2;10573:9;10569:18;10561:26;;10633:9;10627:4;10623:20;10619:1;10608:9;10604:17;10597:47;10661:131;10787:4;10661:131;:::i;:::-;10653:139;;10380:419;;;:::o;10805:220::-;10945:34;10941:1;10933:6;10929:14;10922:58;11014:3;11009:2;11001:6;10997:15;10990:28;10805:220;:::o;11031:366::-;11173:3;11194:67;11258:2;11253:3;11194:67;:::i;:::-;11187:74;;11270:93;11359:3;11270:93;:::i;:::-;11388:2;11383:3;11379:12;11372:19;;11031:366;;;:::o;11403:419::-;11569:4;11607:2;11596:9;11592:18;11584:26;;11656:9;11650:4;11646:20;11642:1;11631:9;11627:17;11620:47;11684:131;11810:4;11684:131;:::i;:::-;11676:139;;11403:419;;;:::o;11828:172::-;11968:24;11964:1;11956:6;11952:14;11945:48;11828:172;:::o;12006:366::-;12148:3;12169:67;12233:2;12228:3;12169:67;:::i;:::-;12162:74;;12245:93;12334:3;12245:93;:::i;:::-;12363:2;12358:3;12354:12;12347:19;;12006:366;;;:::o;12378:419::-;12544:4;12582:2;12571:9;12567:18;12559:26;;12631:9;12625:4;12621:20;12617:1;12606:9;12602:17;12595:47;12659:131;12785:4;12659:131;:::i;:::-;12651:139;;12378:419;;;:::o;12803:143::-;12860:5;12891:6;12885:13;12876:22;;12907:33;12934:5;12907:33;:::i;:::-;12803:143;;;;:::o;12952:351::-;13022:6;13071:2;13059:9;13050:7;13046:23;13042:32;13039:119;;;13077:79;;:::i;:::-;13039:119;13197:1;13222:64;13278:7;13269:6;13258:9;13254:22;13222:64;:::i;:::-;13212:74;;13168:128;12952:351;;;;:::o;13309:332::-;13430:4;13468:2;13457:9;13453:18;13445:26;;13481:71;13549:1;13538:9;13534:17;13525:6;13481:71;:::i;:::-;13562:72;13630:2;13619:9;13615:18;13606:6;13562:72;:::i;:::-;13309:332;;;;;:::o;13647:85::-;13692:7;13721:5;13710:16;;13647:85;;;:::o;13738:60::-;13766:3;13787:5;13780:12;;13738:60;;;:::o;13804:158::-;13862:9;13895:61;13913:42;13922:32;13948:5;13922:32;:::i;:::-;13913:42;:::i;:::-;13895:61;:::i;:::-;13882:74;;13804:158;;;:::o;13968:147::-;14063:45;14102:5;14063:45;:::i;:::-;14058:3;14051:58;13968:147;;:::o;14121:807::-;14370:4;14408:3;14397:9;14393:19;14385:27;;14422:71;14490:1;14479:9;14475:17;14466:6;14422:71;:::i;:::-;14503:72;14571:2;14560:9;14556:18;14547:6;14503:72;:::i;:::-;14585:80;14661:2;14650:9;14646:18;14637:6;14585:80;:::i;:::-;14675;14751:2;14740:9;14736:18;14727:6;14675:80;:::i;:::-;14765:73;14833:3;14822:9;14818:19;14809:6;14765:73;:::i;:::-;14848;14916:3;14905:9;14901:19;14892:6;14848:73;:::i;:::-;14121:807;;;;;;;;;:::o;14934:143::-;14991:5;15022:6;15016:13;15007:22;;15038:33;15065:5;15038:33;:::i;:::-;14934:143;;;;:::o;15083:663::-;15171:6;15179;15187;15236:2;15224:9;15215:7;15211:23;15207:32;15204:119;;;15242:79;;:::i;:::-;15204:119;15362:1;15387:64;15443:7;15434:6;15423:9;15419:22;15387:64;:::i;:::-;15377:74;;15333:128;15500:2;15526:64;15582:7;15573:6;15562:9;15558:22;15526:64;:::i;:::-;15516:74;;15471:129;15639:2;15665:64;15721:7;15712:6;15701:9;15697:22;15665:64;:::i;:::-;15655:74;;15610:129;15083:663;;;;;:::o;15752:332::-;15873:4;15911:2;15900:9;15896:18;15888:26;;15924:71;15992:1;15981:9;15977:17;15968:6;15924:71;:::i;:::-;16005:72;16073:2;16062:9;16058:18;16049:6;16005:72;:::i;:::-;15752:332;;;;;:::o;16090:116::-;16160:21;16175:5;16160:21;:::i;:::-;16153:5;16150:32;16140:60;;16196:1;16193;16186:12;16140:60;16090:116;:::o;16212:137::-;16266:5;16297:6;16291:13;16282:22;;16313:30;16337:5;16313:30;:::i;:::-;16212:137;;;;:::o;16355:345::-;16422:6;16471:2;16459:9;16450:7;16446:23;16442:32;16439:119;;;16477:79;;:::i;:::-;16439:119;16597:1;16622:61;16675:7;16666:6;16655:9;16651:22;16622:61;:::i;:::-;16612:71;;16568:125;16355:345;;;;:::o;16706:147::-;16807:11;16844:3;16829:18;;16706:147;;;;:::o;16859:114::-;;:::o;16979:398::-;17138:3;17159:83;17240:1;17235:3;17159:83;:::i;:::-;17152:90;;17251:93;17340:3;17251:93;:::i;:::-;17369:1;17364:3;17360:11;17353:18;;16979:398;;;:::o;17383:379::-;17567:3;17589:147;17732:3;17589:147;:::i;:::-;17582:154;;17753:3;17746:10;;17383:379;;;:::o;17768:180::-;17816:77;17813:1;17806:88;17913:4;17910:1;17903:15;17937:4;17934:1;17927:15;17954:185;17994:1;18011:20;18029:1;18011:20;:::i;:::-;18006:25;;18045:20;18063:1;18045:20;:::i;:::-;18040:25;;18084:1;18074:35;;18089:18;;:::i;:::-;18074:35;18131:1;18128;18124:9;18119:14;;17954:185;;;;:::o;18145:173::-;18285:25;18281:1;18273:6;18269:14;18262:49;18145:173;:::o;18324:366::-;18466:3;18487:67;18551:2;18546:3;18487:67;:::i;:::-;18480:74;;18563:93;18652:3;18563:93;:::i;:::-;18681:2;18676:3;18672:12;18665:19;;18324:366;;;:::o;18696:419::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18949:9;18943:4;18939:20;18935:1;18924:9;18920:17;18913:47;18977:131;19103:4;18977:131;:::i;:::-;18969:139;;18696:419;;;:::o;19121:221::-;19261:34;19257:1;19249:6;19245:14;19238:58;19330:4;19325:2;19317:6;19313:15;19306:29;19121:221;:::o;19348:366::-;19490:3;19511:67;19575:2;19570:3;19511:67;:::i;:::-;19504:74;;19587:93;19676:3;19587:93;:::i;:::-;19705:2;19700:3;19696:12;19689:19;;19348:366;;;:::o;19720:419::-;19886:4;19924:2;19913:9;19909:18;19901:26;;19973:9;19967:4;19963:20;19959:1;19948:9;19944:17;19937:47;20001:131;20127:4;20001:131;:::i;:::-;19993:139;;19720:419;;;:::o;20145:223::-;20285:34;20281:1;20273:6;20269:14;20262:58;20354:6;20349:2;20341:6;20337:15;20330:31;20145:223;:::o;20374:366::-;20516:3;20537:67;20601:2;20596:3;20537:67;:::i;:::-;20530:74;;20613:93;20702:3;20613:93;:::i;:::-;20731:2;20726:3;20722:12;20715:19;;20374:366;;;:::o;20746:419::-;20912:4;20950:2;20939:9;20935:18;20927:26;;20999:9;20993:4;20989:20;20985:1;20974:9;20970:17;20963:47;21027:131;21153:4;21027:131;:::i;:::-;21019:139;;20746:419;;;:::o;21171:232::-;21311:34;21307:1;21299:6;21295:14;21288:58;21380:15;21375:2;21367:6;21363:15;21356:40;21171:232;:::o;21409:366::-;21551:3;21572:67;21636:2;21631:3;21572:67;:::i;:::-;21565:74;;21648:93;21737:3;21648:93;:::i;:::-;21766:2;21761:3;21757:12;21750:19;;21409:366;;;:::o;21781:419::-;21947:4;21985:2;21974:9;21970:18;21962:26;;22034:9;22028:4;22024:20;22020:1;22009:9;22005:17;21998:47;22062:131;22188:4;22062:131;:::i;:::-;22054:139;;21781:419;;;:::o;22206:228::-;22346:34;22342:1;22334:6;22330:14;22323:58;22415:11;22410:2;22402:6;22398:15;22391:36;22206:228;:::o;22440:366::-;22582:3;22603:67;22667:2;22662:3;22603:67;:::i;:::-;22596:74;;22679:93;22768:3;22679:93;:::i;:::-;22797:2;22792:3;22788:12;22781:19;;22440:366;;;:::o;22812:419::-;22978:4;23016:2;23005:9;23001:18;22993:26;;23065:9;23059:4;23055:20;23051:1;23040:9;23036:17;23029:47;23093:131;23219:4;23093:131;:::i;:::-;23085:139;;22812:419;;;:::o;23237:173::-;23377:25;23373:1;23365:6;23361:14;23354:49;23237:173;:::o;23416:366::-;23558:3;23579:67;23643:2;23638:3;23579:67;:::i;:::-;23572:74;;23655:93;23744:3;23655:93;:::i;:::-;23773:2;23768:3;23764:12;23757:19;;23416:366;;;:::o;23788:419::-;23954:4;23992:2;23981:9;23977:18;23969:26;;24041:9;24035:4;24031:20;24027:1;24016:9;24012:17;24005:47;24069:131;24195:4;24069:131;:::i;:::-;24061:139;;23788:419;;;:::o;24213:177::-;24353:29;24349:1;24341:6;24337:14;24330:53;24213:177;:::o;24396:366::-;24538:3;24559:67;24623:2;24618:3;24559:67;:::i;:::-;24552:74;;24635:93;24724:3;24635:93;:::i;:::-;24753:2;24748:3;24744:12;24737:19;;24396:366;;;:::o;24768:419::-;24934:4;24972:2;24961:9;24957:18;24949:26;;25021:9;25015:4;25011:20;25007:1;24996:9;24992:17;24985:47;25049:131;25175:4;25049:131;:::i;:::-;25041:139;;24768:419;;;:::o;25193:191::-;25233:3;25252:20;25270:1;25252:20;:::i;:::-;25247:25;;25286:20;25304:1;25286:20;:::i;:::-;25281:25;;25329:1;25326;25322:9;25315:16;;25350:3;25347:1;25344:10;25341:36;;;25357:18;;:::i;:::-;25341:36;25193:191;;;;:::o;25390:180::-;25530:32;25526:1;25518:6;25514:14;25507:56;25390:180;:::o;25576:366::-;25718:3;25739:67;25803:2;25798:3;25739:67;:::i;:::-;25732:74;;25815:93;25904:3;25815:93;:::i;:::-;25933:2;25928:3;25924:12;25917:19;;25576:366;;;:::o;25948:419::-;26114:4;26152:2;26141:9;26137:18;26129:26;;26201:9;26195:4;26191:20;26187:1;26176:9;26172:17;26165:47;26229:131;26355:4;26229:131;:::i;:::-;26221:139;;25948:419;;;:::o;26373:231::-;26513:34;26509:1;26501:6;26497:14;26490:58;26582:14;26577:2;26569:6;26565:15;26558:39;26373:231;:::o;26610:366::-;26752:3;26773:67;26837:2;26832:3;26773:67;:::i;:::-;26766:74;;26849:93;26938:3;26849:93;:::i;:::-;26967:2;26962:3;26958:12;26951:19;;26610:366;;;:::o;26982:419::-;27148:4;27186:2;27175:9;27171:18;27163:26;;27235:9;27229:4;27225:20;27221:1;27210:9;27206:17;27199:47;27263:131;27389:4;27263:131;:::i;:::-;27255:139;;26982:419;;;:::o;27407:180::-;27455:77;27452:1;27445:88;27552:4;27549:1;27542:15;27576:4;27573:1;27566:15;27593:180;27641:77;27638:1;27631:88;27738:4;27735:1;27728:15;27762:4;27759:1;27752:15;27779:114;27846:6;27880:5;27874:12;27864:22;;27779:114;;;:::o;27899:184::-;27998:11;28032:6;28027:3;28020:19;28072:4;28067:3;28063:14;28048:29;;27899:184;;;;:::o;28089:132::-;28156:4;28179:3;28171:11;;28209:4;28204:3;28200:14;28192:22;;28089:132;;;:::o;28227:108::-;28304:24;28322:5;28304:24;:::i;:::-;28299:3;28292:37;28227:108;;:::o;28341:179::-;28410:10;28431:46;28473:3;28465:6;28431:46;:::i;:::-;28509:4;28504:3;28500:14;28486:28;;28341:179;;;;:::o;28526:113::-;28596:4;28628;28623:3;28619:14;28611:22;;28526:113;;;:::o;28675:732::-;28794:3;28823:54;28871:5;28823:54;:::i;:::-;28893:86;28972:6;28967:3;28893:86;:::i;:::-;28886:93;;29003:56;29053:5;29003:56;:::i;:::-;29082:7;29113:1;29098:284;29123:6;29120:1;29117:13;29098:284;;;29199:6;29193:13;29226:63;29285:3;29270:13;29226:63;:::i;:::-;29219:70;;29312:60;29365:6;29312:60;:::i;:::-;29302:70;;29158:224;29145:1;29142;29138:9;29133:14;;29098:284;;;29102:14;29398:3;29391:10;;28799:608;;;28675:732;;;;:::o;29413:831::-;29676:4;29714:3;29703:9;29699:19;29691:27;;29728:71;29796:1;29785:9;29781:17;29772:6;29728:71;:::i;:::-;29809:80;29885:2;29874:9;29870:18;29861:6;29809:80;:::i;:::-;29936:9;29930:4;29926:20;29921:2;29910:9;29906:18;29899:48;29964:108;30067:4;30058:6;29964:108;:::i;:::-;29956:116;;30082:72;30150:2;30139:9;30135:18;30126:6;30082:72;:::i;:::-;30164:73;30232:3;30221:9;30217:19;30208:6;30164:73;:::i;:::-;29413:831;;;;;;;;:::o;30250:194::-;30290:4;30310:20;30328:1;30310:20;:::i;:::-;30305:25;;30344:20;30362:1;30344:20;:::i;:::-;30339:25;;30388:1;30385;30381:9;30373:17;;30412:1;30406:4;30403:11;30400:37;;;30417:18;;:::i;:::-;30400:37;30250:194;;;;:::o

Swarm Source

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