ETH Price: $3,491.17 (+0.86%)
Gas: 10 Gwei

Token

Real Shark Horse (акулалошадь)
 

Overview

Max Total Supply

1,000,000,000 акулалошадь

Holders

128

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
bawsaq.eth
Balance
1,927,254.513728079 акулалошадь

Value
$0.00
0x9065Fa0Ad9A094Be452562904Ab12e4eF61E5d79
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:
RealSharkHorse

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-27
*/

/**⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
https://t.me/sharkhorsecoin
https://twitter.com/sharkhorsecoin
https://sharkhorse.club
**/
// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.22;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {

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

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

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

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

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

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

}

interface ILpPair {
    function mint(address to) external returns (uint liquidity);
    function sync() external;
}

interface IWETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

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

        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

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

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

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

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

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

}

contract RealSharkHorse is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _communityDevWallet;
	address payable private _teamWallet;
    address constant  DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 firstBlock;
    string public _websiteInformation;
    string public _telegramInformation;
    string public _twitterInformation;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event SetExemptFromFees(address _address, bool _isExempt);

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    uint256 private _startingBuyCount=0;
    uint256 private _buyTaxReducedAt=10;
    uint256 private _sellTaxReducedAt=40;
    uint256 private _preventSellToEthTill=40;
    uint256 private _buyTaxLaunch=25;
    uint256 private _sellTaxLaunch=25;
    uint256 private _buyTax=1;
    uint256 private _sellTax=1;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 **_decimals;
    string private constant _name = unicode"Real Shark Horse";
    string private constant _symbol = unicode"акулалошадь";
    uint256 public _maxTxAmount =   _tTotal / 10000 * 100; 
    uint256 public _maxWalletSize = _tTotal / 10000 * 100; 
    uint256 public _taxSwapThreshold = _tTotal / 10000 * 1;
    uint256 public _maxTaxSwap = _tTotal / 10000 * 50; 

    constructor () {

        _communityDevWallet = payable(_msgSender());
		_teamWallet = payable(address(0x783EaDA7612501019dfC78F0E8927aFD8277B26f));
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_communityDevWallet] = true;
		_isExcludedFromFee[_teamWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function removeBuyTax(uint256 _newFee) external onlyOwner() {
      _buyTax=_newFee;
      _newFee=0;
    }

    function removeSellTax(uint256 _newFee) external onlyOwner() {
      _sellTax=_newFee;
      _newFee=0;
    }

    function updateSocials (
        string calldata __websiteInformation,
        string calldata __telegramInformation,
        string calldata __twitterInformation
    ) external onlyOwner() {

        _websiteInformation = __websiteInformation;
        _telegramInformation = __telegramInformation;
        _twitterInformation = __twitterInformation;
}  

    function getWebsiteInformation() public view returns (string memory) {
        return _websiteInformation;
    }

    function getTelegramInformation() public view returns (string memory) {
        return _telegramInformation;
    }

    function getTwitterInformation() public view returns (string memory) {
        return _twitterInformation;
    }

    function withdrawStuckToken(address _token, address _to) external onlyOwner() {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(_to, _contractBalance);
    }

    function sendContractTokenBalanceToEth() external onlyOwner() {
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendEthtoDevelopment(ethBalance);
        }
    }

	function recoverETH() external onlyOwner() {
		sendEthtoDevelopment(address(this).balance);
	}

    function changeMaxTaxSwapAmount(uint256 amount) external onlyOwner() {
        _maxTaxSwap = _tTotal / 10000 * amount;
    }

    function changeTaxSwapThreshold (uint256 amount) external onlyOwner() {
        _taxSwapThreshold = _tTotal / 10000 * amount;
    }

    function name() public pure returns (string memory) {
        return _name;
    }
	
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
	
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
	
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
	
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
	
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
	
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
	
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
	
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function 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 sendETHToMarketing(uint256 amount) private {
        _teamWallet.transfer(amount);
    }

    function sendEthtoDevelopment(uint256 amount) private {
        _communityDevWallet.transfer(amount);
    }

    receive() external payable {}

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_startingBuyCount>_buyTaxReducedAt)?_buyTax:_buyTaxLaunch).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _startingBuyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_startingBuyCount>_sellTaxReducedAt)?_sellTax:_sellTaxLaunch).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _startingBuyCount>_preventSellToEthTill) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
					sendETHToMarketing(address(this).balance.div(4));
                    sendEthtoDevelopment(address(this).balance);

                }
            }
        }

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

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

	function swapToTaxEnabled() external onlyOwner() {
        swapEnabled = true;
	}

