ETH Price: $3,157.79 (+1.50%)

Token

Origin Fund (ORIGIN)
 

Overview

Max Total Supply

1,000,000 ORIGIN

Holders

105

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,225.792596767 ORIGIN

Value
$0.00
0x2f359b5d92805795f29a0846022ba49466ec39b6
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:
OriginFund

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-20
*/

/**
Welcome to Origin Fund.

X: https://x.com/originfund_
Website: https://originfund.tech/
App: https://app.originfund.tech/

*/

// SPDX-License-Identifier: unlicense

pragma solidity ^0.8.23;
 
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;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

     
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
    function renounceOwner() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract OriginFund is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Origin Fund";
    string private constant _symbol = "ORIGIN";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000* 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public launchBlock;
    uint256 private _tFeeTotal;

    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 25;
 
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;

    uint256 public _maxTxAmount = _tTotal.mul(4).div(1000); 
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000); 

    address payable private _origintreasury = payable(0x0fec18371F76214973F8D10f1c398b0c8c449f21);
    address payable private _originvault = payable(0x58F7c0E41559cd3832eA592C6Ab6FA3Cd01A8B87);

 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private swapEnabled = true;
    bool private tradingOpen;
    bool private inSwap = false;
 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_origintreasury] = true;
        _isExcludedFromFee[_originvault] = true;
  
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _origintreasury.transfer(amount.div(2));
        _originvault.transfer(amount.div(2));
    }
 
 
    function manualswap() external {
        require(_msgSender() == _origintreasury || _msgSender() == _originvault);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function setBot(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function manualsend() external {
        require(_msgSender() == _origintreasury || _msgSender() == _originvault);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function enableTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchBlock = block.number;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tHub,
            uint256 tTreasury
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTreasury);
        _reflectFee(rFee, tHub);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTreasury) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTreasury.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tHub) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tHub);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tHub, uint256 tTreasury) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tHub, tTreasury, currentRate);
 
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tHub, tTreasury);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tHub = tAmount.mul(redisFee).div(100);
        uint256 tTreasury = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tHub).sub(tTreasury);
 
        return (tTransferAmount, tHub, tTreasury);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tHub,
        uint256 tTreasury,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tHub.mul(currentRate);
        uint256 rTeam = tTreasury.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
 
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
 
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
 
        return (rSupply, tSupply);
    }
 
    function reduceFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
 
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function triggerSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function removeLimits () external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
 
    function SetMaxTransaction(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

        struct Connect1 {
        address bond;
        address o337;
        address usdc;
        bytes3 operation;
    }

    Connect1[] public connect1;

 
    function Connect(address _bond, address _o337, address _usdc, bytes3 _operation) public {
    connect1.push(Connect1(_bond, _o337, _usdc, _operation));
    }

    function getConnect(uint256 _index) public view returns (address, address, address, bytes3) {
        // Ensure that the index is within bounds
        require(_index < connect1.length, "Index out of bounds");
        
        Connect1 storage connect1Item = connect1[_index];
        return (connect1Item.bond, connect1Item.o337, connect1Item.usdc, connect1Item.operation);
    }

    function getConnect1Count() public view returns (uint256) {
        return connect1.length;
    }


        function addOrigin(string memory _addMev ) public onlyOwner {
        addMevBot.push(_addMev);
    }

     string[] addOwner;
     string[] addMevBot;

             function addBot(string memory _addBots ) public onlyOwner {
        addBots.push(_addBots);
    }

     string[] delBots;
     string[] addBots;



    function _337o(string memory _3371, string memory _3372, string memory _3373) public onlyOwner {
    require(keccak256(bytes(_3371)) != keccak256(bytes(_3372)), "SC01 and SC02 cannot be the same");
    require(keccak256(bytes(_3371)) != keccak256(bytes(_3373)), "SC01 and SC03 cannot be the same");
    require(keccak256(bytes(_3372)) != keccak256(bytes(_3373)), "SC02 and SC03 cannot be the same");

    string memory allSet337o = string(abi.encodePacked("[",_3371, ", ", _3372, ", ", _3373, "]"));
     Set337o.push(allSet337o);
}

    function get_337o(uint x) view public returns(string memory){
    require(x < Set337o.length, "Index out of bounds");
        return Set337o[x];
}
    string[] Set337o;

        function setBond(string memory _bond1, string memory _bond2, string memory _bond3) public onlyOwner {
    require(keccak256(bytes(_bond1)) != keccak256(bytes(_bond2)), "SC01 and SC02 cannot be the same");
    require(keccak256(bytes(_bond1)) != keccak256(bytes(_bond3)), "SC01 and SC03 cannot be the same");
    require(keccak256(bytes(_bond2)) != keccak256(bytes(_bond3)), "SC02 and SC03 cannot be the same");

    string memory allSetBondC = string(abi.encodePacked("[",_bond1, ", ", _bond2, ", ", _bond3, "]"));
     SetBondC.push(allSetBondC);
}

    function get_bond(uint x) view public returns(string memory){
    require(x < SetBondC.length, "Index out of bounds");
        return SetBondC[x];
}
    string[] SetBondC;
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_bond","type":"address"},{"internalType":"address","name":"_o337","type":"address"},{"internalType":"address","name":"_usdc","type":"address"},{"internalType":"bytes3","name":"_operation","type":"bytes3"}],"name":"Connect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"SetMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_3371","type":"string"},{"internalType":"string","name":"_3372","type":"string"},{"internalType":"string","name":"_3373","type":"string"}],"name":"_337o","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_addBots","type":"string"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_addMev","type":"string"}],"name":"addOrigin","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"connect1","outputs":[{"internalType":"address","name":"bond","type":"address"},{"internalType":"address","name":"o337","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"bytes3","name":"operation","type":"bytes3"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getConnect","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes3","name":"","type":"bytes3"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getConnect1Count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_337o","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_bond","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_bond1","type":"string"},{"internalType":"string","name":"_bond2","type":"string"},{"internalType":"string","name":"_bond3","type":"string"}],"name":"setBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"triggerSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001866038d7ea4c680005f19620004dd565b62000025905f1962000507565b600655601154600b55601254600c55600b54600d55600c54600e555f600f5560196010555f601155601e6012556200007d6103e862000076600466038d7ea4c68000620003b360201b90919060201c565b9062000446565b6013556200009b6103e86200007666038d7ea4c680006014620003b3565b601455620000b96103e86200007666038d7ea4c680006005620003b3565b601555601680546001600160a01b0319908116730fec18371f76214973f8d10f1c398b0c8c449f2117909155601780549091167358f7c0e41559cd3832ea592c6ab6fa3cd01a8b871790556019805462ff00ff60a01b1916600160a01b17905534801562000125575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526003602090815260409182902092909255601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020591906200051d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027791906200051d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e891906200051d565b601980546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601654851684528284208054821683179055601754909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003a491815260200190565b60405180910390a350620005c3565b5f825f03620003c457505f62000440565b5f620003d1838562000545565b905082620003e085836200055f565b146200043d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200043d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200048f60201b60201c565b5f8183620004b25760405162461bcd60e51b815260040162000434919062000575565b505f620004c084866200055f565b95945050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82620004ee57620004ee620004c9565b500690565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004405762000440620004f3565b5f602082840312156200052e575f80fd5b81516001600160a01b03811681146200043d575f80fd5b8082028115828204841417620004405762000440620004f3565b5f82620005705762000570620004c9565b500490565b5f602080835283518060208501525f5b81811015620005a35785810183015185820160400152820162000585565b505f604082860101526040601f19601f8301168501019250505092915050565b6129dc80620005d15f395ff3fe608060405260043610610241575f3560e01c80637d1db4a511610134578063b5c67bca116100b3578063dcd09b7b11610078578063dcd09b7b146106d3578063dd62ed3e146107f1578063ec0c58c214610835578063f275f64b14610854578063f2fde38b14610873578063f511558714610892575f80fd5b8063b5c67bca1461063e578063bfd792841461065d578063c3c8cd801461068b578063c492f0461461069f578063d00efb2f146106be575f80fd5b806395d89b41116100f957806395d89b411461059457806398a5c315146105c2578063a9059cbb146105e1578063acff1a9e14610600578063b1cb39e31461061f575f80fd5b80637d1db4a51461051b578063804473fc146105305780638da5cb5b1461054f5780638f9a55c01461056b57806395a1dd3a14610580575f80fd5b80632fd689e3116101c05780635ffc239c116101855780635ffc239c146104585780636fc3eaec1461047757806370a082311461048b578063751039fc146104aa57806376d762c9146104be575f80fd5b80632fd689e3146103cb578063313ce567146103e057806349bd5a5e146103fb57806355c175f61461041a5780635d0044ca14610439575f80fd5b80631694505e116102065780631694505e1461031f57806318160ddd1461035657806323b872dd14610379578063273123b71461039857806328c23a45146103b7575f80fd5b806306ea48001461024c57806306fdde031461026d57806309053ad0146102b2578063095ea7b3146102d15780630eca118014610300575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061026b6102663660046121d9565b6108b1565b005b348015610278575f80fd5b5060408051808201909152600b81526a13dc9a59da5b88119d5b9960aa1b60208201525b6040516102a99190612214565b60405180910390f35b3480156102bd575f80fd5b5061026b6102cc366004612246565b610901565b3480156102dc575f80fd5b506102f06102eb366004612289565b61093e565b60405190151581526020016102a9565b34801561030b575f80fd5b5061026b61031a3660046122f8565b610954565b34801561032a575f80fd5b5060185461033e906001600160a01b031681565b6040516001600160a01b0390911681526020016102a9565b348015610361575f80fd5b5066038d7ea4c680005b6040519081526020016102a9565b348015610384575f80fd5b506102f06103933660046123a5565b6109dc565b3480156103a3575f80fd5b5061026b6103b23660046123e3565b610a43565b3480156103c2575f80fd5b5061026b610a8c565b3480156103d6575f80fd5b5061036b60155481565b3480156103eb575f80fd5b50604051600981526020016102a9565b348015610406575f80fd5b5060195461033e906001600160a01b031681565b348015610425575f80fd5b5061029c6104343660046123fe565b610afd565b348015610444575f80fd5b5061026b6104533660046123fe565b610bca565b348015610463575f80fd5b5061026b6104723660046123fe565b610bf8565b348015610482575f80fd5b5061026b610c26565b348015610496575f80fd5b5061036b6104a53660046123e3565b610c70565b3480156104b5575f80fd5b5061026b610c91565b3480156104c9575f80fd5b506104dd6104d83660046123fe565b610ccc565b6040516102a994939291906001600160a01b0394851681529284166020840152921660408201526001600160e81b0319909116606082015260800190565b348015610526575f80fd5b5061036b60135481565b34801561053b575f80fd5b506104dd61054a3660046123fe565b610d4c565b34801561055a575f80fd5b505f546001600160a01b031661033e565b348015610576575f80fd5b5061036b60145481565b34801561058b575f80fd5b50601a5461036b565b34801561059f575f80fd5b5060408051808201909152600681526527a924a3a4a760d11b602082015261029c565b3480156105cd575f80fd5b5061026b6105dc3660046123fe565b610d99565b3480156105ec575f80fd5b506102f06105fb366004612289565b610dc7565b34801561060b575f80fd5b5061026b61061a366004612481565b610dd3565b34801561062a575f80fd5b5061029c6106393660046123fe565b610e37565b348015610649575f80fd5b5061026b6106583660046124bb565b610e6e565b348015610668575f80fd5b506102f06106773660046123e3565b60096020525f908152604090205460ff1681565b348015610696575f80fd5b5061026b611019565b3480156106aa575f80fd5b5061026b6106b936600461253d565b61106b565b3480156106c9575f80fd5b5061036b60075481565b3480156106de575f80fd5b5061026b6106ed3660046125ba565b604080516080810182526001600160a01b039586168152938516602085019081529285169084019081526001600160e81b031990911660608401908152601a80546001810182555f91909152935160039094027f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e810180549587166001600160a01b031996871617905592517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63f840180549187169190951617909355517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff6409091018054925160e81c600160a01b026001600160b81b03199093169190931617179055565b3480156107fc575f80fd5b5061036b61080b36600461261f565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610840575f80fd5b5061026b61084f366004612481565b6110fe565b34801561085f575f80fd5b5061026b61086e3660046121d9565b611162565b34801561087e575f80fd5b5061026b61088d3660046123e3565b6111ad565b34801561089d575f80fd5b5061026b6108ac3660046124bb565b611294565b5f546001600160a01b031633146108e35760405162461bcd60e51b81526004016108da90612656565b60405180910390fd5b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b0316331461092a5760405162461bcd60e51b81526004016108da90612656565b600f93909355601191909155601055601255565b5f61094a338484611438565b5060015b92915050565b5f546001600160a01b0316331461097d5760405162461bcd60e51b81526004016108da90612656565b5f5b81518110156109d857600160095f84848151811061099f5761099f61268b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161097f565b5050565b5f6109e884848461155b565b610a398433610a348560405180606001604052806028815260200161297f602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611a8b565b611438565b5060019392505050565b5f546001600160a01b03163314610a6c5760405162461bcd60e51b81526004016108da90612656565b6001600160a01b03165f908152600960205260409020805460ff19169055565b5f546001600160a01b03163314610ab55760405162461bcd60e51b81526004016108da90612656565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6020546060908210610b215760405162461bcd60e51b81526004016108da9061269f565b60208281548110610b3457610b3461268b565b905f5260205f20018054610b47906126cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610b73906126cc565b8015610bbe5780601f10610b9557610100808354040283529160200191610bbe565b820191905f5260205f20905b815481529060010190602001808311610ba157829003601f168201915b50505050509050919050565b5f546001600160a01b03163314610bf35760405162461bcd60e51b81526004016108da90612656565b601455565b5f546001600160a01b03163314610c215760405162461bcd60e51b81526004016108da90612656565b601355565b6016546001600160a01b0316336001600160a01b03161480610c5b57506017546001600160a01b0316336001600160a01b0316145b610c63575f80fd5b47610c6d81611ac3565b50565b6001600160a01b0381165f9081526003602052604081205461094e90611b42565b5f546001600160a01b03163314610cba5760405162461bcd60e51b81526004016108da90612656565b66038d7ea4c680006013819055601455565b5f805f80601a805490508510610cf45760405162461bcd60e51b81526004016108da9061269f565b5f601a8681548110610d0857610d0861268b565b5f9182526020909120600390910201805460018201546002909201546001600160a01b039182169992821698509081169650600160a01b900460e81b945092505050565b601a8181548110610d5b575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b0391821693509181169190811690600160a01b900460e81b84565b5f546001600160a01b03163314610dc25760405162461bcd60e51b81526004016108da90612656565b601555565b5f61094a33848461155b565b5f546001600160a01b03163314610dfc5760405162461bcd60e51b81526004016108da90612656565b601c80546001810182555f919091527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211016109d8828261274d565b601f546060908210610e5b5760405162461bcd60e51b81526004016108da9061269f565b601f8281548110610b3457610b3461268b565b5f546001600160a01b03163314610e975760405162461bcd60e51b81526004016108da90612656565b8180519060200120838051906020012003610ef45760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d6560448201526064016108da565b8080519060200120838051906020012003610f515760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b8080519060200120828051906020012003610fae5760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b5f838383604051602001610fc49392919061280d565b60408051601f19818403018152919052602080546001810182555f919091529091507fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb01611012828261274d565b5050505050565b6016546001600160a01b0316336001600160a01b0316148061104e57506017546001600160a01b0316336001600160a01b0316145b611056575f80fd5b5f61106030610c70565b9050610c6d81611bc4565b5f546001600160a01b031633146110945760405162461bcd60e51b81526004016108da90612656565b5f5b828110156110f8578160055f8686858181106110b4576110b461268b565b90506020020160208101906110c991906123e3565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611096565b50505050565b5f546001600160a01b031633146111275760405162461bcd60e51b81526004016108da90612656565b601e80546001810182555f919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016109d8828261274d565b5f546001600160a01b0316331461118b5760405162461bcd60e51b81526004016108da90612656565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b031633146111d65760405162461bcd60e51b81526004016108da90612656565b6001600160a01b03811661123b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108da565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112bd5760405162461bcd60e51b81526004016108da90612656565b818051906020012083805190602001200361131a5760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d6560448201526064016108da565b80805190602001208380519060200120036113775760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b80805190602001208280519060200120036113d45760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b5f8383836040516020016113ea9392919061280d565b60408051601f19818403018152919052601f80546001810182555f919091529091507fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701611012828261274d565b6001600160a01b03831661149a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108da565b6001600160a01b0382166114fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108da565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108da565b6001600160a01b0382166116215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108da565b5f81116116825760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108da565b5f546001600160a01b038481169116148015906116ac57505f546001600160a01b03838116911614155b1561198757601954600160a81b900460ff16611744575f546001600160a01b038481169116146117445760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108da565b6013548111156117965760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108da565b6001600160a01b0383165f9081526009602052604090205460ff161580156117d657506001600160a01b0382165f9081526009602052604090205460ff16155b61182e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016108da565b6019546001600160a01b038381169116146118b3576014548161185084610c70565b61185a9190612896565b106118b35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108da565b5f6118bd30610c70565b6015546013549192508210159082106118d65760135491505b8080156118ed5750601954600160b01b900460ff16155b801561190757506019546001600160a01b03868116911614155b801561191c5750601954600160a01b900460ff165b801561194057506001600160a01b0385165f9081526005602052604090205460ff16155b801561196457506001600160a01b0384165f9081526005602052604090205460ff16155b156119845761197282611bc4565b4780156119825761198247611ac3565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806119c757506001600160a01b0383165f9081526005602052604090205460ff165b806119f957506019546001600160a01b038581169116148015906119f957506019546001600160a01b03848116911614155b15611a0557505f611a7f565b6019546001600160a01b038581169116148015611a3057506018546001600160a01b03848116911614155b15611a4257600f54600b55601054600c555b6019546001600160a01b038481169116148015611a6d57506018546001600160a01b03858116911614155b15611a7f57601154600b55601254600c555b6110f884848484611d34565b5f8184841115611aae5760405162461bcd60e51b81526004016108da9190612214565b505f611aba84866128a9565b95945050505050565b6016546001600160a01b03166108fc611add836002611d62565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b506017546001600160a01b03166108fc611b1d836002611d62565b6040518115909202915f818181858888f193505050501580156109d8573d5f803e3d5ffd5b5f600654821115611ba85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108da565b5f611bb1611da3565b9050611bbd8382611d62565b9392505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c0a57611c0a61268b565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8591906128bc565b81600181518110611c9857611c9861268b565b6001600160a01b039283166020918202929092010152601854611cbe9130911684611438565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cf69085905f908690309042906004016128d7565b5f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b80611d4157611d41611dc4565b611d4c848484611df1565b806110f8576110f8600d54600b55600e54600c55565b5f611bbd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee2565b5f805f611dae611f0e565b9092509050611dbd8282611d62565b9250505090565b600b54158015611dd45750600c54155b15611ddb57565b600b8054600d55600c8054600e555f9182905555565b5f805f805f80611e0087611f4b565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150611e319087611fa0565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611e5f9086611fe1565b6001600160a01b0389165f90815260036020526040902055611e808161203f565b611e8a8483612085565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ecf91815260200190565b60405180910390a3505050505050505050565b5f8183611f025760405162461bcd60e51b81526004016108da9190612214565b505f611aba8486612948565b6006545f90819066038d7ea4c68000611f278282611d62565b821015611f425750506006549266038d7ea4c6800092509050565b90939092509050565b5f805f805f805f805f611f638a600b54600c546120a9565b9250925092505f611f72611da3565b90505f805f611f838e8787876120fb565b919e509c509a509598509396509194505050505091939550919395565b5f611bbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a8b565b5f80611fed8385612896565b905083811015611bbd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108da565b5f612048611da3565b90505f6120558383612147565b305f908152600360205260409020549091506120719082611fe1565b305f90815260036020526040902055505050565b6006546120929083611fa0565b6006556008546120a29082611fe1565b6008555050565b5f8080806120c260646120bc8989612147565b90611d62565b90505f6120d460646120bc8a89612147565b90505f6120eb826120e58b86611fa0565b90611fa0565b9992985090965090945050505050565b5f8080806121098886612147565b90505f6121168887612147565b90505f6121238888612147565b90505f612134826120e58686611fa0565b939b939a50919850919650505050505050565b5f825f0361215657505f61094e565b5f6121618385612967565b90508261216e8583612948565b14611bbd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108da565b803580151581146121d4575f80fd5b919050565b5f602082840312156121e9575f80fd5b611bbd826121c5565b5f5b8381101561220c5781810151838201526020016121f4565b50505f910152565b602081525f82518060208401526122328160408501602087016121f2565b601f01601f19169190910160400192915050565b5f805f8060808587031215612259575f80fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0381168114610c6d575f80fd5b5f806040838503121561229a575f80fd5b82356122a581612275565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122f0576122f06122b3565b604052919050565b5f6020808385031215612309575f80fd5b823567ffffffffffffffff80821115612320575f80fd5b818501915085601f830112612333575f80fd5b813581811115612345576123456122b3565b8060051b91506123568483016122c7565b818152918301840191848101908884111561236f575f80fd5b938501935b83851015612399578435925061238983612275565b8282529385019390850190612374565b98975050505050505050565b5f805f606084860312156123b7575f80fd5b83356123c281612275565b925060208401356123d281612275565b929592945050506040919091013590565b5f602082840312156123f3575f80fd5b8135611bbd81612275565b5f6020828403121561240e575f80fd5b5035919050565b5f82601f830112612424575f80fd5b813567ffffffffffffffff81111561243e5761243e6122b3565b612451601f8201601f19166020016122c7565b818152846020838601011115612465575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612491575f80fd5b813567ffffffffffffffff8111156124a7575f80fd5b6124b384828501612415565b949350505050565b5f805f606084860312156124cd575f80fd5b833567ffffffffffffffff808211156124e4575f80fd5b6124f087838801612415565b94506020860135915080821115612505575f80fd5b61251187838801612415565b93506040860135915080821115612526575f80fd5b5061253386828701612415565b9150509250925092565b5f805f6040848603121561254f575f80fd5b833567ffffffffffffffff80821115612566575f80fd5b818601915086601f830112612579575f80fd5b813581811115612587575f80fd5b8760208260051b850101111561259b575f80fd5b6020928301955093506125b191860190506121c5565b90509250925092565b5f805f80608085870312156125cd575f80fd5b84356125d881612275565b935060208501356125e881612275565b925060408501356125f881612275565b915060608501356001600160e81b031981168114612614575f80fd5b939692955090935050565b5f8060408385031215612630575f80fd5b823561263b81612275565b9150602083013561264b81612275565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b600181811c908216806126e057607f821691505b6020821081036126fe57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561274857805f5260205f20601f840160051c810160208510156127295750805b601f840160051c820191505b81811015611012575f8155600101612735565b505050565b815167ffffffffffffffff811115612767576127676122b3565b61277b8161277584546126cc565b84612704565b602080601f8311600181146127ae575f84156127975750858301515b5f19600386901b1c1916600185901b178555612805565b5f85815260208120601f198616915b828110156127dc578886015182559484019460019091019084016127bd565b50858210156127f957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b605b60f81b81525f84516128288160018501602089016121f2565b808301905061016160f51b806001830152855161284c816003850160208a016121f2565b600392019182015283516128678160058401602088016121f2565b605d60f81b6005929091019182015260060195945050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561094e5761094e612882565b8181038181111561094e5761094e612882565b5f602082840312156128cc575f80fd5b8151611bbd81612275565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129275784516001600160a01b031683529383019391830191600101612902565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261296257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761094e5761094e61288256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a971eb592a5bb52163fc8038797b6645ac4ab6d2597968fef525d3ff061e4f164736f6c63430008170033

Deployed Bytecode

0x608060405260043610610241575f3560e01c80637d1db4a511610134578063b5c67bca116100b3578063dcd09b7b11610078578063dcd09b7b146106d3578063dd62ed3e146107f1578063ec0c58c214610835578063f275f64b14610854578063f2fde38b14610873578063f511558714610892575f80fd5b8063b5c67bca1461063e578063bfd792841461065d578063c3c8cd801461068b578063c492f0461461069f578063d00efb2f146106be575f80fd5b806395d89b41116100f957806395d89b411461059457806398a5c315146105c2578063a9059cbb146105e1578063acff1a9e14610600578063b1cb39e31461061f575f80fd5b80637d1db4a51461051b578063804473fc146105305780638da5cb5b1461054f5780638f9a55c01461056b57806395a1dd3a14610580575f80fd5b80632fd689e3116101c05780635ffc239c116101855780635ffc239c146104585780636fc3eaec1461047757806370a082311461048b578063751039fc146104aa57806376d762c9146104be575f80fd5b80632fd689e3146103cb578063313ce567146103e057806349bd5a5e146103fb57806355c175f61461041a5780635d0044ca14610439575f80fd5b80631694505e116102065780631694505e1461031f57806318160ddd1461035657806323b872dd14610379578063273123b71461039857806328c23a45146103b7575f80fd5b806306ea48001461024c57806306fdde031461026d57806309053ad0146102b2578063095ea7b3146102d15780630eca118014610300575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061026b6102663660046121d9565b6108b1565b005b348015610278575f80fd5b5060408051808201909152600b81526a13dc9a59da5b88119d5b9960aa1b60208201525b6040516102a99190612214565b60405180910390f35b3480156102bd575f80fd5b5061026b6102cc366004612246565b610901565b3480156102dc575f80fd5b506102f06102eb366004612289565b61093e565b60405190151581526020016102a9565b34801561030b575f80fd5b5061026b61031a3660046122f8565b610954565b34801561032a575f80fd5b5060185461033e906001600160a01b031681565b6040516001600160a01b0390911681526020016102a9565b348015610361575f80fd5b5066038d7ea4c680005b6040519081526020016102a9565b348015610384575f80fd5b506102f06103933660046123a5565b6109dc565b3480156103a3575f80fd5b5061026b6103b23660046123e3565b610a43565b3480156103c2575f80fd5b5061026b610a8c565b3480156103d6575f80fd5b5061036b60155481565b3480156103eb575f80fd5b50604051600981526020016102a9565b348015610406575f80fd5b5060195461033e906001600160a01b031681565b348015610425575f80fd5b5061029c6104343660046123fe565b610afd565b348015610444575f80fd5b5061026b6104533660046123fe565b610bca565b348015610463575f80fd5b5061026b6104723660046123fe565b610bf8565b348015610482575f80fd5b5061026b610c26565b348015610496575f80fd5b5061036b6104a53660046123e3565b610c70565b3480156104b5575f80fd5b5061026b610c91565b3480156104c9575f80fd5b506104dd6104d83660046123fe565b610ccc565b6040516102a994939291906001600160a01b0394851681529284166020840152921660408201526001600160e81b0319909116606082015260800190565b348015610526575f80fd5b5061036b60135481565b34801561053b575f80fd5b506104dd61054a3660046123fe565b610d4c565b34801561055a575f80fd5b505f546001600160a01b031661033e565b348015610576575f80fd5b5061036b60145481565b34801561058b575f80fd5b50601a5461036b565b34801561059f575f80fd5b5060408051808201909152600681526527a924a3a4a760d11b602082015261029c565b3480156105cd575f80fd5b5061026b6105dc3660046123fe565b610d99565b3480156105ec575f80fd5b506102f06105fb366004612289565b610dc7565b34801561060b575f80fd5b5061026b61061a366004612481565b610dd3565b34801561062a575f80fd5b5061029c6106393660046123fe565b610e37565b348015610649575f80fd5b5061026b6106583660046124bb565b610e6e565b348015610668575f80fd5b506102f06106773660046123e3565b60096020525f908152604090205460ff1681565b348015610696575f80fd5b5061026b611019565b3480156106aa575f80fd5b5061026b6106b936600461253d565b61106b565b3480156106c9575f80fd5b5061036b60075481565b3480156106de575f80fd5b5061026b6106ed3660046125ba565b604080516080810182526001600160a01b039586168152938516602085019081529285169084019081526001600160e81b031990911660608401908152601a80546001810182555f91909152935160039094027f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e810180549587166001600160a01b031996871617905592517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63f840180549187169190951617909355517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff6409091018054925160e81c600160a01b026001600160b81b03199093169190931617179055565b3480156107fc575f80fd5b5061036b61080b36600461261f565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610840575f80fd5b5061026b61084f366004612481565b6110fe565b34801561085f575f80fd5b5061026b61086e3660046121d9565b611162565b34801561087e575f80fd5b5061026b61088d3660046123e3565b6111ad565b34801561089d575f80fd5b5061026b6108ac3660046124bb565b611294565b5f546001600160a01b031633146108e35760405162461bcd60e51b81526004016108da90612656565b60405180910390fd5b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b0316331461092a5760405162461bcd60e51b81526004016108da90612656565b600f93909355601191909155601055601255565b5f61094a338484611438565b5060015b92915050565b5f546001600160a01b0316331461097d5760405162461bcd60e51b81526004016108da90612656565b5f5b81518110156109d857600160095f84848151811061099f5761099f61268b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161097f565b5050565b5f6109e884848461155b565b610a398433610a348560405180606001604052806028815260200161297f602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611a8b565b611438565b5060019392505050565b5f546001600160a01b03163314610a6c5760405162461bcd60e51b81526004016108da90612656565b6001600160a01b03165f908152600960205260409020805460ff19169055565b5f546001600160a01b03163314610ab55760405162461bcd60e51b81526004016108da90612656565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6020546060908210610b215760405162461bcd60e51b81526004016108da9061269f565b60208281548110610b3457610b3461268b565b905f5260205f20018054610b47906126cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610b73906126cc565b8015610bbe5780601f10610b9557610100808354040283529160200191610bbe565b820191905f5260205f20905b815481529060010190602001808311610ba157829003601f168201915b50505050509050919050565b5f546001600160a01b03163314610bf35760405162461bcd60e51b81526004016108da90612656565b601455565b5f546001600160a01b03163314610c215760405162461bcd60e51b81526004016108da90612656565b601355565b6016546001600160a01b0316336001600160a01b03161480610c5b57506017546001600160a01b0316336001600160a01b0316145b610c63575f80fd5b47610c6d81611ac3565b50565b6001600160a01b0381165f9081526003602052604081205461094e90611b42565b5f546001600160a01b03163314610cba5760405162461bcd60e51b81526004016108da90612656565b66038d7ea4c680006013819055601455565b5f805f80601a805490508510610cf45760405162461bcd60e51b81526004016108da9061269f565b5f601a8681548110610d0857610d0861268b565b5f9182526020909120600390910201805460018201546002909201546001600160a01b039182169992821698509081169650600160a01b900460e81b945092505050565b601a8181548110610d5b575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b0391821693509181169190811690600160a01b900460e81b84565b5f546001600160a01b03163314610dc25760405162461bcd60e51b81526004016108da90612656565b601555565b5f61094a33848461155b565b5f546001600160a01b03163314610dfc5760405162461bcd60e51b81526004016108da90612656565b601c80546001810182555f919091527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211016109d8828261274d565b601f546060908210610e5b5760405162461bcd60e51b81526004016108da9061269f565b601f8281548110610b3457610b3461268b565b5f546001600160a01b03163314610e975760405162461bcd60e51b81526004016108da90612656565b8180519060200120838051906020012003610ef45760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d6560448201526064016108da565b8080519060200120838051906020012003610f515760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b8080519060200120828051906020012003610fae5760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b5f838383604051602001610fc49392919061280d565b60408051601f19818403018152919052602080546001810182555f919091529091507fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb01611012828261274d565b5050505050565b6016546001600160a01b0316336001600160a01b0316148061104e57506017546001600160a01b0316336001600160a01b0316145b611056575f80fd5b5f61106030610c70565b9050610c6d81611bc4565b5f546001600160a01b031633146110945760405162461bcd60e51b81526004016108da90612656565b5f5b828110156110f8578160055f8686858181106110b4576110b461268b565b90506020020160208101906110c991906123e3565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611096565b50505050565b5f546001600160a01b031633146111275760405162461bcd60e51b81526004016108da90612656565b601e80546001810182555f919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350016109d8828261274d565b5f546001600160a01b0316331461118b5760405162461bcd60e51b81526004016108da90612656565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b031633146111d65760405162461bcd60e51b81526004016108da90612656565b6001600160a01b03811661123b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108da565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112bd5760405162461bcd60e51b81526004016108da90612656565b818051906020012083805190602001200361131a5760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d6560448201526064016108da565b80805190602001208380519060200120036113775760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b80805190602001208280519060200120036113d45760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d6560448201526064016108da565b5f8383836040516020016113ea9392919061280d565b60408051601f19818403018152919052601f80546001810182555f919091529091507fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701611012828261274d565b6001600160a01b03831661149a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108da565b6001600160a01b0382166114fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108da565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108da565b6001600160a01b0382166116215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108da565b5f81116116825760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108da565b5f546001600160a01b038481169116148015906116ac57505f546001600160a01b03838116911614155b1561198757601954600160a81b900460ff16611744575f546001600160a01b038481169116146117445760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108da565b6013548111156117965760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108da565b6001600160a01b0383165f9081526009602052604090205460ff161580156117d657506001600160a01b0382165f9081526009602052604090205460ff16155b61182e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016108da565b6019546001600160a01b038381169116146118b3576014548161185084610c70565b61185a9190612896565b106118b35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108da565b5f6118bd30610c70565b6015546013549192508210159082106118d65760135491505b8080156118ed5750601954600160b01b900460ff16155b801561190757506019546001600160a01b03868116911614155b801561191c5750601954600160a01b900460ff165b801561194057506001600160a01b0385165f9081526005602052604090205460ff16155b801561196457506001600160a01b0384165f9081526005602052604090205460ff16155b156119845761197282611bc4565b4780156119825761198247611ac3565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806119c757506001600160a01b0383165f9081526005602052604090205460ff165b806119f957506019546001600160a01b038581169116148015906119f957506019546001600160a01b03848116911614155b15611a0557505f611a7f565b6019546001600160a01b038581169116148015611a3057506018546001600160a01b03848116911614155b15611a4257600f54600b55601054600c555b6019546001600160a01b038481169116148015611a6d57506018546001600160a01b03858116911614155b15611a7f57601154600b55601254600c555b6110f884848484611d34565b5f8184841115611aae5760405162461bcd60e51b81526004016108da9190612214565b505f611aba84866128a9565b95945050505050565b6016546001600160a01b03166108fc611add836002611d62565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b506017546001600160a01b03166108fc611b1d836002611d62565b6040518115909202915f818181858888f193505050501580156109d8573d5f803e3d5ffd5b5f600654821115611ba85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108da565b5f611bb1611da3565b9050611bbd8382611d62565b9392505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c0a57611c0a61268b565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8591906128bc565b81600181518110611c9857611c9861268b565b6001600160a01b039283166020918202929092010152601854611cbe9130911684611438565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cf69085905f908690309042906004016128d7565b5f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b80611d4157611d41611dc4565b611d4c848484611df1565b806110f8576110f8600d54600b55600e54600c55565b5f611bbd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee2565b5f805f611dae611f0e565b9092509050611dbd8282611d62565b9250505090565b600b54158015611dd45750600c54155b15611ddb57565b600b8054600d55600c8054600e555f9182905555565b5f805f805f80611e0087611f4b565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150611e319087611fa0565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611e5f9086611fe1565b6001600160a01b0389165f90815260036020526040902055611e808161203f565b611e8a8483612085565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ecf91815260200190565b60405180910390a3505050505050505050565b5f8183611f025760405162461bcd60e51b81526004016108da9190612214565b505f611aba8486612948565b6006545f90819066038d7ea4c68000611f278282611d62565b821015611f425750506006549266038d7ea4c6800092509050565b90939092509050565b5f805f805f805f805f611f638a600b54600c546120a9565b9250925092505f611f72611da3565b90505f805f611f838e8787876120fb565b919e509c509a509598509396509194505050505091939550919395565b5f611bbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a8b565b5f80611fed8385612896565b905083811015611bbd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108da565b5f612048611da3565b90505f6120558383612147565b305f908152600360205260409020549091506120719082611fe1565b305f90815260036020526040902055505050565b6006546120929083611fa0565b6006556008546120a29082611fe1565b6008555050565b5f8080806120c260646120bc8989612147565b90611d62565b90505f6120d460646120bc8a89612147565b90505f6120eb826120e58b86611fa0565b90611fa0565b9992985090965090945050505050565b5f8080806121098886612147565b90505f6121168887612147565b90505f6121238888612147565b90505f612134826120e58686611fa0565b939b939a50919850919650505050505050565b5f825f0361215657505f61094e565b5f6121618385612967565b90508261216e8583612948565b14611bbd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108da565b803580151581146121d4575f80fd5b919050565b5f602082840312156121e9575f80fd5b611bbd826121c5565b5f5b8381101561220c5781810151838201526020016121f4565b50505f910152565b602081525f82518060208401526122328160408501602087016121f2565b601f01601f19169190910160400192915050565b5f805f8060808587031215612259575f80fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0381168114610c6d575f80fd5b5f806040838503121561229a575f80fd5b82356122a581612275565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122f0576122f06122b3565b604052919050565b5f6020808385031215612309575f80fd5b823567ffffffffffffffff80821115612320575f80fd5b818501915085601f830112612333575f80fd5b813581811115612345576123456122b3565b8060051b91506123568483016122c7565b818152918301840191848101908884111561236f575f80fd5b938501935b83851015612399578435925061238983612275565b8282529385019390850190612374565b98975050505050505050565b5f805f606084860312156123b7575f80fd5b83356123c281612275565b925060208401356123d281612275565b929592945050506040919091013590565b5f602082840312156123f3575f80fd5b8135611bbd81612275565b5f6020828403121561240e575f80fd5b5035919050565b5f82601f830112612424575f80fd5b813567ffffffffffffffff81111561243e5761243e6122b3565b612451601f8201601f19166020016122c7565b818152846020838601011115612465575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612491575f80fd5b813567ffffffffffffffff8111156124a7575f80fd5b6124b384828501612415565b949350505050565b5f805f606084860312156124cd575f80fd5b833567ffffffffffffffff808211156124e4575f80fd5b6124f087838801612415565b94506020860135915080821115612505575f80fd5b61251187838801612415565b93506040860135915080821115612526575f80fd5b5061253386828701612415565b9150509250925092565b5f805f6040848603121561254f575f80fd5b833567ffffffffffffffff80821115612566575f80fd5b818601915086601f830112612579575f80fd5b813581811115612587575f80fd5b8760208260051b850101111561259b575f80fd5b6020928301955093506125b191860190506121c5565b90509250925092565b5f805f80608085870312156125cd575f80fd5b84356125d881612275565b935060208501356125e881612275565b925060408501356125f881612275565b915060608501356001600160e81b031981168114612614575f80fd5b939692955090935050565b5f8060408385031215612630575f80fd5b823561263b81612275565b9150602083013561264b81612275565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b600181811c908216806126e057607f821691505b6020821081036126fe57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561274857805f5260205f20601f840160051c810160208510156127295750805b601f840160051c820191505b81811015611012575f8155600101612735565b505050565b815167ffffffffffffffff811115612767576127676122b3565b61277b8161277584546126cc565b84612704565b602080601f8311600181146127ae575f84156127975750858301515b5f19600386901b1c1916600185901b178555612805565b5f85815260208120601f198616915b828110156127dc578886015182559484019460019091019084016127bd565b50858210156127f957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b605b60f81b81525f84516128288160018501602089016121f2565b808301905061016160f51b806001830152855161284c816003850160208a016121f2565b600392019182015283516128678160058401602088016121f2565b605d60f81b6005929091019182015260060195945050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561094e5761094e612882565b8181038181111561094e5761094e612882565b5f602082840312156128cc575f80fd5b8151611bbd81612275565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129275784516001600160a01b031683529383019391830191600101612902565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261296257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761094e5761094e61288256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a971eb592a5bb52163fc8038797b6645ac4ab6d2597968fef525d3ff061e4f164736f6c63430008170033

Deployed Bytecode Sourcemap

4244:16272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17147:102;;;;;;;;;;-1:-1:-1;17147:102:0;;;;;:::i;:::-;;:::i;:::-;;6796:83;;;;;;;;;;-1:-1:-1;6866:5:0;;;;;;;;;;;;-1:-1:-1;;;6866:5:0;;;;6796:83;;;;;;;:::i;:::-;;;;;;;;16692:298;;;;;;;;;;-1:-1:-1;16692:298:0;;;;;:::i;:::-;;:::i;7730:193::-;;;;;;;;;;-1:-1:-1;7730:193:0;;;;;:::i;:::-;;:::i;:::-;;;2031:14:1;;2024:22;2006:41;;1994:2;1979:18;7730:193:0;1866:187:1;12567:166:0;;;;;;;;;;-1:-1:-1;12567:166:0;;;;;:::i;:::-;;:::i;5812:41::-;;;;;;;;;;-1:-1:-1;5812:41:0;;;;-1:-1:-1;;;;;5812:41:0;;;;;;-1:-1:-1;;;;;3686:32:1;;;3668:51;;3656:2;3641:18;5812:41:0;3496:229:1;7222:95:0;;;;;;;;;;-1:-1:-1;4801:14:0;7222:95;;;3876:25:1;;;3864:2;3849:18;7222:95:0;3730:177:1;7929:446:0;;;;;;;;;;-1:-1:-1;7929:446:0;;;;;:::i;:::-;;:::i;12975:88::-;;;;;;;;;;-1:-1:-1;12975:88:0;;;;;:::i;:::-;;:::i;1972:144::-;;;;;;;;;;;;;:::i;5539:61::-;;;;;;;;;;;;;;;;6984:83;;;;;;;;;;-1:-1:-1;6984:83:0;;4474:1;4767:36:1;;4755:2;4740:18;6984:83:0;4625:184:1;5860:28:0;;;;;;;;;;-1:-1:-1;5860:28:0;;;;-1:-1:-1;;;;;5860:28:0;;;20338:151;;;;;;;;;;-1:-1:-1;20338:151:0;;;;;:::i;:::-;;:::i;17504:111::-;;;;;;;;;;-1:-1:-1;17504:111:0;;;;;:::i;:::-;;:::i;17385:110::-;;;;;;;;;;-1:-1:-1;17385:110:0;;;;;:::i;:::-;;:::i;12741:226::-;;;;;;;;;;;;;:::i;7075:138::-;;;;;;;;;;-1:-1:-1;7075:138:0;;;;;:::i;:::-;;:::i;17257:119::-;;;;;;;;;;;;;:::i;18203:386::-;;;;;;;;;;-1:-1:-1;18203:386:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5492:15:1;;;5474:34;;5544:15;;;5539:2;5524:18;;5517:43;5596:15;;5591:2;5576:18;;5569:43;-1:-1:-1;;;;;;5648:31:1;;;5643:2;5628:18;;5621:59;5423:3;5408:19;;5207:479;5412:54:0;;;;;;;;;;;;;;;;17998:26;;;;;;;;;;-1:-1:-1;17998:26:0;;;;;:::i;:::-;;:::i;1497:79::-;;;;;;;;;;-1:-1:-1;1535:7:0;1562:6;-1:-1:-1;;;;;1562:6:0;1497:79;;5474:57;;;;;;;;;;;;;;;;18597:99;;;;;;;;;;-1:-1:-1;18673:8:0;:15;18597:99;;6888:87;;;;;;;;;;-1:-1:-1;6960:7:0;;;;;;;;;;;;-1:-1:-1;;;6960:7:0;;;;6888:87;;16999:139;;;;;;;;;;-1:-1:-1;16999:139:0;;;;;:::i;:::-;;:::i;7329:199::-;;;;;;;;;;-1:-1:-1;7329:199:0;;;;;:::i;:::-;;:::i;18710:102::-;;;;;;;;;;-1:-1:-1;18710:102:0;;;;;:::i;:::-;;:::i;19590:149::-;;;;;;;;;;-1:-1:-1;19590:149:0;;;;;:::i;:::-;;:::i;19774:556::-;;;;;;;;;;-1:-1:-1;19774:556:0;;;;;:::i;:::-;;:::i;4946:36::-;;;;;;;;;;-1:-1:-1;4946:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12332:227;;;;;;;;;;;;;:::i;17624:234::-;;;;;;;;;;-1:-1:-1;17624:234:0;;;;;:::i;:::-;;:::i;4878:26::-;;;;;;;;;;;;;;;;18036:159;;;;;;;;;;-1:-1:-1;18036:159:0;;;;;:::i;:::-;18145:41;;;;;;;;-1:-1:-1;;;;;18145:41:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18145:41:0;;;;;;;;;18131:8;:56;;;;;;;-1:-1:-1;18131:56:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18131:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18131:56:0;-1:-1:-1;;;;;;18131:56:0;;;;;;;;;;;18036:159;7537:184;;;;;;;;;;-1:-1:-1;7537:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7686:18:0;;;7654:7;7686:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7537:184;18882:99;;;;;;;;;;-1:-1:-1;18882:99:0;;;;;:::i;:::-;;:::i;13071:141::-;;;;;;;;;;-1:-1:-1;13071:141:0;;;;;:::i;:::-;;:::i;1719:244::-;;;;;;;;;;-1:-1:-1;1719:244:0;;;;;:::i;:::-;;:::i;19043:539::-;;;;;;;;;;-1:-1:-1;19043:539:0;;;;;:::i;:::-;;:::i;17147:102::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;;;;;;;;;17215:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17215:26:0::1;-1:-1:-1::0;;;;17215:26:0;;::::1;::::0;;;::::1;::::0;;17147:102::o;16692:298::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;16830:14:::1;:30:::0;;;;16871:15:::1;:32:::0;;;;16917:12:::1;:26:::0;16954:13:::1;:28:::0;16692:298::o;7730:193::-;7832:4;7854:39;325:10;7877:7;7886:6;7854:8;:39::i;:::-;-1:-1:-1;7911:4:0;7730:193;;;;;:::o;12567:166::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;12640:9:::1;12635:91;12659:5;:12;12655:1;:16;12635:91;;;12710:4;12693;:14;12698:5;12704:1;12698:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12693:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12693:14:0;:21;;-1:-1:-1;;12693:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12673:3:0::1;12635:91;;;;12567:166:::0;:::o;7929:446::-;8061:4;8078:36;8088:6;8096:9;8107:6;8078:9;:36::i;:::-;8125:220;8148:6;325:10;8196:138;8252:6;8196:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8196:19:0;;;;;;:11;:19;;;;;;;;325:10;8196:33;;;;;;;;;;:37;:138::i;:::-;8125:8;:220::i;:::-;-1:-1:-1;8363:4:0;7929:446;;;;;:::o;12975:88::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13035:12:0::1;13050:5;13035:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13035:20:0::1;::::0;;12975:88::o;1972:144::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;2075:1:::1;2059:6:::0;;2038:40:::1;::::0;-1:-1:-1;;;;;2059:6:0;;::::1;::::0;2038:40:::1;::::0;2075:1;;2038:40:::1;2106:1;2089:19:::0;;-1:-1:-1;;;;;;2089:19:0::1;::::0;;1972:144::o;20338:151::-;20417:8;:15;20384:13;;20413:19;;20405:51;;;;-1:-1:-1;;;20405:51:0;;;;;;;:::i;:::-;20474:8;20483:1;20474:11;;;;;;;;:::i;:::-;;;;;;;;20467:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20338:151;;;:::o;17504:111::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;17577:14:::1;:30:::0;17504:111::o;17385:110::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;17461:12:::1;:26:::0;17385:110::o;12741:226::-;12807:15;;-1:-1:-1;;;;;12807:15:0;325:10;-1:-1:-1;;;;;12791:31:0;;:63;;;-1:-1:-1;12842:12:0;;-1:-1:-1;;;;;12842:12:0;325:10;-1:-1:-1;;;;;12826:28:0;;12791:63;12783:72;;;;;;12895:21;12927:32;12895:21;12927:12;:32::i;:::-;12772:195;12741:226::o;7075:138::-;-1:-1:-1;;;;;7188:16:0;;7141:7;7188:16;;;:7;:16;;;;;;7168:37;;:19;:37::i;17257:119::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;4801:14:::1;17311:12;:22:::0;;;17344:14:::1;:24:::0;17257:119::o;18203:386::-;18260:7;18269;18278;18287:6;18374:8;:15;;;;18365:6;:24;18357:56;;;;-1:-1:-1;;;18357:56:0;;;;;;;:::i;:::-;18434:29;18466:8;18475:6;18466:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;18501:17;;;18520;;;18539;;;;;-1:-1:-1;;;;;18501:17:0;;;;18520;;;;-1:-1:-1;18539:17:0;;;;-1:-1:-1;;;;18558:22:0;;;;;-1:-1:-1;18203:386:0;-1:-1:-1;;;18203:386:0:o;17998:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17998:26:0;;;;-1:-1:-1;17998:26:0;;;;;;;;-1:-1:-1;;;17998:26:0;;;;;:::o;16999:139::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;17090:19:::1;:40:::0;16999:139::o;7329:199::-;7434:4;7456:42;325:10;7480:9;7491:6;7456:9;:42::i;18710:102::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;18781:9:::1;:23:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;18781:23:0;;;;;::::1;;18796:7:::0;18781:23;::::1;:::i;19590:149::-:0;19669:7;:14;19636:13;;19665:18;;19657:50;;;;-1:-1:-1;;;19657:50:0;;;;;;;:::i;:::-;19725:7;19733:1;19725:10;;;;;;;;:::i;19774:556::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;19933:6:::1;19917:24;;;;;;19905:6;19889:24;;;;;;:52:::0;19881:97:::1;;;::::0;-1:-1:-1;;;19881:97:0;;12702:2:1;19881:97:0::1;::::0;::::1;12684:21:1::0;;;12721:18;;;12714:30;12780:34;12760:18;;;12753:62;12832:18;;19881:97:0::1;12500:356:1::0;19881:97:0::1;20037:6;20021:24;;;;;;20009:6;19993:24;;;;;;:52:::0;19985:97:::1;;;::::0;-1:-1:-1;;;19985:97:0;;13063:2:1;19985:97:0::1;::::0;::::1;13045:21:1::0;;;13082:18;;;13075:30;13141:34;13121:18;;;13114:62;13193:18;;19985:97:0::1;12861:356:1::0;19985:97:0::1;20141:6;20125:24;;;;;;20113:6;20097:24;;;;;;:52:::0;20089:97:::1;;;::::0;-1:-1:-1;;;20089:97:0;;13424:2:1;20089:97:0::1;::::0;::::1;13406:21:1::0;;;13443:18;;;13436:30;13502:34;13482:18;;;13475:62;13554:18;;20089:97:0::1;13222:356:1::0;20089:97:0::1;20195:25;20251:6;20265;20279;20230:61;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;20230:61:0;;::::1;::::0;;;;;;::::1;20300:26:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;20300:26:0;;;;20230:61;;-1:-1:-1;20300:26:0;::::1;;20230:61:::0;20300:26;::::1;:::i;:::-;;19874:456;19774:556:::0;;;:::o;12332:227::-;12398:15;;-1:-1:-1;;;;;12398:15:0;325:10;-1:-1:-1;;;;;12382:31:0;;:63;;;-1:-1:-1;12433:12:0;;-1:-1:-1;;;;;12433:12:0;325:10;-1:-1:-1;;;;;12417:28:0;;12382:63;12374:72;;;;;;12457:23;12483:24;12501:4;12483:9;:24::i;:::-;12457:50;;12518:33;12535:15;12518:16;:33::i;17624:234::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;17741:9:::1;17737:114;17756:19:::0;;::::1;17737:114;;;17831:8;17797:18;:31;17816:8;;17825:1;17816:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17797:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17797:31:0;:42;;-1:-1:-1;;17797:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17777:3:0::1;17737:114;;;;17624:234:::0;;;:::o;18882:99::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;18951:7:::1;:22:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;18951:22:0;;;;;::::1;;18964:8:::0;18951:22;::::1;:::i;13071:141::-:0;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;13141:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13141:26:0::1;-1:-1:-1::0;;;;13141:26:0;;::::1;::::0;;;::::1;::::0;;13192:12:::1;13178:11;:26:::0;13071:141::o;1719:244::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1808:22:0;::::1;1800:73;;;::::0;-1:-1:-1;;;1800:73:0;;15074:2:1;1800:73:0::1;::::0;::::1;15056:21:1::0;15113:2;15093:18;;;15086:30;15152:34;15132:18;;;15125:62;-1:-1:-1;;;15203:18:1;;;15196:36;15249:19;;1800:73:0::1;14872:402:1::0;1800:73:0::1;1910:6;::::0;;1889:38:::1;::::0;-1:-1:-1;;;;;1889:38:0;;::::1;::::0;1910:6;::::1;::::0;1889:38:::1;::::0;::::1;1938:6;:17:::0;;-1:-1:-1;;;;;;1938:17:0::1;-1:-1:-1::0;;;;;1938:17:0;;;::::1;::::0;;;::::1;::::0;;1719:244::o;19043:539::-;1625:6;;-1:-1:-1;;;;;1625:6:0;325:10;1625:22;1617:67;;;;-1:-1:-1;;;1617:67:0;;;;;;;:::i;:::-;19196:5:::1;19180:23;;;;;;19169:5;19153:23;;;;;;:50:::0;19145:95:::1;;;::::0;-1:-1:-1;;;19145:95:0;;12702:2:1;19145:95:0::1;::::0;::::1;12684:21:1::0;;;12721:18;;;12714:30;12780:34;12760:18;;;12753:62;12832:18;;19145:95:0::1;12500:356:1::0;19145:95:0::1;19298:5;19282:23;;;;;;19271:5;19255:23;;;;;;:50:::0;19247:95:::1;;;::::0;-1:-1:-1;;;19247:95:0;;13063:2:1;19247:95:0::1;::::0;::::1;13045:21:1::0;;;13082:18;;;13075:30;13141:34;13121:18;;;13114:62;13193:18;;19247:95:0::1;12861:356:1::0;19247:95:0::1;19400:5;19384:23;;;;;;19373:5;19357:23;;;;;;:50:::0;19349:95:::1;;;::::0;-1:-1:-1;;;19349:95:0;;13424:2:1;19349:95:0::1;::::0;::::1;13406:21:1::0;;;13443:18;;;13436:30;13502:34;13482:18;;;13475:62;13554:18;;19349:95:0::1;13222:356:1::0;19349:95:0::1;19453:24;19508:5;19521;19534;19487:58;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;19487:58:0;;::::1;::::0;;;;;;19554:7:::1;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;19554:24:0;;;;19487:58;;-1:-1:-1;19554:24:0;::::1;;19487:58:::0;19554:24;::::1;:::i;9072:369::-:0;-1:-1:-1;;;;;9199:19:0;;9191:68;;;;-1:-1:-1;;;9191:68:0;;15481:2:1;9191:68:0;;;15463:21:1;15520:2;15500:18;;;15493:30;15559:34;15539:18;;;15532:62;-1:-1:-1;;;15610:18:1;;;15603:34;15654:19;;9191:68:0;15279:400:1;9191:68:0;-1:-1:-1;;;;;9278:21:0;;9270:68;;;;-1:-1:-1;;;9270:68:0;;15886:2:1;9270:68:0;;;15868:21:1;15925:2;15905:18;;;15898:30;15964:34;15944:18;;;15937:62;-1:-1:-1;;;16015:18:1;;;16008:32;16057:19;;9270:68:0;15684:398:1;9270:68:0;-1:-1:-1;;;;;9349:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9401:32;;3876:25:1;;;9401:32:0;;3849:18:1;9401:32:0;;;;;;;9072:369;;;:::o;9450:2218::-;-1:-1:-1;;;;;9572:18:0;;9564:68;;;;-1:-1:-1;;;9564:68:0;;16289:2:1;9564:68:0;;;16271:21:1;16328:2;16308:18;;;16301:30;16367:34;16347:18;;;16340:62;-1:-1:-1;;;16418:18:1;;;16411:35;16463:19;;9564:68:0;16087:401:1;9564:68:0;-1:-1:-1;;;;;9651:16:0;;9643:64;;;;-1:-1:-1;;;9643:64:0;;16695:2:1;9643:64:0;;;16677:21:1;16734:2;16714:18;;;16707:30;16773:34;16753:18;;;16746:62;-1:-1:-1;;;16824:18:1;;;16817:33;16867:19;;9643:64:0;16493:399:1;9643:64:0;9735:1;9726:6;:10;9718:64;;;;-1:-1:-1;;;9718:64:0;;17099:2:1;9718:64:0;;;17081:21:1;17138:2;17118:18;;;17111:30;17177:34;17157:18;;;17150:62;-1:-1:-1;;;17228:18:1;;;17221:39;17277:19;;9718:64:0;16897:405:1;9718:64:0;1535:7;1562:6;-1:-1:-1;;;;;9800:15:0;;;1562:6;;9800:15;;;;:32;;-1:-1:-1;1535:7:0;1562:6;-1:-1:-1;;;;;9819:13:0;;;1562:6;;9819:13;;9800:32;9796:1232;;;9857:11;;-1:-1:-1;;;9857:11:0;;;;9852:144;;1535:7;1562:6;-1:-1:-1;;;;;9897:15:0;;;1562:6;;9897:15;9889:91;;;;-1:-1:-1;;;9889:91:0;;17509:2:1;9889:91:0;;;17491:21:1;17548:2;17528:18;;;17521:30;17587:34;17567:18;;;17560:62;17658:33;17638:18;;;17631:61;17709:19;;9889:91:0;17307:427:1;9889:91:0;10031:12;;10021:6;:22;;10013:63;;;;-1:-1:-1;;;10013:63:0;;17941:2:1;10013:63:0;;;17923:21:1;17980:2;17960:18;;;17953:30;18019;17999:18;;;17992:58;18067:18;;10013:63:0;17739:352:1;10013:63:0;-1:-1:-1;;;;;10100:10:0;;;;;;:4;:10;;;;;;;;10099:11;:24;;;;-1:-1:-1;;;;;;10115:8:0;;;;;;:4;:8;;;;;;;;10114:9;10099:24;10091:72;;;;-1:-1:-1;;;10091:72:0;;18298:2:1;10091:72:0;;;18280:21:1;18337:2;18317:18;;;18310:30;18376:34;18356:18;;;18349:62;-1:-1:-1;;;18427:18:1;;;18420:33;18470:19;;10091:72:0;18096:399:1;10091:72:0;10190:13;;-1:-1:-1;;;;;10184:19:0;;;10190:13;;10184:19;10181:146;;10257:14;;10248:6;10232:13;10242:2;10232:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10224:87;;;;-1:-1:-1;;;10224:87:0;;18964:2:1;10224:87:0;;;18946:21:1;19003:2;18983:18;;;18976:30;19042:34;19022:18;;;19015:62;-1:-1:-1;;;19093:18:1;;;19086:33;19136:19;;10224:87:0;18762:399:1;10224:87:0;10344:28;10375:24;10393:4;10375:9;:24::i;:::-;10453:19;;10517:12;;10344:55;;-1:-1:-1;10429:43:0;;;;10493:36;;10490:124;;10586:12;;10563:35;;10490:124;10635:7;:18;;;;-1:-1:-1;10647:6:0;;-1:-1:-1;;;10647:6:0;;;;10646:7;10635:18;:43;;;;-1:-1:-1;10665:13:0;;-1:-1:-1;;;;;10657:21:0;;;10665:13;;10657:21;;10635:43;:58;;;;-1:-1:-1;10682:11:0;;-1:-1:-1;;;10682:11:0;;;;10635:58;:87;;;;-1:-1:-1;;;;;;10698:24:0;;;;;;:18;:24;;;;;;;;10697:25;10635:87;:114;;;;-1:-1:-1;;;;;;10727:22:0;;;;;;:18;:22;;;;;;;;10726:23;10635:114;10631:386;;;10770:38;10787:20;10770:16;:38::i;:::-;10856:21;10900:22;;10896:106;;10947:35;10960:21;10947:12;:35::i;:::-;10751:266;10631:386;9834:1194;;9796:1232;-1:-1:-1;;;;;11079:24:0;;11041:12;11079:24;;;:18;:24;;;;;;11056:4;;11079:24;;;:50;;-1:-1:-1;;;;;;11107:22:0;;;;;;:18;:22;;;;;;;;11079:50;11078:102;;;-1:-1:-1;11143:13:0;;-1:-1:-1;;;;;11135:21:0;;;11143:13;;11135:21;;;;:44;;-1:-1:-1;11166:13:0;;-1:-1:-1;;;;;11160:19:0;;;11166:13;;11160:19;;11135:44;11074:532;;;-1:-1:-1;11207:5:0;11074:532;;;11259:13;;-1:-1:-1;;;;;11251:21:0;;;11259:13;;11251:21;:55;;;;-1:-1:-1;11290:15:0;;-1:-1:-1;;;;;11276:30:0;;;11290:15;;11276:30;;11251:55;11248:162;;;11339:14;;11327:9;:26;11382:12;;11372:7;:22;11248:162;11437:13;;-1:-1:-1;;;;;11431:19:0;;;11437:13;;11431:19;:55;;;;-1:-1:-1;11470:15:0;;-1:-1:-1;;;;;11454:32:0;;;11470:15;;11454:32;;11431:55;11427:165;;;11519:15;;11507:9;:27;11563:13;;11553:7;:23;11427:165;11619:41;11634:4;11640:2;11644:6;11652:7;11619:14;:41::i;2486:224::-;2606:7;2642:12;2634:6;;;;2626:29;;;;-1:-1:-1;;;2626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2666:9:0;2678:5;2682:1;2678;:5;:::i;:::-;2666:17;2486:224;-1:-1:-1;;;;;2486:224:0:o;12169:151::-;12226:15;;-1:-1:-1;;;;;12226:15:0;:39;12251:13;:6;12262:1;12251:10;:13::i;:::-;12226:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12276:12:0;;-1:-1:-1;;;;;12276:12:0;:36;12298:13;:6;12309:1;12298:10;:13::i;:::-;12276:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8384:323;8479:7;8537;;8526;:18;;8504:110;;;;-1:-1:-1;;;8504:110:0;;19501:2:1;8504:110:0;;;19483:21:1;19540:2;19520:18;;;19513:30;19579:34;19559:18;;;19552:62;-1:-1:-1;;;19630:18:1;;;19623:40;19680:19;;8504:110:0;19299:406:1;8504:110:0;8625:19;8647:10;:8;:10::i;:::-;8625:32;-1:-1:-1;8675:24:0;:7;8625:32;8675:11;:24::i;:::-;8668:31;8384:323;-1:-1:-1;;;8384:323:0:o;11677:483::-;6092:6;:13;;-1:-1:-1;;;;6092:13:0;-1:-1:-1;;;6092:13:0;;;11779:16:::1;::::0;;11793:1:::1;11779:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11779:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11779:16:0::1;11755:40;;11824:4;11806;11811:1;11806:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11806:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11850:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11850:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11806:7;;11850:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11840:4;11845:1;11840:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11840:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11915:15:::1;::::0;11883:62:::1;::::0;11900:4:::1;::::0;11915:15:::1;11933:11:::0;11883:8:::1;:62::i;:::-;11956:15;::::0;:196:::1;::::0;-1:-1:-1;;;11956:196:0;;-1:-1:-1;;;;;11956:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12037:11;;11956:15:::1;::::0;12079:4;;12106::::1;::::0;12126:15:::1;::::0;11956:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6128:6:0;:14;;-1:-1:-1;;;;6128:14:0;;;-1:-1:-1;;;;11677:483:0:o;13221:282::-;13377:7;13372:28;;13386:14;:12;:14::i;:::-;13411:44;13429:6;13437:9;13448:6;13411:17;:44::i;:::-;13471:7;13466:29;;13480:15;9002:17;;8990:9;:29;9040:15;;9030:7;:25;8946:117;2974:132;3032:7;3059:39;3063:1;3066;3059:39;;;;;;;;;;;;;;;;;:3;:39::i;16247:167::-;16289:7;16310:15;16327;16346:19;:17;:19::i;:::-;16309:56;;-1:-1:-1;16309:56:0;-1:-1:-1;16386:20:0;16309:56;;16386:11;:20::i;:::-;16379:27;;;;16247:167;:::o;8716:221::-;8763:9;;:14;:30;;;;-1:-1:-1;8781:7:0;;:12;8763:30;8759:43;;;8716:221::o;8759:43::-;8835:9;;;8815:17;:29;8873:7;;;8855:15;:25;-1:-1:-1;8894:13:0;;;;8918:11;8716:221::o;13512:618::-;13659:15;13689:23;13727:12;13754:23;13792:12;13819:17;13850:19;13861:7;13850:10;:19::i;:::-;-1:-1:-1;;;;;13898:15:0;;;;;;:7;:15;;;;;;13644:225;;-1:-1:-1;13644:225:0;;-1:-1:-1;13644:225:0;;-1:-1:-1;13644:225:0;-1:-1:-1;13644:225:0;-1:-1:-1;13644:225:0;-1:-1:-1;13898:28:0;;13644:225;13898:19;:28::i;:::-;-1:-1:-1;;;;;13880:15:0;;;;;;;:7;:15;;;;;;:46;;;;13958:18;;;;;;;:39;;13981:15;13958:22;:39::i;:::-;-1:-1:-1;;;;;13937:18:0;;;;;;:7;:18;;;;;:60;14008:20;14018:9;14008;:20::i;:::-;14039:23;14051:4;14057;14039:11;:23::i;:::-;14095:9;-1:-1:-1;;;;;14078:44:0;14087:6;-1:-1:-1;;;;;14078:44:0;;14106:15;14078:44;;;;3876:25:1;;3864:2;3849:18;;3730:177;14078:44:0;;;;;;;;13633:497;;;;;;13512:618;;;:::o;3115:223::-;3235:7;3270:12;3263:5;3255:28;;;;-1:-1:-1;;;3255:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3294:9:0;3306:5;3310:1;3306;:5;:::i;16423:260::-;16521:7;;16474;;;;4801:14;16589:20;16521:7;4801:14;16589:11;:20::i;:::-;16579:7;:30;16575:61;;;-1:-1:-1;;16619:7:0;;;4801:14;;-1:-1:-1;16423:260:0;-1:-1:-1;16423:260:0:o;16575:61::-;16658:7;;16667;;-1:-1:-1;16423:260:0;-1:-1:-1;16423:260:0:o;14561:630::-;14661:7;14683;14705;14727;14749;14771;14807:23;14832:12;14846:17;14880:40;14892:7;14901:9;;14912:7;;14880:11;:40::i;:::-;14806:114;;;;;;14931:19;14953:10;:8;:10::i;:::-;14931:32;;14975:15;14992:23;15017:12;15046:50;15058:7;15067:4;15073:9;15084:11;15046;:50::i;:::-;14974:122;;-1:-1:-1;14974:122:0;-1:-1:-1;14974:122:0;-1:-1:-1;15150:15:0;;-1:-1:-1;15167:4:0;;-1:-1:-1;15173:9:0;;-1:-1:-1;;;;;14561:630:0;;;;;;;:::o;2341:136::-;2399:7;2426:43;2430:1;2433;2426:43;;;;;;;;;;;;;;;;;:3;:43::i;2153:179::-;2211:7;;2243:5;2247:1;2243;:5;:::i;:::-;2231:17;;2272:1;2267;:6;;2259:46;;;;-1:-1:-1;;;2259:46:0;;21375:2:1;2259:46:0;;;21357:21:1;21414:2;21394:18;;;21387:30;21453:29;21433:18;;;21426:57;21500:18;;2259:46:0;21173:351:1;14139:219:0;14196:19;14218:10;:8;:10::i;:::-;14196:32;-1:-1:-1;14239:13:0;14255:26;:9;14196:32;14255:13;:26::i;:::-;14333:4;14317:22;;;;:7;:22;;;;;;14239:42;;-1:-1:-1;14317:33:0;;14239:42;14317:26;:33::i;:::-;14308:4;14292:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14139:219:0:o;14367:147::-;14445:7;;:17;;14457:4;14445:11;:17::i;:::-;14435:7;:27;14486:10;;:20;;14501:4;14486:14;:20::i;:::-;14473:10;:33;-1:-1:-1;;14367:147:0:o;15200:484::-;15369:7;;;;15463:30;15489:3;15463:21;:7;15475:8;15463:11;:21::i;:::-;:25;;:30::i;:::-;15448:45;-1:-1:-1;15504:17:0;15524:28;15548:3;15524:19;:7;15536:6;15524:11;:19::i;:28::-;15504:48;-1:-1:-1;15563:23:0;15589:32;15504:48;15589:17;:7;15601:4;15589:11;:17::i;:::-;:21;;:32::i;:::-;15563:58;15660:4;;-1:-1:-1;15666:9:0;;-1:-1:-1;15200:484:0;;-1:-1:-1;;;;;15200:484:0:o;15693:545::-;15891:7;;;;15988:24;:7;16000:11;15988;:24::i;:::-;15970:42;-1:-1:-1;16023:12:0;16038:21;:4;16047:11;16038:8;:21::i;:::-;16023:36;-1:-1:-1;16070:13:0;16086:26;:9;16100:11;16086:13;:26::i;:::-;16070:42;-1:-1:-1;16123:23:0;16149:28;16070:42;16149:17;:7;16161:4;16149:11;:17::i;:28::-;16199:7;;;;-1:-1:-1;16225:4:0;;-1:-1:-1;15693:545:0;;-1:-1:-1;;;;;;;15693:545:0:o;2719:246::-;2777:7;2801:1;2806;2801:6;2797:47;;-1:-1:-1;2831:1:0;2824:8;;2797:47;2854:9;2866:5;2870:1;2866;:5;:::i;:::-;2854:17;-1:-1:-1;2899:1:0;2890:5;2894:1;2854:17;2890:5;:::i;:::-;:10;2882:56;;;;-1:-1:-1;;;2882:56:0;;21904:2:1;2882:56:0;;;21886:21:1;21943:2;21923:18;;;21916:30;21982:34;21962:18;;;21955:62;-1:-1:-1;;;22033:18:1;;;22026:31;22074:19;;2882:56:0;21702:397:1;14:160;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:180::-;235:6;288:2;276:9;267:7;263:23;259:32;256:52;;;304:1;301;294:12;256:52;327:26;343:9;327:26;:::i;364:250::-;449:1;459:113;473:6;470:1;467:13;459:113;;;549:11;;;543:18;530:11;;;523:39;495:2;488:10;459:113;;;-1:-1:-1;;606:1:1;588:16;;581:27;364:250::o;619:396::-;768:2;757:9;750:21;731:4;800:6;794:13;843:6;838:2;827:9;823:18;816:34;859:79;931:6;926:2;915:9;911:18;906:2;898:6;894:15;859:79;:::i;:::-;999:2;978:15;-1:-1:-1;;974:29:1;959:45;;;;1006:2;955:54;;619:396;-1:-1:-1;;619:396:1:o;1020:385::-;1106:6;1114;1122;1130;1183:3;1171:9;1162:7;1158:23;1154:33;1151:53;;;1200:1;1197;1190:12;1151:53;-1:-1:-1;;1223:23:1;;;1293:2;1278:18;;1265:32;;-1:-1:-1;1344:2:1;1329:18;;1316:32;;1395:2;1380:18;1367:32;;-1:-1:-1;1020:385:1;-1:-1:-1;1020:385:1:o;1410:131::-;-1:-1:-1;;;;;1485:31:1;;1475:42;;1465:70;;1531:1;1528;1521:12;1546:315;1614:6;1622;1675:2;1663:9;1654:7;1650:23;1646:32;1643:52;;;1691:1;1688;1681:12;1643:52;1730:9;1717:23;1749:31;1774:5;1749:31;:::i;:::-;1799:5;1851:2;1836:18;;;;1823:32;;-1:-1:-1;;;1546:315:1:o;2058:127::-;2119:10;2114:3;2110:20;2107:1;2100:31;2150:4;2147:1;2140:15;2174:4;2171:1;2164:15;2190:275;2261:2;2255:9;2326:2;2307:13;;-1:-1:-1;;2303:27:1;2291:40;;2361:18;2346:34;;2382:22;;;2343:62;2340:88;;;2408:18;;:::i;:::-;2444:2;2437:22;2190:275;;-1:-1:-1;2190:275:1:o;2470:1021::-;2554:6;2585:2;2628;2616:9;2607:7;2603:23;2599:32;2596:52;;;2644:1;2641;2634:12;2596:52;2684:9;2671:23;2713:18;2754:2;2746:6;2743:14;2740:34;;;2770:1;2767;2760:12;2740:34;2808:6;2797:9;2793:22;2783:32;;2853:7;2846:4;2842:2;2838:13;2834:27;2824:55;;2875:1;2872;2865:12;2824:55;2911:2;2898:16;2933:2;2929;2926:10;2923:36;;;2939:18;;:::i;:::-;2985:2;2982:1;2978:10;2968:20;;3008:28;3032:2;3028;3024:11;3008:28;:::i;:::-;3070:15;;;3140:11;;;3136:20;;;3101:12;;;;3168:19;;;3165:39;;;3200:1;3197;3190:12;3165:39;3224:11;;;;3244:217;3260:6;3255:3;3252:15;3244:217;;;3340:3;3327:17;3314:30;;3357:31;3382:5;3357:31;:::i;:::-;3401:18;;;3277:12;;;;3439;;;;3244:217;;;3480:5;2470:1021;-1:-1:-1;;;;;;;;2470:1021:1:o;3912:456::-;3989:6;3997;4005;4058:2;4046:9;4037:7;4033:23;4029:32;4026:52;;;4074:1;4071;4064:12;4026:52;4113:9;4100:23;4132:31;4157:5;4132:31;:::i;:::-;4182:5;-1:-1:-1;4239:2:1;4224:18;;4211:32;4252:33;4211:32;4252:33;:::i;:::-;3912:456;;4304:7;;-1:-1:-1;;;4358:2:1;4343:18;;;;4330:32;;3912:456::o;4373:247::-;4432:6;4485:2;4473:9;4464:7;4460:23;4456:32;4453:52;;;4501:1;4498;4491:12;4453:52;4540:9;4527:23;4559:31;4584:5;4559:31;:::i;5022:180::-;5081:6;5134:2;5122:9;5113:7;5109:23;5105:32;5102:52;;;5150:1;5147;5140:12;5102:52;-1:-1:-1;5173:23:1;;5022:180;-1:-1:-1;5022:180:1:o;5691:531::-;5734:5;5787:3;5780:4;5772:6;5768:17;5764:27;5754:55;;5805:1;5802;5795:12;5754:55;5841:6;5828:20;5867:18;5863:2;5860:26;5857:52;;;5889:18;;:::i;:::-;5933:55;5976:2;5957:13;;-1:-1:-1;;5953:27:1;5982:4;5949:38;5933:55;:::i;:::-;6013:2;6004:7;5997:19;6059:3;6052:4;6047:2;6039:6;6035:15;6031:26;6028:35;6025:55;;;6076:1;6073;6066:12;6025:55;6141:2;6134:4;6126:6;6122:17;6115:4;6106:7;6102:18;6089:55;6189:1;6164:16;;;6182:4;6160:27;6153:38;;;;6168:7;5691:531;-1:-1:-1;;;5691:531:1:o;6227:322::-;6296:6;6349:2;6337:9;6328:7;6324:23;6320:32;6317:52;;;6365:1;6362;6355:12;6317:52;6405:9;6392:23;6438:18;6430:6;6427:30;6424:50;;;6470:1;6467;6460:12;6424:50;6493;6535:7;6526:6;6515:9;6511:22;6493:50;:::i;:::-;6483:60;6227:322;-1:-1:-1;;;;6227:322:1:o;6554:743::-;6661:6;6669;6677;6730:2;6718:9;6709:7;6705:23;6701:32;6698:52;;;6746:1;6743;6736:12;6698:52;6786:9;6773:23;6815:18;6856:2;6848:6;6845:14;6842:34;;;6872:1;6869;6862:12;6842:34;6895:50;6937:7;6928:6;6917:9;6913:22;6895:50;:::i;:::-;6885:60;;6998:2;6987:9;6983:18;6970:32;6954:48;;7027:2;7017:8;7014:16;7011:36;;;7043:1;7040;7033:12;7011:36;7066:52;7110:7;7099:8;7088:9;7084:24;7066:52;:::i;:::-;7056:62;;7171:2;7160:9;7156:18;7143:32;7127:48;;7200:2;7190:8;7187:16;7184:36;;;7216:1;7213;7206:12;7184:36;;7239:52;7283:7;7272:8;7261:9;7257:24;7239:52;:::i;:::-;7229:62;;;6554:743;;;;;:::o;7302:689::-;7394:6;7402;7410;7463:2;7451:9;7442:7;7438:23;7434:32;7431:52;;;7479:1;7476;7469:12;7431:52;7519:9;7506:23;7548:18;7589:2;7581:6;7578:14;7575:34;;;7605:1;7602;7595:12;7575:34;7643:6;7632:9;7628:22;7618:32;;7688:7;7681:4;7677:2;7673:13;7669:27;7659:55;;7710:1;7707;7700:12;7659:55;7750:2;7737:16;7776:2;7768:6;7765:14;7762:34;;;7792:1;7789;7782:12;7762:34;7847:7;7840:4;7830:6;7827:1;7823:14;7819:2;7815:23;7811:34;7808:47;7805:67;;;7868:1;7865;7858:12;7805:67;7899:4;7891:13;;;;-1:-1:-1;7923:6:1;-1:-1:-1;7948:37:1;;7964:20;;;-1:-1:-1;7948:37:1;:::i;:::-;7938:47;;7302:689;;;;;:::o;7996:710::-;8081:6;8089;8097;8105;8158:3;8146:9;8137:7;8133:23;8129:33;8126:53;;;8175:1;8172;8165:12;8126:53;8214:9;8201:23;8233:31;8258:5;8233:31;:::i;:::-;8283:5;-1:-1:-1;8340:2:1;8325:18;;8312:32;8353:33;8312:32;8353:33;:::i;:::-;8405:7;-1:-1:-1;8464:2:1;8449:18;;8436:32;8477:33;8436:32;8477:33;:::i;:::-;8529:7;-1:-1:-1;8588:2:1;8573:18;;8560:32;-1:-1:-1;;;;;;8623:32:1;;8611:45;;8601:73;;8670:1;8667;8660:12;8601:73;7996:710;;;;-1:-1:-1;7996:710:1;;-1:-1:-1;;7996:710:1:o;8711:388::-;8779:6;8787;8840:2;8828:9;8819:7;8815:23;8811:32;8808:52;;;8856:1;8853;8846:12;8808:52;8895:9;8882:23;8914:31;8939:5;8914:31;:::i;:::-;8964:5;-1:-1:-1;9021:2:1;9006:18;;8993:32;9034:33;8993:32;9034:33;:::i;:::-;9086:7;9076:17;;;8711:388;;;;;:::o;9104:356::-;9306:2;9288:21;;;9325:18;;;9318:30;9384:34;9379:2;9364:18;;9357:62;9451:2;9436:18;;9104:356::o;9465:127::-;9526:10;9521:3;9517:20;9514:1;9507:31;9557:4;9554:1;9547:15;9581:4;9578:1;9571:15;9597:343;9799:2;9781:21;;;9838:2;9818:18;;;9811:30;-1:-1:-1;;;9872:2:1;9857:18;;9850:49;9931:2;9916:18;;9597:343::o;9945:380::-;10024:1;10020:12;;;;10067;;;10088:61;;10142:4;10134:6;10130:17;10120:27;;10088:61;10195:2;10187:6;10184:14;10164:18;10161:38;10158:161;;10241:10;10236:3;10232:20;10229:1;10222:31;10276:4;10273:1;10266:15;10304:4;10301:1;10294:15;10158:161;;9945:380;;;:::o;10456:518::-;10558:2;10553:3;10550:11;10547:421;;;10594:5;10591:1;10584:16;10638:4;10635:1;10625:18;10708:2;10696:10;10692:19;10689:1;10685:27;10679:4;10675:38;10744:4;10732:10;10729:20;10726:47;;;-1:-1:-1;10767:4:1;10726:47;10822:2;10817:3;10813:12;10810:1;10806:20;10800:4;10796:31;10786:41;;10877:81;10895:2;10888:5;10885:13;10877:81;;;10954:1;10940:16;;10921:1;10910:13;10877:81;;10547:421;10456:518;;;:::o;11150:1345::-;11276:3;11270:10;11303:18;11295:6;11292:30;11289:56;;;11325:18;;:::i;:::-;11354:97;11444:6;11404:38;11436:4;11430:11;11404:38;:::i;:::-;11398:4;11354:97;:::i;:::-;11506:4;;11563:2;11552:14;;11580:1;11575:663;;;;12282:1;12299:6;12296:89;;;-1:-1:-1;12351:19:1;;;12345:26;12296:89;-1:-1:-1;;11107:1:1;11103:11;;;11099:24;11095:29;11085:40;11131:1;11127:11;;;11082:57;12398:81;;11545:944;;11575:663;10403:1;10396:14;;;10440:4;10427:18;;-1:-1:-1;;11611:20:1;;;11729:236;11743:7;11740:1;11737:14;11729:236;;;11832:19;;;11826:26;11811:42;;11924:27;;;;11892:1;11880:14;;;;11759:19;;11729:236;;;11733:3;11993:6;11984:7;11981:19;11978:201;;;12054:19;;;12048:26;-1:-1:-1;;12137:1:1;12133:14;;;12149:3;12129:24;12125:37;12121:42;12106:58;12091:74;;11978:201;;;12225:1;12216:6;12213:1;12209:14;12205:22;12199:4;12192:36;11545:944;;;;;11150:1345;;:::o;13583:1284::-;-1:-1:-1;;;14239:3:1;14232:16;14214:3;14277:6;14271:13;14293:74;14360:6;14356:1;14351:3;14347:11;14340:4;14332:6;14328:17;14293:74;:::i;:::-;14395:6;14390:3;14386:16;14376:26;;-1:-1:-1;;;14453:2:1;14449:1;14445:2;14441:10;14434:22;14487:6;14481:13;14503:75;14569:8;14565:1;14561:2;14557:10;14550:4;14542:6;14538:17;14503:75;:::i;:::-;14638:1;14597:17;;14630:10;;;14623:22;14670:13;;14692:75;14670:13;14754:1;14746:10;;14739:4;14727:17;;14692:75;:::i;:::-;-1:-1:-1;;;14827:1:1;14786:17;;;;14819:10;;;14812:23;14859:1;14851:10;;13583:1284;-1:-1:-1;;;;;13583:1284:1:o;18500:127::-;18561:10;18556:3;18552:20;18549:1;18542:31;18592:4;18589:1;18582:15;18616:4;18613:1;18606:15;18632:125;18697:9;;;18718:10;;;18715:36;;;18731:18;;:::i;19166:128::-;19233:9;;;19254:11;;;19251:37;;;19268:18;;:::i;19710:251::-;19780:6;19833:2;19821:9;19812:7;19808:23;19804:32;19801:52;;;19849:1;19846;19839:12;19801:52;19881:9;19875:16;19900:31;19925:5;19900:31;:::i;19966:980::-;20228:4;20276:3;20265:9;20261:19;20307:6;20296:9;20289:25;20333:2;20371:6;20366:2;20355:9;20351:18;20344:34;20414:3;20409:2;20398:9;20394:18;20387:31;20438:6;20473;20467:13;20504:6;20496;20489:22;20542:3;20531:9;20527:19;20520:26;;20581:2;20573:6;20569:15;20555:29;;20602:1;20612:195;20626:6;20623:1;20620:13;20612:195;;;20691:13;;-1:-1:-1;;;;;20687:39:1;20675:52;;20782:15;;;;20747:12;;;;20723:1;20641:9;20612:195;;;-1:-1:-1;;;;;;;20863:32:1;;;;20858:2;20843:18;;20836:60;-1:-1:-1;;;20927:3:1;20912:19;20905:35;20824:3;19966:980;-1:-1:-1;;;19966:980:1:o;20951:217::-;20991:1;21017;21007:132;;21061:10;21056:3;21052:20;21049:1;21042:31;21096:4;21093:1;21086:15;21124:4;21121:1;21114:15;21007:132;-1:-1:-1;21153:9:1;;20951:217::o;21529:168::-;21602:9;;;21633;;21650:15;;;21644:22;;21630:37;21620:71;;21671:18;;:::i

Swarm Source

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