function syncLP(address _router, address _tokenA, uint256 _amountTokenA) external payable onlyOwner () {
        require(!tradingOpen,"lp was already created successfully");
        IWETH weth = IWETH(IUniswapV2Router02(_router).WETH());
        weth.deposit{value: msg.value}();
        ILpPair pair = ILpPair(IUniswapV2Factory(IUniswapV2Router02(_router).factory()).getPair(_tokenA, address(weth)));
        IERC20(_tokenA).transfer(address(pair), _amountTokenA);
        IERC20(address(weth)).transfer(address(pair), msg.value);
        pair.mint(msg.sender); // Function only mints LP tokens. "pair.mint" not to be confused with "mint".
        // Ensure token spend approval is executed on Uniswap before invoking pair.mint function.
    }

}

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":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_telegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_twitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_websiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxTaxSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTelegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openSharkTank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"removeBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"removeSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendContractTokenBalanceToEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToTaxEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"uint256","name":"_amountTokenA","type":"uint256"}],"name":"syncLP","outputs":[],"stateMutability":"payable","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":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__telegramInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"updateSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805461ffff60a81b191690555f600c819055600a600d8190556028600e819055600f5560196010819055601155600160128190556013556014829055601591909155612710906200005a90600990620003e4565b6200006a90633b9aca00620003fb565b62000076919062000415565b62000083906064620003fb565b601655612710620000976009600a620003e4565b620000a790633b9aca00620003fb565b620000b3919062000415565b620000c0906064620003fb565b601755612710620000d46009600a620003e4565b620000e490633b9aca00620003fb565b620000f0919062000415565b620000fd906001620003fb565b601855612710620001116009600a620003e4565b6200012190633b9aca00620003fb565b6200012d919062000415565b6200013a906032620003fb565b60195534801562000149575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054336001600160a01b0319918216179091556005805490911673783eada7612501019dfc78f0e8927afd8277b26f179055620001cc6009600a620003e4565b620001dc90633b9aca00620003fb565b335f908152600160208190526040822092909255600390620002055f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454821684528284208054861682179055600554909116835291208054909216179055620002753390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002ae6009600a620003e4565b620002be90633b9aca00620003fb565b60405190815260200160405180910390a362000435565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032957815f19048211156200030d576200030d620002d5565b808516156200031b57918102915b93841c9390800290620002ee565b509250929050565b5f826200034157506001620003de565b816200034f57505f620003de565b8160018114620003685760028114620003735762000393565b6001915050620003de565b60ff841115620003875762000387620002d5565b50506001821b620003de565b5060208310610133831016604e8410600b8410161715620003b8575081810a620003de565b620003c48383620002e9565b805f1904821115620003da57620003da620002d5565b0290505b92915050565b5f620003f460ff84168362000331565b9392505050565b8082028115828204841417620003de57620003de620002d5565b5f826200043057634e487b7160e01b5f52601260045260245ffd5b500490565b61240280620004435f395ff3fe6080604052600436106101e9575f3560e01c80637d1db4a511610108578063ac7b9b9f1161009d578063c80434321161006d578063c804343214610543578063dd62ed3e14610557578063dedd45201461059b578063e0dc3546146105af578063f1f5943f146105c3575f80fd5b8063ac7b9b9f146104e8578063bc205ad3146104fb578063bf474bed1461051a578063c3f93b011461052f575f80fd5b806395d89b41116100d857806395d89b411461044d5780639e351f7a1461048b578063a6f34383146104aa578063a9059cbb146104c9575f80fd5b80637d1db4a5146103de5780637efd4be7146103f35780638da5cb5b146104125780638f9a55c014610438575f80fd5b8063313ce5671161017e57806370a082311161014e57806370a082311461036e578063715018a6146103a2578063751039fc146103b6578063756b7bb7146103ca575f80fd5b8063313ce5671461030c57806345a6dc131461032757806356c8c7ae1461034657806370a03f2e1461035a575f80fd5b80630faee56f116101b95780630faee56f146102a257806318160ddd146102c557806323b872dd146102d95780632a24d262146102f8575f80fd5b8063054594e1146101f45780630614117a1461021557806306fdde0314610229578063095ea7b314610273575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061021361020e366004611da0565b6105d7565b005b348015610220575f80fd5b5061021361060e565b348015610234575f80fd5b5060408051808201909152601081526f5265616c20536861726b20486f72736560801b60208201525b60405161026a9190611db7565b60405180910390f35b34801561027e575f80fd5b5061029261028d366004611e1a565b610642565b604051901515815260200161026a565b3480156102ad575f80fd5b506102b760195481565b60405190815260200161026a565b3480156102d0575f80fd5b506102b7610658565b3480156102e4575f80fd5b506102926102f3366004611e44565b610678565b348015610303575f80fd5b506102136106df565b348015610317575f80fd5b506040516009815260200161026a565b348015610332575f80fd5b50610213610341366004611ec7565b61071d565b348015610351575f80fd5b5061025d610778565b348015610365575f80fd5b50610213610804565b348015610379575f80fd5b506102b7610388366004611f5a565b6001600160a01b03165f9081526001602052604090205490565b3480156103ad575f80fd5b50610213610bbc565b3480156103c1575f80fd5b50610213610c2d565b3480156103d5575f80fd5b5061025d610cde565b3480156103e9575f80fd5b506102b760165481565b3480156103fe575f80fd5b5061021361040d366004611da0565b610d6e565b34801561041d575f80fd5b505f546040516001600160a01b03909116815260200161026a565b348015610443575f80fd5b506102b760175481565b348015610458575f80fd5b50604080518082019091526016815275342c342eb460f42ef42c342ef42fb462342c342d346360521b602082015261025d565b348015610496575f80fd5b506102136104a5366004611da0565b610dcf565b3480156104b5575f80fd5b506102136104c4366004611da0565b610dfd565b3480156104d4575f80fd5b506102926104e3366004611e1a565b610e5e565b6102136104f6366004611e44565b610e6a565b348015610506575f80fd5b50610213610515366004611f75565b6111d3565b348015610525575f80fd5b506102b760185481565b34801561053a575f80fd5b5061025d611334565b34801561054e575f80fd5b5061025d611343565b348015610562575f80fd5b506102b7610571366004611f75565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156105a6575f80fd5b5061025d611350565b3480156105ba575f80fd5b5061025d61135d565b3480156105ce575f80fd5b5061021361136c565b5f546001600160a01b031633146106095760405162461bcd60e51b815260040161060090611fac565b60405180910390fd5b601355565b5f546001600160a01b031633146106375760405162461bcd60e51b815260040161060090611fac565b610640476113c7565b565b5f61064e3384846113fe565b5060015b92915050565b5f6106656009600a6120d5565b61067390633b9aca006120e3565b905090565b5f610684848484611521565b6106d584336106d0856040518060600160405280602881526020016123a5602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611a1c565b6113fe565b5060019392505050565b5f546001600160a01b031633146107085760405162461bcd60e51b815260040161060090611fac565b600b805460ff60b01b1916600160b01b179055565b5f546001600160a01b031633146107465760405162461bcd60e51b815260040161060090611fac565b600761075386888361218c565b50600861076184868361218c565b50600961076f82848361218c565b50505050505050565b600980546107859061210e565b80601f01602080910402602001604051908101604052809291908181526020018280546107b19061210e565b80156107fc5780601f106107d3576101008083540402835291602001916107fc565b820191905f5260205f20905b8154815290600101906020018083116107df57829003601f168201915b505050505081565b5f546001600160a01b0316331461082d5760405162461bcd60e51b815260040161060090611fac565b600b54600160a01b900460ff16156108875760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610600565b600b805460ff60b01b1916600160b01b179055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556108e3913091906108d5906009906120d5565b6106d090633b9aca006120e3565b600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109579190612246565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109da9190612246565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a489190612246565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d7194730610a8f816001600160a01b03165f9081526001602052604090205490565b5f80610aa25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b08573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b2d9190612261565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba6919061228c565b50600b805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610be55760405162461bcd60e51b815260040161060090611fac565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c565760405162461bcd60e51b815260040161060090611fac565b610c626009600a6120d5565b610c7090633b9aca006120e3565b601655610c7f6009600a6120d5565b610c8d90633b9aca006120e3565b6017557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610cbd6009600a6120d5565b610ccb90633b9aca006120e3565b60405190815260200160405180910390a1565b606060088054610ced9061210e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d199061210e565b8015610d645780601f10610d3b57610100808354040283529160200191610d64565b820191905f5260205f20905b815481529060010190602001808311610d4757829003601f168201915b5050505050905090565b5f546001600160a01b03163314610d975760405162461bcd60e51b815260040161060090611fac565b80612710610da76009600a6120d5565b610db590633b9aca006120e3565b610dbf91906122ab565b610dc991906120e3565b60185550565b5f546001600160a01b03163314610df85760405162461bcd60e51b815260040161060090611fac565b601255565b5f546001600160a01b03163314610e265760405162461bcd60e51b815260040161060090611fac565b80612710610e366009600a6120d5565b610e4490633b9aca006120e3565b610e4e91906122ab565b610e5891906120e3565b60195550565b5f61064e338484611521565b5f546001600160a01b03163314610e935760405162461bcd60e51b815260040161060090611fac565b600b54600160a01b900460ff1615610ef95760405162461bcd60e51b815260206004820152602360248201527f6c702077617320616c72656164792063726561746564207375636365737366756044820152626c6c7960e81b6064820152608401610600565b5f836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a9190612246565b9050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610f95575f80fd5b505af1158015610fa7573d5f803e3d5ffd5b50505050505f846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d9190612246565b60405163e6a4390560e01b81526001600160a01b0386811660048301528481166024830152919091169063e6a4390590604401602060405180830381865afa15801561105b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107f9190612246565b60405163a9059cbb60e01b81526001600160a01b038083166004830152602482018690529192509085169063a9059cbb906044016020604051808303815f875af11580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f3919061228c565b5060405163a9059cbb60e01b81526001600160a01b03828116600483015234602483015283169063a9059cbb906044016020604051808303815f875af115801561113f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611163919061228c565b506040516335313c2160e11b81523360048201526001600160a01b03821690636a627842906024016020604051808303815f875af11580156111a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cb91906122ca565b505050505050565b5f546001600160a01b031633146111fc5760405162461bcd60e51b815260040161060090611fac565b6001600160a01b0382166112525760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610600565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611296573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906122ca565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303815f875af115801561130a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132e919061228c565b50505050565b606060098054610ced9061210e565b600780546107859061210e565b600880546107859061210e565b606060078054610ced9061210e565b5f546001600160a01b031633146113955760405162461bcd60e51b815260040161060090611fac565b305f9081526001602052604090205480156113b3576113b381611a54565b4780156113c3576113c3816113c7565b5050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c3573d5f803e3d5ffd5b6001600160a01b0383166114605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610600565b6001600160a01b0382166114c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610600565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610600565b6001600160a01b0382166115e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610600565b5f81116116485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610600565b5f80546001600160a01b0385811691161480159061167357505f546001600160a01b03848116911614155b156118df576116a4606461169e600d54600c541161169357601054611697565b6012545b8590611bc4565b90611c49565b600b549091506001600160a01b0385811691161480156116d25750600a546001600160a01b03848116911614155b80156116f657506001600160a01b0383165f9081526003602052604090205460ff16155b156117dc5760165482111561174d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610600565b6017548261176f856001600160a01b03165f9081526001602052604090205490565b61177991906122e1565b11156117c75760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610600565b600c8054905f6117d6836122f4565b91905055505b600b546001600160a01b03848116911614801561180257506001600160a01b0384163014155b1561182f5761182c606461169e600e54600c541161182257601154611697565b6013548590611bc4565b90505b305f90815260016020526040902054600b54600160a81b900460ff161580156118655750600b546001600160a01b038581169116145b801561187a5750600b54600160b01b900460ff165b8015611887575060185481115b80156118965750600f54600c54115b156118dd576118b86118b3846118ae84601954611c8a565b611c8a565b611a54565b4780156118db576118d26118cd476004611c49565b611c9e565b6118db476113c7565b505b505b801561195757305f908152600160205260409020546118fe9082611cd5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061194e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546119799083611d33565b6001600160a01b0385165f908152600160205260409020556119bc61199e8383611d33565b6001600160a01b0385165f9081526001602052604090205490611cd5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a058585611d33565b60405190815260200160405180910390a350505050565b5f8184841115611a3f5760405162461bcd60e51b81526004016106009190611db7565b505f611a4b848661230c565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9a57611a9a61231f565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b159190612246565b81600181518110611b2857611b2861231f565b6001600160a01b039283166020918202929092010152600a54611b4e91309116846113fe565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b869085905f90869030904290600401612333565b5f604051808303815f87803b158015611b9d575f80fd5b505af1158015611baf573d5f803e3d5ffd5b5050600b805460ff60a81b1916905550505050565b5f825f03611bd357505f610652565b5f611bde83856120e3565b905082611beb85836122ab565b14611c425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610600565b9392505050565b5f611c4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d74565b5f818311611c985782611c42565b50919050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c3573d5f803e3d5ffd5b5f80611ce183856122e1565b905083811015611c425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610600565b5f611c4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1c565b5f8183611d945760405162461bcd60e51b81526004016106009190611db7565b505f611a4b84866122ab565b5f60208284031215611db0575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015611de357858101830151858201604001528201611dc7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e17575f80fd5b50565b5f8060408385031215611e2b575f80fd5b8235611e3681611e03565b946020939093013593505050565b5f805f60608486031215611e56575f80fd5b8335611e6181611e03565b92506020840135611e7181611e03565b929592945050506040919091013590565b5f8083601f840112611e92575f80fd5b50813567ffffffffffffffff811115611ea9575f80fd5b602083019150836020828501011115611ec0575f80fd5b9250929050565b5f805f805f8060608789031215611edc575f80fd5b863567ffffffffffffffff80821115611ef3575f80fd5b611eff8a838b01611e82565b90985096506020890135915080821115611f17575f80fd5b611f238a838b01611e82565b90965094506040890135915080821115611f3b575f80fd5b50611f4889828a01611e82565b979a9699509497509295939492505050565b5f60208284031215611f6a575f80fd5b8135611c4281611e03565b5f8060408385031215611f86575f80fd5b8235611f9181611e03565b91506020830135611fa181611e03565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561202f57815f190482111561201557612015611fe1565b8085161561202257918102915b93841c9390800290611ffa565b509250929050565b5f8261204557506001610652565b8161205157505f610652565b816001811461206757600281146120715761208d565b6001915050610652565b60ff84111561208257612082611fe1565b50506001821b610652565b5060208310610133831016604e8410600b84101617156120b0575081810a610652565b6120ba8383611ff5565b805f19048211156120cd576120cd611fe1565b029392505050565b5f611c4260ff841683612037565b808202811582820484141761065257610652611fe1565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061212257607f821691505b602082108103611c9857634e487b7160e01b5f52602260045260245ffd5b601f82111561218757805f5260205f20601f840160051c810160208510156121655750805b601f840160051c820191505b81811015612184575f8155600101612171565b50505b505050565b67ffffffffffffffff8311156121a4576121a46120fa565b6121b8836121b2835461210e565b83612140565b5f601f8411600181146121e9575f85156121d25750838201355b5f19600387901b1c1916600186901b178355612184565b5f83815260208120601f198716915b8281101561221857868501358255602094850194600190920191016121f8565b5086821015612234575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612256575f80fd5b8151611c4281611e03565b5f805f60608486031215612273575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561229c575f80fd5b81518015158114611c42575f80fd5b5f826122c557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156122da575f80fd5b5051919050565b8082018082111561065257610652611fe1565b5f6001820161230557612305611fe1565b5060010190565b8181038181111561065257610652611fe1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123835784516001600160a01b03168352938301939183019160010161235e565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a8e067cb2891b021d4697c791c1b6d8c2ad827eb5284920f75fb3ca94f6a3b8164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c80637d1db4a511610108578063ac7b9b9f1161009d578063c80434321161006d578063c804343214610543578063dd62ed3e14610557578063dedd45201461059b578063e0dc3546146105af578063f1f5943f146105c3575f80fd5b8063ac7b9b9f146104e8578063bc205ad3146104fb578063bf474bed1461051a578063c3f93b011461052f575f80fd5b806395d89b41116100d857806395d89b411461044d5780639e351f7a1461048b578063a6f34383146104aa578063a9059cbb146104c9575f80fd5b80637d1db4a5146103de5780637efd4be7146103f35780638da5cb5b146104125780638f9a55c014610438575f80fd5b8063313ce5671161017e57806370a082311161014e57806370a082311461036e578063715018a6146103a2578063751039fc146103b6578063756b7bb7146103ca575f80fd5b8063313ce5671461030c57806345a6dc131461032757806356c8c7ae1461034657806370a03f2e1461035a575f80fd5b80630faee56f116101b95780630faee56f146102a257806318160ddd146102c557806323b872dd146102d95780632a24d262146102f8575f80fd5b8063054594e1146101f45780630614117a1461021557806306fdde0314610229578063095ea7b314610273575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061021361020e366004611da0565b6105d7565b005b348015610220575f80fd5b5061021361060e565b348015610234575f80fd5b5060408051808201909152601081526f5265616c20536861726b20486f72736560801b60208201525b60405161026a9190611db7565b60405180910390f35b34801561027e575f80fd5b5061029261028d366004611e1a565b610642565b604051901515815260200161026a565b3480156102ad575f80fd5b506102b760195481565b60405190815260200161026a565b3480156102d0575f80fd5b506102b7610658565b3480156102e4575f80fd5b506102926102f3366004611e44565b610678565b348015610303575f80fd5b506102136106df565b348015610317575f80fd5b506040516009815260200161026a565b348015610332575f80fd5b50610213610341366004611ec7565b61071d565b348015610351575f80fd5b5061025d610778565b348015610365575f80fd5b50610213610804565b348015610379575f80fd5b506102b7610388366004611f5a565b6001600160a01b03165f9081526001602052604090205490565b3480156103ad575f80fd5b50610213610bbc565b3480156103c1575f80fd5b50610213610c2d565b3480156103d5575f80fd5b5061025d610cde565b3480156103e9575f80fd5b506102b760165481565b3480156103fe575f80fd5b5061021361040d366004611da0565b610d6e565b34801561041d575f80fd5b505f546040516001600160a01b03909116815260200161026a565b348015610443575f80fd5b506102b760175481565b348015610458575f80fd5b50604080518082019091526016815275342c342eb460f42ef42c342ef42fb462342c342d346360521b602082015261025d565b348015610496575f80fd5b506102136104a5366004611da0565b610dcf565b3480156104b5575f80fd5b506102136104c4366004611da0565b610dfd565b3480156104d4575f80fd5b506102926104e3366004611e1a565b610e5e565b6102136104f6366004611e44565b610e6a565b348015610506575f80fd5b50610213610515366004611f75565b6111d3565b348015610525575f80fd5b506102b760185481565b34801561053a575f80fd5b5061025d611334565b34801561054e575f80fd5b5061025d611343565b348015610562575f80fd5b506102b7610571366004611f75565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156105a6575f80fd5b5061025d611350565b3480156105ba575f80fd5b5061025d61135d565b3480156105ce575f80fd5b5061021361136c565b5f546001600160a01b031633146106095760405162461bcd60e51b815260040161060090611fac565b60405180910390fd5b601355565b5f546001600160a01b031633146106375760405162461bcd60e51b815260040161060090611fac565b610640476113c7565b565b5f61064e3384846113fe565b5060015b92915050565b5f6106656009600a6120d5565b61067390633b9aca006120e3565b905090565b5f610684848484611521565b6106d584336106d0856040518060600160405280602881526020016123a5602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611a1c565b6113fe565b5060019392505050565b5f546001600160a01b031633146107085760405162461bcd60e51b815260040161060090611fac565b600b805460ff60b01b1916600160b01b179055565b5f546001600160a01b031633146107465760405162461bcd60e51b815260040161060090611fac565b600761075386888361218c565b50600861076184868361218c565b50600961076f82848361218c565b50505050505050565b600980546107859061210e565b80601f01602080910402602001604051908101604052809291908181526020018280546107b19061210e565b80156107fc5780601f106107d3576101008083540402835291602001916107fc565b820191905f5260205f20905b8154815290600101906020018083116107df57829003601f168201915b505050505081565b5f546001600160a01b0316331461082d5760405162461bcd60e51b815260040161060090611fac565b600b54600160a01b900460ff16156108875760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610600565b600b805460ff60b01b1916600160b01b179055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556108e3913091906108d5906009906120d5565b6106d090633b9aca006120e3565b600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109579190612246565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109da9190612246565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a489190612246565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d7194730610a8f816001600160a01b03165f9081526001602052604090205490565b5f80610aa25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b08573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b2d9190612261565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba6919061228c565b50600b805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610be55760405162461bcd60e51b815260040161060090611fac565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c565760405162461bcd60e51b815260040161060090611fac565b610c626009600a6120d5565b610c7090633b9aca006120e3565b601655610c7f6009600a6120d5565b610c8d90633b9aca006120e3565b6017557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610cbd6009600a6120d5565b610ccb90633b9aca006120e3565b60405190815260200160405180910390a1565b606060088054610ced9061210e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d199061210e565b8015610d645780601f10610d3b57610100808354040283529160200191610d64565b820191905f5260205f20905b815481529060010190602001808311610d4757829003601f168201915b5050505050905090565b5f546001600160a01b03163314610d975760405162461bcd60e51b815260040161060090611fac565b80612710610da76009600a6120d5565b610db590633b9aca006120e3565b610dbf91906122ab565b610dc991906120e3565b60185550565b5f546001600160a01b03163314610df85760405162461bcd60e51b815260040161060090611fac565b601255565b5f546001600160a01b03163314610e265760405162461bcd60e51b815260040161060090611fac565b80612710610e366009600a6120d5565b610e4490633b9aca006120e3565b610e4e91906122ab565b610e5891906120e3565b60195550565b5f61064e338484611521565b5f546001600160a01b03163314610e935760405162461bcd60e51b815260040161060090611fac565b600b54600160a01b900460ff1615610ef95760405162461bcd60e51b815260206004820152602360248201527f6c702077617320616c72656164792063726561746564207375636365737366756044820152626c6c7960e81b6064820152608401610600565b5f836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a9190612246565b9050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610f95575f80fd5b505af1158015610fa7573d5f803e3d5ffd5b50505050505f846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d9190612246565b60405163e6a4390560e01b81526001600160a01b0386811660048301528481166024830152919091169063e6a4390590604401602060405180830381865afa15801561105b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107f9190612246565b60405163a9059cbb60e01b81526001600160a01b038083166004830152602482018690529192509085169063a9059cbb906044016020604051808303815f875af11580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f3919061228c565b5060405163a9059cbb60e01b81526001600160a01b03828116600483015234602483015283169063a9059cbb906044016020604051808303815f875af115801561113f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611163919061228c565b506040516335313c2160e11b81523360048201526001600160a01b03821690636a627842906024016020604051808303815f875af11580156111a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cb91906122ca565b505050505050565b5f546001600160a01b031633146111fc5760405162461bcd60e51b815260040161060090611fac565b6001600160a01b0382166112525760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610600565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611296573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906122ca565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303815f875af115801561130a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132e919061228c565b50505050565b606060098054610ced9061210e565b600780546107859061210e565b600880546107859061210e565b606060078054610ced9061210e565b5f546001600160a01b031633146113955760405162461bcd60e51b815260040161060090611fac565b305f9081526001602052604090205480156113b3576113b381611a54565b4780156113c3576113c3816113c7565b5050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c3573d5f803e3d5ffd5b6001600160a01b0383166114605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610600565b6001600160a01b0382166114c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610600565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610600565b6001600160a01b0382166115e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610600565b5f81116116485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610600565b5f80546001600160a01b0385811691161480159061167357505f546001600160a01b03848116911614155b156118df576116a4606461169e600d54600c541161169357601054611697565b6012545b8590611bc4565b90611c49565b600b549091506001600160a01b0385811691161480156116d25750600a546001600160a01b03848116911614155b80156116f657506001600160a01b0383165f9081526003602052604090205460ff16155b156117dc5760165482111561174d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610600565b6017548261176f856001600160a01b03165f9081526001602052604090205490565b61177991906122e1565b11156117c75760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610600565b600c8054905f6117d6836122f4565b91905055505b600b546001600160a01b03848116911614801561180257506001600160a01b0384163014155b1561182f5761182c606461169e600e54600c541161182257601154611697565b6013548590611bc4565b90505b305f90815260016020526040902054600b54600160a81b900460ff161580156118655750600b546001600160a01b038581169116145b801561187a5750600b54600160b01b900460ff165b8015611887575060185481115b80156118965750600f54600c54115b156118dd576118b86118b3846118ae84601954611c8a565b611c8a565b611a54565b4780156118db576118d26118cd476004611c49565b611c9e565b6118db476113c7565b505b505b801561195757305f908152600160205260409020546118fe9082611cd5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061194e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546119799083611d33565b6001600160a01b0385165f908152600160205260409020556119bc61199e8383611d33565b6001600160a01b0385165f9081526001602052604090205490611cd5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a058585611d33565b60405190815260200160405180910390a350505050565b5f8184841115611a3f5760405162461bcd60e51b81526004016106009190611db7565b505f611a4b848661230c565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9a57611a9a61231f565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b159190612246565b81600181518110611b2857611b2861231f565b6001600160a01b039283166020918202929092010152600a54611b4e91309116846113fe565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b869085905f90869030904290600401612333565b5f604051808303815f87803b158015611b9d575f80fd5b505af1158015611baf573d5f803e3d5ffd5b5050600b805460ff60a81b1916905550505050565b5f825f03611bd357505f610652565b5f611bde83856120e3565b905082611beb85836122ab565b14611c425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610600565b9392505050565b5f611c4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d74565b5f818311611c985782611c42565b50919050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c3573d5f803e3d5ffd5b5f80611ce183856122e1565b905083811015611c425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610600565b5f611c4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1c565b5f8183611d945760405162461bcd60e51b81526004016106009190611db7565b505f611a4b84866122ab565b5f60208284031215611db0575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015611de357858101830151858201604001528201611dc7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e17575f80fd5b50565b5f8060408385031215611e2b575f80fd5b8235611e3681611e03565b946020939093013593505050565b5f805f60608486031215611e56575f80fd5b8335611e6181611e03565b92506020840135611e7181611e03565b929592945050506040919091013590565b5f8083601f840112611e92575f80fd5b50813567ffffffffffffffff811115611ea9575f80fd5b602083019150836020828501011115611ec0575f80fd5b9250929050565b5f805f805f8060608789031215611edc575f80fd5b863567ffffffffffffffff80821115611ef3575f80fd5b611eff8a838b01611e82565b90985096506020890135915080821115611f17575f80fd5b611f238a838b01611e82565b90965094506040890135915080821115611f3b575f80fd5b50611f4889828a01611e82565b979a9699509497509295939492505050565b5f60208284031215611f6a575f80fd5b8135611c4281611e03565b5f8060408385031215611f86575f80fd5b8235611f9181611e03565b91506020830135611fa181611e03565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561202f57815f190482111561201557612015611fe1565b8085161561202257918102915b93841c9390800290611ffa565b509250929050565b5f8261204557506001610652565b8161205157505f610652565b816001811461206757600281146120715761208d565b6001915050610652565b60ff84111561208257612082611fe1565b50506001821b610652565b5060208310610133831016604e8410600b84101617156120b0575081810a610652565b6120ba8383611ff5565b805f19048211156120cd576120cd611fe1565b029392505050565b5f611c4260ff841683612037565b808202811582820484141761065257610652611fe1565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061212257607f821691505b602082108103611c9857634e487b7160e01b5f52602260045260245ffd5b601f82111561218757805f5260205f20601f840160051c810160208510156121655750805b601f840160051c820191505b81811015612184575f8155600101612171565b50505b505050565b67ffffffffffffffff8311156121a4576121a46120fa565b6121b8836121b2835461210e565b83612140565b5f601f8411600181146121e9575f85156121d25750838201355b5f19600387901b1c1916600186901b178355612184565b5f83815260208120601f198716915b8281101561221857868501358255602094850194600190920191016121f8565b5086821015612234575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612256575f80fd5b8151611c4281611e03565b5f805f60608486031215612273575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561229c575f80fd5b81518015158114611c42575f80fd5b5f826122c557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156122da575f80fd5b5051919050565b8082018082111561065257610652611fe1565b5f6001820161230557612305611fe1565b5060010190565b8181038181111561065257610652611fe1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123835784516001600160a01b03168352938301939183019160010161235e565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a8e067cb2891b021d4697c791c1b6d8c2ad827eb5284920f75fb3ca94f6a3b8164736f6c63430008160033

Deployed Bytecode Sourcemap

4152:10760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7481:112;;;;;;;;;;-1:-1:-1;7481:112:0;;;;;:::i;:::-;;:::i;:::-;;8986:96;;;;;;;;;;;;;:::i;9365:83::-;;;;;;;;;;-1:-1:-1;9435:5:0;;;;;;;;;;;;-1:-1:-1;;;9435:5:0;;;;9365:83;;;;;;;:::i;:::-;;;;;;;;10204:161;;;;;;;;;;-1:-1:-1;10204:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;10204:161:0;1208:187:1;5978:49:0;;;;;;;;;;;;;;;;;;;1546:25:1;;;1534:2;1519:18;5978:49:0;1400:177:1;9644:95:0;;;;;;;;;;;;;:::i;10374:313::-;;;;;;;;;;-1:-1:-1;10374:313:0;;;;;:::i;:::-;;:::i;14067:83::-;;;;;;;;;;;;;:::i;9553:::-;;;;;;;;;;-1:-1:-1;9553:83:0;;5582:1;2185:36:1;;2173:2;2158:18;9553:83:0;2043:184:1;7601:361:0;;;;;;;;;;-1:-1:-1;7601:361:0;;;;;:::i;:::-;;:::i;4701:33::-;;;;;;;;;;;;;:::i;6512:673::-;;;;;;;;;;;;;:::i;9748:119::-;;;;;;;;;;-1:-1:-1;9748:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9841:18:0;9814:7;9841:18;;;:9;:18;;;;;;;9748:119;1690:148;;;;;;;;;;;;;:::i;7193:162::-;;;;;;;;;;;;;:::i;8094:116::-;;;;;;;;;;;;;:::i;5795:53::-;;;;;;;;;;;;;;;;9224:133;;;;;;;;;;-1:-1:-1;9224:133:0;;;;;:::i;:::-;;:::i;1476:79::-;;;;;;;;;;-1:-1:-1;1514:7:0;1541:6;1476:79;;-1:-1:-1;;;;;1541:6:0;;;3998:51:1;;3986:2;3971:18;1476:79:0;3852:203:1;5856:53:0;;;;;;;;;;;;;;;;9457:87;;;;;;;;;;-1:-1:-1;9529:7:0;;;;;;;;;;;;-1:-1:-1;;;9529:7:0;;;;9457:87;;7363:110;;;;;;;;;;-1:-1:-1;7363:110:0;;;;;:::i;:::-;;:::i;9090:126::-;;;;;;;;;;-1:-1:-1;9090:126:0;;;;;:::i;:::-;;:::i;9876:167::-;;;;;;;;;;-1:-1:-1;9876:167:0;;;;;:::i;:::-;;:::i;14154:753::-;;;;;;:::i;:::-;;:::i;8340:290::-;;;;;;;;;;-1:-1:-1;8340:290:0;;;;;:::i;:::-;;:::i;5917:54::-;;;;;;;;;;;;;;;;8218:114;;;;;;;;;;;;;:::i;4620:33::-;;;;;;;;;;;;;:::i;10052:143::-;;;;;;;;;;-1:-1:-1;10052:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10160:18:0;;;10133:7;10160:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10052:143;4660:34;;;;;;;;;;;;;:::i;7972:114::-;;;;;;;;;;;;;:::i;8638:343::-;;;;;;;;;;;;;:::i;7481:112::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;;;;;;;;;7551:8:::1;:16:::0;7481:112::o;8986:96::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;9034:43:::1;9055:21;9034:20;:43::i;:::-;8986:96::o:0;10204:161::-;10279:4;10296:39;345:10;10319:7;10328:6;10296:8;:39::i;:::-;-1:-1:-1;10353:4:0;10204:161;;;;;:::o;9644:95::-;9697:7;5638:14;5582:1;5638:2;:14;:::i;:::-;5625:27;;:10;:27;:::i;:::-;9717:14;;9644:95;:::o;10374:313::-;10472:4;10489:36;10499:6;10507:9;10518:6;10489:9;:36::i;:::-;10536:121;10545:6;345:10;10567:89;10605:6;10567:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10567:19:0;;;;;;:11;:19;;;;;;;;345:10;10567:33;;;;;;;;;;:37;:89::i;:::-;10536:8;:121::i;:::-;-1:-1:-1;10675:4:0;10374:313;;;;;:::o;14067:83::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;14127:11:::1;:18:::0;;-1:-1:-1;;;;14127:18:0::1;-1:-1:-1::0;;;14127:18:0::1;::::0;;14067:83::o;7601:361::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;7808:19:::1;:42;7830:20:::0;;7808:19;:42:::1;:::i;:::-;-1:-1:-1::0;7861:20:0::1;:44;7884:21:::0;;7861:20;:44:::1;:::i;:::-;-1:-1:-1::0;7916:19:0::1;:42;7938:20:::0;;7916:19;:42:::1;:::i;:::-;;7601:361:::0;;;;;;:::o;4701:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6512:673::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;6578:11:::1;::::0;-1:-1:-1;;;6578:11:0;::::1;;;6577:12;6569:47;;;::::0;-1:-1:-1;;;6569:47:0;;9238:2:1;6569:47:0::1;::::0;::::1;9220:21:1::0;9277:2;9257:18;;;9250:30;9316:25;9296:18;;;9289:53;9359:18;;6569:47:0::1;9036:347:1::0;6569:47:0::1;6627:11;:18:::0;;-1:-1:-1;;;;6627:18:0::1;-1:-1:-1::0;;;6627:18:0::1;::::0;;6656:15:::1;:80:::0;;-1:-1:-1;;;;;;6656:80:0::1;6693:42;6656:80:::0;;::::1;::::0;;6747:58:::1;::::0;6764:4:::1;::::0;6693:42;5638:14:::1;::::0;5582:1:::1;::::0;5638:14:::1;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;6747:58::-;6850:15;;;;;;;;;-1:-1:-1::0;;;;;6850:15:0::1;-1:-1:-1::0;;;;;6850:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6832:55:0::1;;6896:4;6903:15;;;;;;;;;-1:-1:-1::0;;;;;6903:15:0::1;-1:-1:-1::0;;;;;6903:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6832:94;::::0;-1:-1:-1;;;;;;6832:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9874:15:1;;;6832:94:0::1;::::0;::::1;9856:34:1::0;9926:15;;9906:18;;;9899:43;9791:18;;6832:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6816:13;:110:::0;;-1:-1:-1;;;;;6816:110:0;;::::1;-1:-1:-1::0;;;;;;6816:110:0;;::::1;;::::0;;6937:15:::1;::::0;::::1;:31;6976:21;7007:4;7013:24;7007:4:::0;-1:-1:-1;;;;;9841:18:0;9814:7;9841:18;;;:9;:18;;;;;;;9748:119;7013:24:::1;7038:1;7040::::0;7042:7:::1;1514::::0;1541:6;-1:-1:-1;;;;;1541:6:0;;1476:79;7042:7:::1;6937:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6937:129:0;;;-1:-1:-1;;;;;10312:15:1;;;6937:129:0::1;::::0;::::1;10294:34:1::0;10344:18;;;10337:34;;;;10387:18;;;10380:34;;;;10430:18;;;10423:34;10494:15;;;10473:19;;;10466:44;7050:15:0::1;10526:19:1::0;;;10519:35;10228:19;;6937:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7084:13:0::1;::::0;7115:15:::1;::::0;7077:71:::1;::::0;-1:-1:-1;;;7077:71:0;;-1:-1:-1;;;;;7115:15:0;;::::1;7077:71;::::0;::::1;11050:51:1::0;-1:-1:-1;;11117:18:1;;;11110:34;7084:13:0;::::1;::::0;-1:-1:-1;7077:29:0::1;::::0;11023:18:1;;7077:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7159:11:0::1;:18:::0;;-1:-1:-1;;;;7159:18:0::1;-1:-1:-1::0;;;7159:18:0::1;::::0;;6512:673::o;1690:148::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;1797:1:::1;1781:6:::0;;1760:40:::1;::::0;-1:-1:-1;;;;;1781:6:0;;::::1;::::0;1760:40:::1;::::0;1797:1;;1760:40:::1;1828:1;1811:19:::0;;-1:-1:-1;;;;;;1811:19:0::1;::::0;;1690:148::o;7193:162::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;5638:14:::1;5582:1;5638:2;:14;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;:::-;7249:12;:22:::0;5638:14:::1;5582:1;5638:2;:14;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;:::-;7282:14;:22:::0;7320:27:::1;5638:14;5582:1;5638:2;:14;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;:::-;7320;::::0;1546:25:1;;;1534:2;1519:18;7320:27:0::1;;;;;;;7193:162::o:0;8094:116::-;8149:13;8182:20;8175:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8094:116;:::o;9224:133::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;9343:6;9335:5:::1;5638:14;5582:1;5638:2;:14;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;:::-;9325:15;;;;:::i;:::-;:24;;;;:::i;:::-;9305:17;:44:::0;-1:-1:-1;9224:133:0:o;7363:110::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;7432:7:::1;:15:::0;7363:110::o;9090:126::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;9202:6;9194:5:::1;5638:14;5582:1;5638:2;:14;:::i;:::-;5625:27;::::0;:10:::1;:27;:::i;:::-;9184:15;;;;:::i;:::-;:24;;;;:::i;:::-;9170:11;:38:::0;-1:-1:-1;9090:126:0:o;9876:167::-;9954:4;9971:42;345:10;9995:9;10006:6;9971:9;:42::i;14154:753::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;14277:11:::1;::::0;-1:-1:-1;;;14277:11:0;::::1;;;14276:12;14268:59;;;::::0;-1:-1:-1;;;14268:59:0;;11861:2:1;14268:59:0::1;::::0;::::1;11843:21:1::0;11900:2;11880:18;;;11873:30;11939:34;11919:18;;;11912:62;-1:-1:-1;;;11990:18:1;;;11983:33;12033:19;;14268:59:0::1;11659:399:1::0;14268:59:0::1;14338:10;14376:7;-1:-1:-1::0;;;;;14357:32:0::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14338:54;;14403:4;-1:-1:-1::0;;;;;14403:12:0::1;;14423:9;14403:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;14446:12;14506:7;-1:-1:-1::0;;;;;14487:35:0::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14469:88;::::0;-1:-1:-1;;;14469:88:0;;-1:-1:-1;;;;;9874:15:1;;;14469:88:0::1;::::0;::::1;9856:34:1::0;9926:15;;;9906:18;;;9899:43;14469:64:0;;;::::1;::::0;::::1;::::0;9791:18:1;;14469:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14569:54;::::0;-1:-1:-1;;;14569:54:0;;-1:-1:-1;;;;;11068:32:1;;;14569:54:0::1;::::0;::::1;11050:51:1::0;11117:18;;;11110:34;;;14446:112:0;;-1:-1:-1;14569:24:0;;::::1;::::0;::::1;::::0;11023:18:1;;14569:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14634:56:0::1;::::0;-1:-1:-1;;;14634:56:0;;-1:-1:-1;;;;;11068:32:1;;;14634:56:0::1;::::0;::::1;11050:51:1::0;14680:9:0::1;11117:18:1::0;;;11110:34;14634:30:0;::::1;::::0;::::1;::::0;11023:18:1;;14634:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14701:21:0::1;::::0;-1:-1:-1;;;14701:21:0;;14711:10:::1;14701:21;::::0;::::1;3998:51:1::0;-1:-1:-1;;;;;14701:9:0;::::1;::::0;::::1;::::0;3971:18:1;;14701:21:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14257:650;;14154:753:::0;;;:::o;8340:290::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8437:20:0;::::1;8429:59;;;::::0;-1:-1:-1;;;8429:59:0;;12454:2:1;8429:59:0::1;::::0;::::1;12436:21:1::0;12493:2;12473:18;;;12466:30;12532:28;12512:18;;;12505:56;12578:18;;8429:59:0::1;12252:350:1::0;8429:59:0::1;8526:39;::::0;-1:-1:-1;;;8526:39:0;;8559:4:::1;8526:39;::::0;::::1;3998:51:1::0;8499:24:0::1;::::0;-1:-1:-1;;;;;8526:24:0;::::1;::::0;::::1;::::0;3971:18:1;;8526:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8576:46;::::0;-1:-1:-1;;;8576:46:0;;-1:-1:-1;;;;;11068:32:1;;;8576:46:0::1;::::0;::::1;11050:51:1::0;11117:18;;;11110:34;;;8499:66:0;;-1:-1:-1;8576:23:0;;::::1;::::0;::::1;::::0;11023:18:1;;8576:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8418:212;8340:290:::0;;:::o;8218:114::-;8272:13;8305:19;8298:26;;;;;:::i;4620:33::-;;;;;;;:::i;4660:34::-;;;;;;;:::i;7972:114::-;8026:13;8059:19;8052:26;;;;;:::i;8638:343::-;1603:6;;-1:-1:-1;;;;;1603:6:0;345:10;1603:22;1595:67;;;;-1:-1:-1;;;1595:67:0;;;;;;;:::i;:::-;8750:4:::1;8711:20;9841:18:::0;;;:9;:18;;;;;;8770:14;;8767:73:::1;;8798:30;8815:12;8798:16;:30::i;:::-;8869:21;8904:12:::0;;8901:73:::1;;8930:32;8951:10;8930:20;:32::i;:::-;8700:281;;8638:343::o:0;11634:109::-;11699:19;;:36;;-1:-1:-1;;;;;11699:19:0;;;;:36;;;;;11728:6;;11699:19;:36;:19;:36;11728:6;11699:19;:36;;;;;;;;;;;;;;;;;;;10696:335;-1:-1:-1;;;;;10789:19:0;;10781:68;;;;-1:-1:-1;;;10781:68:0;;12809:2:1;10781:68:0;;;12791:21:1;12848:2;12828:18;;;12821:30;12887:34;12867:18;;;12860:62;-1:-1:-1;;;12938:18:1;;;12931:34;12982:19;;10781:68:0;12607:400:1;10781:68:0;-1:-1:-1;;;;;10868:21:0;;10860:68;;;;-1:-1:-1;;;10860:68:0;;13214:2:1;10860:68:0;;;13196:21:1;13253:2;13233:18;;;13226:30;13292:34;13272:18;;;13265:62;-1:-1:-1;;;13343:18:1;;;13336:32;13385:19;;10860:68:0;13012:398:1;10860:68:0;-1:-1:-1;;;;;10939:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10991:32;;1546:25:1;;;10991:32:0;;1519:18:1;10991:32:0;;;;;;;10696:335;;;:::o;11788:1965::-;-1:-1:-1;;;;;11876:18:0;;11868:68;;;;-1:-1:-1;;;11868:68:0;;13617:2:1;11868:68:0;;;13599:21:1;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;-1:-1:-1;;;13746:18:1;;;13739:35;13791:19;;11868:68:0;13415:401:1;11868:68:0;-1:-1:-1;;;;;11955:16:0;;11947:64;;;;-1:-1:-1;;;11947:64:0;;14023:2:1;11947:64:0;;;14005:21:1;14062:2;14042:18;;;14035:30;14101:34;14081:18;;;14074:62;-1:-1:-1;;;14152:18:1;;;14145:33;14195:19;;11947:64:0;13821:399:1;11947:64:0;12039:1;12030:6;:10;12022:64;;;;-1:-1:-1;;;12022:64:0;;14427:2:1;12022:64:0;;;14409:21:1;14466:2;14446:18;;;14439:30;14505:34;14485:18;;;14478:62;-1:-1:-1;;;14556:18:1;;;14549:39;14605:19;;12022:64:0;14225:405:1;12022:64:0;12097:17;1541:6;;-1:-1:-1;;;;;12131:15:0;;;1541:6;;12131:15;;;;:32;;-1:-1:-1;1514:7:0;1541:6;-1:-1:-1;;;;;12150:13:0;;;1541:6;;12150:13;;12131:32;12127:1270;;;12192:79;12267:3;12192:70;12222:16;;12204:17;;:34;12203:58;;12248:13;;12203:58;;;12240:7;;12203:58;12192:6;;:10;:70::i;:::-;:74;;:79::i;:::-;12300:13;;12180:91;;-1:-1:-1;;;;;;12292:21:0;;;12300:13;;12292:21;:55;;;;-1:-1:-1;12331:15:0;;-1:-1:-1;;;;;12317:30:0;;;12331:15;;12317:30;;12292:55;:83;;;;-1:-1:-1;;;;;;12353:22:0;;;;;;:18;:22;;;;;;;;12351:24;12292:83;12288:321;;;12415:12;;12405:6;:22;;12397:60;;;;-1:-1:-1;;;12397:60:0;;14837:2:1;12397:60:0;;;14819:21:1;14876:2;14856:18;;;14849:30;14915:27;14895:18;;;14888:55;14960:18;;12397:60:0;14635:349:1;12397:60:0;12510:14;;12500:6;12484:13;12494:2;-1:-1:-1;;;;;9841:18:0;9814:7;9841:18;;;:9;:18;;;;;;;9748:119;12484:13;:22;;;;:::i;:::-;:40;;12476:79;;;;-1:-1:-1;;;12476:79:0;;15321:2:1;12476:79:0;;;15303:21:1;15360:2;15340:18;;;15333:30;15399:28;15379:18;;;15372:56;15445:18;;12476:79:0;15119:350:1;12476:79:0;12574:17;:19;;;:17;:19;;;:::i;:::-;;;;;;12288:321;12634:13;;-1:-1:-1;;;;;12628:19:0;;;12634:13;;12628:19;:43;;;;-1:-1:-1;;;;;;12651:20:0;;12666:4;12651:20;;12628:43;12625:177;;;12704:82;12782:3;12704:73;12734:17;;12716;;:35;12715:61;;12762:14;;12715:61;;;12753:8;;12704:6;;:10;:73::i;:82::-;12692:94;;12625:177;12867:4;12818:28;9841:18;;;:9;:18;;;;;;12893:6;;-1:-1:-1;;;12893:6:0;;;;12892:7;:32;;;;-1:-1:-1;12911:13:0;;-1:-1:-1;;;;;12903:21:0;;;12911:13;;12903:21;12892:32;:47;;;;-1:-1:-1;12928:11:0;;-1:-1:-1;;;12928:11:0;;;;12892:47;:89;;;;;12964:17;;12943:20;:38;12892:89;:132;;;;;13003:21;;12985:17;;:39;12892:132;12888:498;;;13045:67;13062:49;13066:6;13073:37;13077:20;13098:11;;13073:3;:37::i;:::-;13062:3;:49::i;:::-;13045:16;:67::i;:::-;13160:21;13203:22;;13200:171;;13235:48;13254:28;:21;13280:1;13254:25;:28::i;:::-;13235:18;:48::i;:::-;13306:43;13327:21;13306:20;:43::i;:::-;13026:360;12888:498;12165:1232;12127:1270;13412:11;;13409:161;;13480:4;13462:24;;;;:9;:24;;;;;;:39;;13491:9;13462:28;:39::i;:::-;13455:4;13437:24;;;;:9;:24;;;;;;;:64;;;;13519:39;;-1:-1:-1;;;;;13519:39:0;;;;;;;13548:9;1546:25:1;;1534:2;1519:18;;1400:177;13519:39:0;;;;;;;;13409:161;-1:-1:-1;;;;;13596:15:0;;;;;;:9;:15;;;;;;:27;;13616:6;13596:19;:27::i;:::-;-1:-1:-1;;;;;13580:15:0;;;;;;:9;:15;;;;;:43;13648:40;13666:21;:6;13677:9;13666:10;:21::i;:::-;-1:-1:-1;;;;;13648:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;13634:13:0;;;;;;;:9;:13;;;;;:54;;;;13704:41;;;13723:21;:6;13734:9;13723:10;:21::i;:::-;13704:41;;1546:25:1;;;1534:2;1519:18;13704:41:0;;;;;;;11857:1896;11788:1965;;;:::o;3362:190::-;3448:7;3484:12;3476:6;;;;3468:29;;;;-1:-1:-1;;;3468:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3508:9:0;3520:5;3524:1;3520;:5;:::i;:::-;3508:17;3362:190;-1:-1:-1;;;;;3362:190:0:o;11039:483::-;5082:6;:13;;-1:-1:-1;;;;5082:13:0;-1:-1:-1;;;5082:13:0;;;11141:16:::1;::::0;;11155:1:::1;11141:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11141:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11141:16:0::1;11117:40;;11186:4;11168;11173:1;11168:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11168:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11212:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11212:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11168:7;;11212:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11202:4;11207:1;11202:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11202:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11277:15:::1;::::0;11245:62:::1;::::0;11262:4:::1;::::0;11277:15:::1;11295:11:::0;11245:8:::1;:62::i;:::-;11318:15;::::0;:196:::1;::::0;-1:-1:-1;;;11318:196:0;;-1:-1:-1;;;;;11318:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11399:11;;11318:15:::1;::::0;11441:4;;11468::::1;::::0;11488:15:::1;::::0;11318:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5118:6:0;:14;;-1:-1:-1;;;;5118:14:0;;;-1:-1:-1;;;;11039:483:0:o;3560:246::-;3618:7;3642:1;3647;3642:6;3638:47;;-1:-1:-1;3672:1:0;3665:8;;3638:47;3695:9;3707:5;3711:1;3707;:5;:::i;:::-;3695:17;-1:-1:-1;3740:1:0;3731:5;3735:1;3695:17;3731:5;:::i;:::-;:10;3723:56;;;;-1:-1:-1;;;3723:56:0;;17066:2:1;3723:56:0;;;17048:21:1;17105:2;17085:18;;;17078:30;17144:34;17124:18;;;17117:62;-1:-1:-1;;;17195:18:1;;;17188:31;17236:19;;3723:56:0;16864:397:1;3723:56:0;3797:1;3560:246;-1:-1:-1;;;3560:246:0:o;3814:132::-;3872:7;3899:39;3903:1;3906;3899:39;;;;;;;;;;;;;;;;;:3;:39::i;13761:98::-;13818:7;13845:1;13843;:3;13842:9;;13850:1;13842:9;;;-1:-1:-1;13848:1:0;13761:98;-1:-1:-1;13761:98:0:o;11527:99::-;11590:11;;:28;;-1:-1:-1;;;;;11590:11:0;;;;:28;;;;;11611:6;;11590:11;:28;:11;:28;11611:6;11590:11;:28;;;;;;;;;;;;;;;;;;;3031:179;3089:7;;3121:5;3125:1;3121;:5;:::i;:::-;3109:17;;3150:1;3145;:6;;3137:46;;;;-1:-1:-1;;;3137:46:0;;17468:2:1;3137:46:0;;;17450:21:1;17507:2;17487:18;;;17480:30;17546:29;17526:18;;;17519:57;17593:18;;3137:46:0;17266:351:1;3218:136:0;3276:7;3303:43;3307:1;3310;3303:43;;;;;;;;;;;;;;;;;:3;:43::i;3954:189::-;4040:7;4075:12;4068:5;4060:28;;;;-1:-1:-1;;;4060:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4099:9:0;4111:5;4115:1;4111;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:315::-;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:348::-;2284:8;2294:6;2348:3;2341:4;2333:6;2329:17;2325:27;2315:55;;2366:1;2363;2356:12;2315:55;-1:-1:-1;2389:20:1;;2432:18;2421:30;;2418:50;;;2464:1;2461;2454:12;2418:50;2501:4;2493:6;2489:17;2477:29;;2553:3;2546:4;2537:6;2529;2525:19;2521:30;2518:39;2515:59;;;2570:1;2567;2560:12;2515:59;2232:348;;;;;:::o;2585:1010::-;2698:6;2706;2714;2722;2730;2738;2791:2;2779:9;2770:7;2766:23;2762:32;2759:52;;;2807:1;2804;2797:12;2759:52;2847:9;2834:23;2876:18;2917:2;2909:6;2906:14;2903:34;;;2933:1;2930;2923:12;2903:34;2972:59;3023:7;3014:6;3003:9;2999:22;2972:59;:::i;:::-;3050:8;;-1:-1:-1;2946:85:1;-1:-1:-1;3138:2:1;3123:18;;3110:32;;-1:-1:-1;3154:16:1;;;3151:36;;;3183:1;3180;3173:12;3151:36;3222:61;3275:7;3264:8;3253:9;3249:24;3222:61;:::i;:::-;3302:8;;-1:-1:-1;3196:87:1;-1:-1:-1;3390:2:1;3375:18;;3362:32;;-1:-1:-1;3406:16:1;;;3403:36;;;3435:1;3432;3425:12;3403:36;;3474:61;3527:7;3516:8;3505:9;3501:24;3474:61;:::i;:::-;2585:1010;;;;-1:-1:-1;2585:1010:1;;-1:-1:-1;2585:1010:1;;3554:8;;2585:1010;-1:-1:-1;;;2585:1010:1:o;3600:247::-;3659:6;3712:2;3700:9;3691:7;3687:23;3683:32;3680:52;;;3728:1;3725;3718:12;3680:52;3767:9;3754:23;3786:31;3811:5;3786:31;:::i;4060:388::-;4128:6;4136;4189:2;4177:9;4168:7;4164:23;4160:32;4157:52;;;4205:1;4202;4195:12;4157:52;4244:9;4231:23;4263:31;4288:5;4263:31;:::i;:::-;4313:5;-1:-1:-1;4370:2:1;4355:18;;4342:32;4383:33;4342:32;4383:33;:::i;:::-;4435:7;4425:17;;;4060:388;;;;;:::o;4453:356::-;4655:2;4637:21;;;4674:18;;;4667:30;4733:34;4728:2;4713:18;;4706:62;4800:2;4785:18;;4453:356::o;4814:127::-;4875:10;4870:3;4866:20;4863:1;4856:31;4906:4;4903:1;4896:15;4930:4;4927:1;4920:15;4946:416;5035:1;5072:5;5035:1;5086:270;5107:7;5097:8;5094:21;5086:270;;;5166:4;5162:1;5158:6;5154:17;5148:4;5145:27;5142:53;;;5175:18;;:::i;:::-;5225:7;5215:8;5211:22;5208:55;;;5245:16;;;;5208:55;5324:22;;;;5284:15;;;;5086:270;;;5090:3;4946:416;;;;;:::o;5367:806::-;5416:5;5446:8;5436:80;;-1:-1:-1;5487:1:1;5501:5;;5436:80;5535:4;5525:76;;-1:-1:-1;5572:1:1;5586:5;;5525:76;5617:4;5635:1;5630:59;;;;5703:1;5698:130;;;;5610:218;;5630:59;5660:1;5651:10;;5674:5;;;5698:130;5735:3;5725:8;5722:17;5719:43;;;5742:18;;:::i;:::-;-1:-1:-1;;5798:1:1;5784:16;;5813:5;;5610:218;;5912:2;5902:8;5899:16;5893:3;5887:4;5884:13;5880:36;5874:2;5864:8;5861:16;5856:2;5850:4;5847:12;5843:35;5840:77;5837:159;;;-1:-1:-1;5949:19:1;;;5981:5;;5837:159;6028:34;6053:8;6047:4;6028:34;:::i;:::-;6098:6;6094:1;6090:6;6086:19;6077:7;6074:32;6071:58;;;6109:18;;:::i;:::-;6147:20;;5367:806;-1:-1:-1;;;5367:806:1:o;6178:140::-;6236:5;6265:47;6306:4;6296:8;6292:19;6286:4;6265:47;:::i;6323:168::-;6396:9;;;6427;;6444:15;;;6438:22;;6424:37;6414:71;;6465:18;;:::i;6496:127::-;6557:10;6552:3;6548:20;6545:1;6538:31;6588:4;6585:1;6578:15;6612:4;6609:1;6602:15;6628:380;6707:1;6703:12;;;;6750;;;6771:61;;6825:4;6817:6;6813:17;6803:27;;6771:61;6878:2;6870:6;6867:14;6847:18;6844:38;6841:161;;6924:10;6919:3;6915:20;6912:1;6905:31;6959:4;6956:1;6949:15;6987:4;6984:1;6977:15;7139:518;7241:2;7236:3;7233:11;7230:421;;;7277:5;7274:1;7267:16;7321:4;7318:1;7308:18;7391:2;7379:10;7375:19;7372:1;7368:27;7362:4;7358:38;7427:4;7415:10;7412:20;7409:47;;;-1:-1:-1;7450:4:1;7409:47;7505:2;7500:3;7496:12;7493:1;7489:20;7483:4;7479:31;7469:41;;7560:81;7578:2;7571:5;7568:13;7560:81;;;7637:1;7623:16;;7604:1;7593:13;7560:81;;;7564:3;;7230:421;7139:518;;;:::o;7833:1198::-;7957:18;7952:3;7949:27;7946:53;;;7979:18;;:::i;:::-;8008:94;8098:3;8058:38;8090:4;8084:11;8058:38;:::i;:::-;8052:4;8008:94;:::i;:::-;8128:1;8153:2;8148:3;8145:11;8170:1;8165:608;;;;8817:1;8834:3;8831:93;;;-1:-1:-1;8890:19:1;;;8877:33;8831:93;-1:-1:-1;;7790:1:1;7786:11;;;7782:24;7778:29;7768:40;7814:1;7810:11;;;7765:57;8937:78;;8138:887;;8165:608;7086:1;7079:14;;;7123:4;7110:18;;-1:-1:-1;;8201:17:1;;;8316:229;8330:7;8327:1;8324:14;8316:229;;;8419:19;;;8406:33;8391:49;;8526:4;8511:20;;;;8479:1;8467:14;;;;8346:12;8316:229;;;8320:3;8573;8564:7;8561:16;8558:159;;;8697:1;8693:6;8687:3;8681;8678:1;8674:11;8670:21;8666:34;8662:39;8649:9;8644:3;8640:19;8627:33;8623:79;8615:6;8608:95;8558:159;;;8760:1;8754:3;8751:1;8747:11;8743:19;8737:4;8730:33;8138:887;;7833:1198;;;:::o;9388:251::-;9458:6;9511:2;9499:9;9490:7;9486:23;9482:32;9479:52;;;9527:1;9524;9517:12;9479:52;9559:9;9553:16;9578:31;9603:5;9578:31;:::i;10565:306::-;10653:6;10661;10669;10722:2;10710:9;10701:7;10697:23;10693:32;10690:52;;;10738:1;10735;10728:12;10690:52;10767:9;10761:16;10751:26;;10817:2;10806:9;10802:18;10796:25;10786:35;;10861:2;10850:9;10846:18;10840:25;10830:35;;10565:306;;;;;:::o;11155:277::-;11222:6;11275:2;11263:9;11254:7;11250:23;11246:32;11243:52;;;11291:1;11288;11281:12;11243:52;11323:9;11317:16;11376:5;11369:13;11362:21;11355:5;11352:32;11342:60;;11398:1;11395;11388:12;11437:217;11477:1;11503;11493:132;;11547:10;11542:3;11538:20;11535:1;11528:31;11582:4;11579:1;11572:15;11610:4;11607:1;11600:15;11493:132;-1:-1:-1;11639:9:1;;11437:217::o;12063:184::-;12133:6;12186:2;12174:9;12165:7;12161:23;12157:32;12154:52;;;12202:1;12199;12192:12;12154:52;-1:-1:-1;12225:16:1;;12063:184;-1:-1:-1;12063:184:1:o;14989:125::-;15054:9;;;15075:10;;;15072:36;;;15088:18;;:::i;15474:135::-;15513:3;15534:17;;;15531:43;;15554:18;;:::i;:::-;-1:-1:-1;15601:1:1;15590:13;;15474:135::o;15614:128::-;15681:9;;;15702:11;;;15699:37;;;15716:18;;:::i;15747:127::-;15808:10;15803:3;15799:20;15796:1;15789:31;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:980;16141:4;16189:3;16178:9;16174:19;16220:6;16209:9;16202:25;16246:2;16284:6;16279:2;16268:9;16264:18;16257:34;16327:3;16322:2;16311:9;16307:18;16300:31;16351:6;16386;16380:13;16417:6;16409;16402:22;16455:3;16444:9;16440:19;16433:26;;16494:2;16486:6;16482:15;16468:29;;16515:1;16525:195;16539:6;16536:1;16533:13;16525:195;;;16604:13;;-1:-1:-1;;;;;16600:39:1;16588:52;;16695:15;;;;16660:12;;;;16636:1;16554:9;16525:195;;;-1:-1:-1;;;;;;;16776:32:1;;;;16771:2;16756:18;;16749:60;-1:-1:-1;;;16840:3:1;16825:19;16818:35;16737:3;15879:980;-1:-1:-1;;;15879:980:1:o

Swarm Source

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