Token AlienCRO

DEX  

Overview CRC20

Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
197,880,989.259199 ALIEN

Holders:
379 addresses
Balance
138,453.460162631 ALIEN

Value
$0.00
0x634a5dc4cda63ea8d0699d9387cdcfffc6408b84
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

AlienCRO introducing a native token with revolutionary DeFi features. Amongst the features are buybacks and burns to support the price. A special Anti-Dumping feature is also added.


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

Contract Source Code Verified (Exact Match)

Contract Name:
AlienCOIN

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-11-28
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.8.0;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IALIENdexRouter {
    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 AlienCOIN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "AlienCRO";
    string private constant _symbol = "ALIEN";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;    
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 200000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 public _xAlienBurned;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;

    mapping(address => uint256) private buycooldown;
    mapping(address => uint256) private sellcooldown;
    mapping(address => uint256) private firstsell;
    mapping(address => uint256) private sellnumber;

    address payable private _liquidityAddress;
    address payable private _nftFunds;
    address payable private _developmentFunds;
    IALIENdexRouter private ALIENdexRouter;
    address public ALIENdexPair;

    bool public tradeAllowed = false;
    bool private liquidityAdded = false;
    bool private inSwap = false;
    bool public swapEnabled = false;
    bool private cooldownEnabled = false;

    uint256 private _maxTxAmount = _tTotal;     
    uint256 private _reflection = 7;
    uint256 private _liquidityFee = 7;
    uint256 private _alienBurn = 1;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor(address payable addr1, address payable addr2, address payable addr3) {
        _liquidityAddress = addr1;
        _nftFunds = addr2;
        _developmentFunds = addr3;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_liquidityAddress] = true;
        _isExcludedFromFee[_nftFunds] = true;
        _isExcludedFromFee[_developmentFunds] = 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 totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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,"CRC20: transfer amount exceeds allowance"));
        return true;
    }

    function releasexAlien() public onlyOwner {
        require(liquidityAdded);
        tradeAllowed = true;
    }

    function addLiquidity() external onlyOwner() {
        IALIENdexRouter _ALIENdexRouter = IALIENdexRouter(0x304EE5a9e1Fa788999fE9b7c852595Bf62C7E8E9);
        ALIENdexRouter = _ALIENdexRouter;
        _approve(address(this), address(ALIENdexRouter), _tTotal);
        ALIENdexPair = IALIENdexFactory(_ALIENdexRouter.factory()).createPair(address(this), _ALIENdexRouter.WETH());
        ALIENdexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        liquidityAdded = true;
        _maxTxAmount = 1000000 * 10**9;
        IERC20(ALIENdexPair).approve(address(ALIENdexRouter),type(uint256).max);
    }

    function manualswap() external onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setCooldownEnabled(bool enable) external onlyOwner() {
        cooldownEnabled = enable;
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

    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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "CRC20: approve from the zero address");
        require(spender != address(0), "CRC20: 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), "CRC20: transfer from the zero address");
        require(to != address(0), "CRC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(ALIENdexRouter) && to != address(ALIENdexRouter)) {
                    require(_msgSender() == address(ALIENdexRouter) || _msgSender() == ALIENdexPair,"ERR: ALIENdex only");
                }
            }
            if (from == ALIENdexPair && to != address(ALIENdexRouter) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(tradeAllowed);
                require(amount <= _maxTxAmount);
                require(buycooldown[to] < block.timestamp);
                buycooldown[to] = block.timestamp + (45 seconds);
                _liquidityFee = 7;
                _reflection = 3;
                _alienBurn = 0;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != ALIENdexPair && swapEnabled) {
                require(amount <= _tTotal.mul(501).div(10000000) && amount <= _maxTxAmount);
                require(sellcooldown[from] < block.timestamp);
                if(firstsell[from] + (1 days) < block.timestamp){
                    sellnumber[from] = 0;
                }
                if (sellnumber[from] == 0) {
                    sellnumber[from]++;
                    firstsell[from] = block.timestamp;
                    sellcooldown[from] = block.timestamp + (1 hours);
                }
                else if (sellnumber[from] == 1) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (2 hours);
                }
                else if (sellnumber[from] == 2) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (3 hours);
                }
                else if (sellnumber[from] == 3) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (7 hours);
                }                          
                else if (sellnumber[from] == 4) {
                    sellnumber[from]++;
                    sellcooldown[from] = firstsell[from] + (1 days);
                }
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                setFee(sellnumber[from]);
            }
        }
        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee;
    }

    function removeAllFee() private {
        if (_reflection == 0 && _liquidityFee == 0 && _alienBurn == 0) return;
        _reflection = 0;
        _liquidityFee = 0;
        _alienBurn = 0;
    }

    function restoreAllFee() private {
        _reflection = 7;
        _liquidityFee = 7;
        _alienBurn = 1;
    }
    
    function setFee(uint256 multiplier) private {
        _reflection = _reflection.mul(multiplier);
        _alienBurn = _alienBurn.mul(multiplier);
        _liquidityFee = 7;        
    }

    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 amount) private {
        (uint256 tAmount, uint256 tBurn) = _alienCroBurn(amount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount, tBurn);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate = _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
    }

    function _alienCroBurn(uint amount) private returns (uint, uint) {  
        uint orgAmount = amount;
        uint256 currentRate = _getRate();
        uint256 tBurn = amount.mul(_alienBurn).div(100);
        uint256 rBurn = tBurn.mul(currentRate);
        _tTotal = _tTotal.sub(tBurn);
        _rTotal = _rTotal.sub(rBurn);
        _xAlienBurned = _xAlienBurned.add(tBurn);
        return (orgAmount, tBurn);
    }
    
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount, uint256 tBurn) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount, _reflection, _liquidityFee, tBurn);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 liquidityFee, uint256 tBurn) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tLiquidity = tAmount.mul(liquidityFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity).sub(tBurn);
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);
        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ALIENdexRouter.WETH();
        _approve(address(this), address(ALIENdexRouter), tokenAmount);
        ALIENdexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function sendETHToFee(uint256 amount) private {
        _liquidityAddress.transfer(amount.div(3));
        _nftFunds.transfer(amount.div(3));
        _developmentFunds.transfer(amount.div(3));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","type":"address"},{"internalType":"address payable","name":"addr3","type":"address"}],"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":[],"name":"ALIENdexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_xAlienBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"releasexAlien","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526702c68af0bb140000600481905567028dba38d9f3ffff196005556012805464ffffffffff60a01b191690556013556007601481905560155560016016553480156200004f57600080fd5b506040516200215c3803806200215c833981810160405260608110156200007557600080fd5b50805160208201516040909201519091906000620000926200023f565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b038086166001600160a01b031992831617909255600f80548584169083161790556010805492841692909116919091179055600554600260006200012a6200023f565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160096000620001646200024360201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155600e54821684528284208054861682179055600f54821684528284208054861682179055601054909116835291208054909216179055620001e96200023f565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a350505062000252565b3390565b6000546001600160a01b031690565b611efa80620002626000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063c3c8cd8014610404578063d543dbeb14610419578063dd62ed3e14610443578063e8078d941461047e578063fb4b22e11461049357610135565b8063715018a6146103465780637a32bae41461035b5780637feba088146103705780638da5cb5b1461038557806395d89b41146103b657610135565b80634923ac67116100f25780634923ac67146102a65780635932ead1146102bb5780636ddd1713146102e95780636fc3eaec146102fe57806370a082311461031357610135565b806306fdde031461013a578063095ea7b3146101c457806318160ddd1461021157806323b872dd14610238578063313ce5671461027b57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104a8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d057600080fd5b506101fd600480360360408110156101e757600080fd5b506001600160a01b0381351690602001356104ca565b604080519115158252519081900360200190f35b34801561021d57600080fd5b506102266104e8565b60408051918252519081900360200190f35b34801561024457600080fd5b506101fd6004803603606081101561025b57600080fd5b506001600160a01b038135811691602081013590911690604001356104ee565b34801561028757600080fd5b50610290610575565b6040805160ff9092168252519081900360200190f35b3480156102b257600080fd5b5061022661057a565b3480156102c757600080fd5b506102e7600480360360208110156102de57600080fd5b50351515610580565b005b3480156102f557600080fd5b506101fd6105f6565b34801561030a57600080fd5b506102e7610606565b34801561031f57600080fd5b506102266004803603602081101561033657600080fd5b50356001600160a01b031661066b565b34801561035257600080fd5b506102e761068d565b34801561036757600080fd5b506101fd61072f565b34801561037c57600080fd5b506102e761073f565b34801561039157600080fd5b5061039a6107c2565b604080516001600160a01b039092168252519081900360200190f35b3480156103c257600080fd5b5061014f6107d1565b3480156103d757600080fd5b506101fd600480360360408110156103ee57600080fd5b506001600160a01b0381351690602001356107f0565b34801561041057600080fd5b506102e7610804565b34801561042557600080fd5b506102e76004803603602081101561043c57600080fd5b5035610872565b34801561044f57600080fd5b506102266004803603604081101561046657600080fd5b506001600160a01b0381358116916020013516610979565b34801561048a57600080fd5b506102e76109a4565b34801561049f57600080fd5b5061039a610d33565b604080518082019091526008815267416c69656e43524f60c01b602082015290565b60006104de6104d7610d42565b8484610d46565b5060015b92915050565b60045490565b60006104fb848484610e32565b61056b84610507610d42565b61056685604051806060016040528060288152602001611e9d602891396001600160a01b038a16600090815260086020526040812090610545610d42565b6001600160a01b03168152602081019190915260400160002054919061145f565b610d46565b5060019392505050565b600990565b60075481565b610588610d42565b6000546001600160a01b039081169116146105d8576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b60128054911515600160c01b0260ff60c01b19909216919091179055565b601254600160b81b900460ff1681565b61060e610d42565b6000546001600160a01b0390811691161461065e576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b47610668816114f6565b50565b6001600160a01b0381166000908152600260205260408120546104e2906115c2565b610695610d42565b6000546001600160a01b039081169116146106e5576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601254600160a01b900460ff1681565b610747610d42565b6000546001600160a01b03908116911614610797576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b601254600160a81b900460ff166107ad57600080fd5b6012805460ff60a01b1916600160a01b179055565b6000546001600160a01b031690565b60408051808201909152600581526420a624a2a760d91b602082015290565b60006104de6107fd610d42565b8484610e32565b61080c610d42565b6000546001600160a01b0390811691161461085c576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b60006108673061066b565b905061066881611622565b61087a610d42565b6000546001600160a01b039081169116146108ca576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b6000811161091f576040805162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b61093f6064610939836004546117f190919063ffffffff16565b9061184a565b601381905560408051918252517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9181900360200190a150565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6109ac610d42565b6000546001600160a01b039081169116146109fc576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b601180546001600160a01b03191673304ee5a9e1fa788999fe9b7c852595bf62c7e8e9908117918290556004549091610a409130916001600160a01b031690610d46565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7957600080fd5b505afa158015610a8d573d6000803e3d6000fd5b505050506040513d6020811015610aa357600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610af357600080fd5b505afa158015610b07573d6000803e3d6000fd5b505050506040513d6020811015610b1d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610b6f57600080fd5b505af1158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b5051601280546001600160a01b0319166001600160a01b039283161790556011541663f305d7194730610bcb8161066b565b600080610bd66107c2565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050506040513d6060811015610c6c57600080fd5b50506012805460ff60a81b1960ff60c01b1960ff60b81b19909216600160b81b1791909116600160c01b1716600160a81b179081905566038d7ea4c680006013556011546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b505050565b6012546001600160a01b031681565b3390565b6001600160a01b038316610d8b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611da56024913960400191505060405180910390fd5b6001600160a01b038216610dd05760405162461bcd60e51b8152600401808060200182810382526022815260200180611dc96022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610e775760405162461bcd60e51b8152600401808060200182810382526025815260200180611deb6025913960400191505060405180910390fd5b6001600160a01b038216610ebc5760405162461bcd60e51b8152600401808060200182810382526023815260200180611e7a6023913960400191505060405180910390fd5b60008111610efb5760405162461bcd60e51b8152600401808060200182810382526029815260200180611e516029913960400191505060405180910390fd5b610f036107c2565b6001600160a01b0316836001600160a01b031614158015610f3d5750610f276107c2565b6001600160a01b0316826001600160a01b031614155b1561140257601254600160c01b900460ff1615611038576001600160a01b0383163014801590610f7657506001600160a01b0382163014155b8015610f9057506011546001600160a01b03848116911614155b8015610faa57506011546001600160a01b03838116911614155b15611038576011546001600160a01b0316610fc3610d42565b6001600160a01b03161480610ff257506012546001600160a01b0316610fe7610d42565b6001600160a01b0316145b611038576040805162461bcd60e51b81526020600482015260126024820152714552523a20414c49454e646578206f6e6c7960701b604482015290519081900360640190fd5b6012546001600160a01b03848116911614801561106357506011546001600160a01b03838116911614155b801561108857506001600160a01b03821660009081526009602052604090205460ff16155b801561109d5750601254600160c01b900460ff165b1561111757601254600160a01b900460ff166110b857600080fd5b6013548111156110c757600080fd5b6001600160a01b0382166000908152600a602052604090205442116110eb57600080fd5b6001600160a01b0382166000908152600a60205260408120602d42019055600760155560036014556016555b60006111223061066b565b601254909150600160b01b900460ff1615801561114d57506012546001600160a01b03858116911614155b80156111625750601254600160b81b900460ff165b1561140057611185629896806109396101f56004546117f190919063ffffffff16565b821115801561119657506013548211155b61119f57600080fd5b6001600160a01b0384166000908152600b602052604090205442116111c357600080fd5b6001600160a01b0384166000908152600c602052604090205442620151809091011015611204576001600160a01b0384166000908152600d60205260408120555b6001600160a01b0384166000908152600d6020526040902054611264576001600160a01b0384166000908152600d6020908152604080832080546001019055600c82528083204290819055600b909252909120610e1090910190556113c3565b6001600160a01b0384166000908152600d6020526040902054600114156112ba576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020611c20420190556113c3565b6001600160a01b0384166000908152600d602052604090205460021415611310576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020612a30420190556113c3565b6001600160a01b0384166000908152600d602052604090205460031415611366576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020616270420190556113c3565b6001600160a01b0384166000908152600d6020526040902054600414156113c3576001600160a01b0384166000908152600d6020908152604080832080546001019055600c825280832054600b9092529091206201518090910190555b6113cc81611622565b4780156113dc576113dc476114f6565b6001600160a01b0385166000908152600d60205260409020546113fe9061188c565b505b505b6001600160a01b03831660009081526009602052604090205460019060ff168061144457506001600160a01b03831660009081526009602052604090205460ff165b1561144d575060005b611459848484846118b4565b50505050565b600081848411156114ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114b357818101518382015260200161149b565b50505050905090810190601f1680156114e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600e546001600160a01b03166108fc61151083600361184a565b6040518115909202916000818181858888f19350505050158015611538573d6000803e3d6000fd5b50600f546001600160a01b03166108fc61155383600361184a565b6040518115909202916000818181858888f1935050505015801561157b573d6000803e3d6000fd5b506010546001600160a01b03166108fc61159683600361184a565b6040518115909202916000818181858888f193505050501580156115be573d6000803e3d6000fd5b5050565b60006005548211156116055760405162461bcd60e51b815260040180806020018281038252602a815260200180611d7b602a913960400191505060405180910390fd5b600061160f6118e5565b905061161b838261184a565b9392505050565b6012805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061166457fe5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116b857600080fd5b505afa1580156116cc573d6000803e3d6000fd5b505050506040513d60208110156116e257600080fd5b50518151829060019081106116f357fe5b6001600160a01b0392831660209182029290920101526011546117199130911684610d46565b60115460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561179f578181015183820152602001611787565b505050509050019650505050505050600060405180830381600087803b1580156117c857600080fd5b505af11580156117dc573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b600082611800575060006104e2565b8282028284828161180d57fe5b041461161b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e106021913960400191505060405180910390fd5b600061161b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611908565b60145461189990826117f1565b6014556016546118a990826117f1565b601655506007601555565b806118c1576118c161196d565b6118cc8484846119a5565b8061145957611459600760148190556015556001601655565b60008060006118f2611abf565b9092509050611901828261184a565b9250505090565b600081836119575760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156114b357818101518382015260200161149b565b50600083858161196357fe5b0495945050505050565b60145415801561197d5750601554155b80156119895750601654155b15611993576119a3565b6000601481905560158190556016555b565b6000806119b183611af6565b915091506000806000806000806119c88888611b6f565b955095509550955095509550611a0c86600260008e6001600160a01b03166001600160a01b0316815260200190815260200160002054611bce90919063ffffffff16565b6001600160a01b03808d1660009081526002602052604080822093909355908c1681522054611a3b9086611c10565b6001600160a01b038b16600090815260026020526040902055611a5d81611c6a565b611a678483611cb4565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050505050505050565b6005546004546000918291611ad4828261184a565b821015611aec57600554600454935093505050611af2565b90925090505b9091565b6000808281611b036118e5565b90506000611b216064610939601654896117f190919063ffffffff16565b90506000611b2f82846117f1565b600454909150611b3f9083611bce565b600455600554611b4f9082611bce565b600555600754611b5f9083611c10565b6007555091935090915050915091565b6000806000806000806000806000611b8d8b6014546015548d611cd8565b9250925092506000611b9d6118e5565b90506000806000611bb08f878787611d2a565b919e509c509a50959850939650919450505050509295509295509295565b600061161b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061145f565b60008282018381101561161b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c746118e5565b90506000611c8283836117f1565b30600090815260026020526040902054909150611c9f9082611c10565b30600090815260026020526040902055505050565b600554611cc19083611bce565b600555600654611cd19082611c10565b6006555050565b6000808080611cec60646109398a8a6117f1565b90506000611cff60646109398b8a6117f1565b90506000611d1987611d1384818e88611bce565b90611bce565b9a9299509097509095505050505050565b6000808080611d3988866117f1565b90506000611d4788876117f1565b90506000611d5588886117f1565b90506000611d6782611d138686611bce565b939b939a5091985091965050505050505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7343524332303a20617070726f76652066726f6d20746865207a65726f206164647265737343524332303a20617070726f766520746f20746865207a65726f206164647265737343524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f43524332303a207472616e7366657220746f20746865207a65726f206164647265737343524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208bea8a4276c6df86232e862585c7b1b9b9af88c9db91c25ee59a119ac5ea350064736f6c63430007060033000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063c3c8cd8014610404578063d543dbeb14610419578063dd62ed3e14610443578063e8078d941461047e578063fb4b22e11461049357610135565b8063715018a6146103465780637a32bae41461035b5780637feba088146103705780638da5cb5b1461038557806395d89b41146103b657610135565b80634923ac67116100f25780634923ac67146102a65780635932ead1146102bb5780636ddd1713146102e95780636fc3eaec146102fe57806370a082311461031357610135565b806306fdde031461013a578063095ea7b3146101c457806318160ddd1461021157806323b872dd14610238578063313ce5671461027b57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104a8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d057600080fd5b506101fd600480360360408110156101e757600080fd5b506001600160a01b0381351690602001356104ca565b604080519115158252519081900360200190f35b34801561021d57600080fd5b506102266104e8565b60408051918252519081900360200190f35b34801561024457600080fd5b506101fd6004803603606081101561025b57600080fd5b506001600160a01b038135811691602081013590911690604001356104ee565b34801561028757600080fd5b50610290610575565b6040805160ff9092168252519081900360200190f35b3480156102b257600080fd5b5061022661057a565b3480156102c757600080fd5b506102e7600480360360208110156102de57600080fd5b50351515610580565b005b3480156102f557600080fd5b506101fd6105f6565b34801561030a57600080fd5b506102e7610606565b34801561031f57600080fd5b506102266004803603602081101561033657600080fd5b50356001600160a01b031661066b565b34801561035257600080fd5b506102e761068d565b34801561036757600080fd5b506101fd61072f565b34801561037c57600080fd5b506102e761073f565b34801561039157600080fd5b5061039a6107c2565b604080516001600160a01b039092168252519081900360200190f35b3480156103c257600080fd5b5061014f6107d1565b3480156103d757600080fd5b506101fd600480360360408110156103ee57600080fd5b506001600160a01b0381351690602001356107f0565b34801561041057600080fd5b506102e7610804565b34801561042557600080fd5b506102e76004803603602081101561043c57600080fd5b5035610872565b34801561044f57600080fd5b506102266004803603604081101561046657600080fd5b506001600160a01b0381358116916020013516610979565b34801561048a57600080fd5b506102e76109a4565b34801561049f57600080fd5b5061039a610d33565b604080518082019091526008815267416c69656e43524f60c01b602082015290565b60006104de6104d7610d42565b8484610d46565b5060015b92915050565b60045490565b60006104fb848484610e32565b61056b84610507610d42565b61056685604051806060016040528060288152602001611e9d602891396001600160a01b038a16600090815260086020526040812090610545610d42565b6001600160a01b03168152602081019190915260400160002054919061145f565b610d46565b5060019392505050565b600990565b60075481565b610588610d42565b6000546001600160a01b039081169116146105d8576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b60128054911515600160c01b0260ff60c01b19909216919091179055565b601254600160b81b900460ff1681565b61060e610d42565b6000546001600160a01b0390811691161461065e576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b47610668816114f6565b50565b6001600160a01b0381166000908152600260205260408120546104e2906115c2565b610695610d42565b6000546001600160a01b039081169116146106e5576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601254600160a01b900460ff1681565b610747610d42565b6000546001600160a01b03908116911614610797576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b601254600160a81b900460ff166107ad57600080fd5b6012805460ff60a01b1916600160a01b179055565b6000546001600160a01b031690565b60408051808201909152600581526420a624a2a760d91b602082015290565b60006104de6107fd610d42565b8484610e32565b61080c610d42565b6000546001600160a01b0390811691161461085c576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b60006108673061066b565b905061066881611622565b61087a610d42565b6000546001600160a01b039081169116146108ca576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b6000811161091f576040805162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b61093f6064610939836004546117f190919063ffffffff16565b9061184a565b601381905560408051918252517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9181900360200190a150565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6109ac610d42565b6000546001600160a01b039081169116146109fc576040805162461bcd60e51b81526020600482018190526024820152600080516020611e31833981519152604482015290519081900360640190fd5b601180546001600160a01b03191673304ee5a9e1fa788999fe9b7c852595bf62c7e8e9908117918290556004549091610a409130916001600160a01b031690610d46565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7957600080fd5b505afa158015610a8d573d6000803e3d6000fd5b505050506040513d6020811015610aa357600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610af357600080fd5b505afa158015610b07573d6000803e3d6000fd5b505050506040513d6020811015610b1d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610b6f57600080fd5b505af1158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b5051601280546001600160a01b0319166001600160a01b039283161790556011541663f305d7194730610bcb8161066b565b600080610bd66107c2565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050506040513d6060811015610c6c57600080fd5b50506012805460ff60a81b1960ff60c01b1960ff60b81b19909216600160b81b1791909116600160c01b1716600160a81b179081905566038d7ea4c680006013556011546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b505050565b6012546001600160a01b031681565b3390565b6001600160a01b038316610d8b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611da56024913960400191505060405180910390fd5b6001600160a01b038216610dd05760405162461bcd60e51b8152600401808060200182810382526022815260200180611dc96022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610e775760405162461bcd60e51b8152600401808060200182810382526025815260200180611deb6025913960400191505060405180910390fd5b6001600160a01b038216610ebc5760405162461bcd60e51b8152600401808060200182810382526023815260200180611e7a6023913960400191505060405180910390fd5b60008111610efb5760405162461bcd60e51b8152600401808060200182810382526029815260200180611e516029913960400191505060405180910390fd5b610f036107c2565b6001600160a01b0316836001600160a01b031614158015610f3d5750610f276107c2565b6001600160a01b0316826001600160a01b031614155b1561140257601254600160c01b900460ff1615611038576001600160a01b0383163014801590610f7657506001600160a01b0382163014155b8015610f9057506011546001600160a01b03848116911614155b8015610faa57506011546001600160a01b03838116911614155b15611038576011546001600160a01b0316610fc3610d42565b6001600160a01b03161480610ff257506012546001600160a01b0316610fe7610d42565b6001600160a01b0316145b611038576040805162461bcd60e51b81526020600482015260126024820152714552523a20414c49454e646578206f6e6c7960701b604482015290519081900360640190fd5b6012546001600160a01b03848116911614801561106357506011546001600160a01b03838116911614155b801561108857506001600160a01b03821660009081526009602052604090205460ff16155b801561109d5750601254600160c01b900460ff165b1561111757601254600160a01b900460ff166110b857600080fd5b6013548111156110c757600080fd5b6001600160a01b0382166000908152600a602052604090205442116110eb57600080fd5b6001600160a01b0382166000908152600a60205260408120602d42019055600760155560036014556016555b60006111223061066b565b601254909150600160b01b900460ff1615801561114d57506012546001600160a01b03858116911614155b80156111625750601254600160b81b900460ff165b1561140057611185629896806109396101f56004546117f190919063ffffffff16565b821115801561119657506013548211155b61119f57600080fd5b6001600160a01b0384166000908152600b602052604090205442116111c357600080fd5b6001600160a01b0384166000908152600c602052604090205442620151809091011015611204576001600160a01b0384166000908152600d60205260408120555b6001600160a01b0384166000908152600d6020526040902054611264576001600160a01b0384166000908152600d6020908152604080832080546001019055600c82528083204290819055600b909252909120610e1090910190556113c3565b6001600160a01b0384166000908152600d6020526040902054600114156112ba576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020611c20420190556113c3565b6001600160a01b0384166000908152600d602052604090205460021415611310576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020612a30420190556113c3565b6001600160a01b0384166000908152600d602052604090205460031415611366576001600160a01b0384166000908152600d6020908152604080832080546001019055600b9091529020616270420190556113c3565b6001600160a01b0384166000908152600d6020526040902054600414156113c3576001600160a01b0384166000908152600d6020908152604080832080546001019055600c825280832054600b9092529091206201518090910190555b6113cc81611622565b4780156113dc576113dc476114f6565b6001600160a01b0385166000908152600d60205260409020546113fe9061188c565b505b505b6001600160a01b03831660009081526009602052604090205460019060ff168061144457506001600160a01b03831660009081526009602052604090205460ff165b1561144d575060005b611459848484846118b4565b50505050565b600081848411156114ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114b357818101518382015260200161149b565b50505050905090810190601f1680156114e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600e546001600160a01b03166108fc61151083600361184a565b6040518115909202916000818181858888f19350505050158015611538573d6000803e3d6000fd5b50600f546001600160a01b03166108fc61155383600361184a565b6040518115909202916000818181858888f1935050505015801561157b573d6000803e3d6000fd5b506010546001600160a01b03166108fc61159683600361184a565b6040518115909202916000818181858888f193505050501580156115be573d6000803e3d6000fd5b5050565b60006005548211156116055760405162461bcd60e51b815260040180806020018281038252602a815260200180611d7b602a913960400191505060405180910390fd5b600061160f6118e5565b905061161b838261184a565b9392505050565b6012805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061166457fe5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116b857600080fd5b505afa1580156116cc573d6000803e3d6000fd5b505050506040513d60208110156116e257600080fd5b50518151829060019081106116f357fe5b6001600160a01b0392831660209182029290920101526011546117199130911684610d46565b60115460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561179f578181015183820152602001611787565b505050509050019650505050505050600060405180830381600087803b1580156117c857600080fd5b505af11580156117dc573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b600082611800575060006104e2565b8282028284828161180d57fe5b041461161b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e106021913960400191505060405180910390fd5b600061161b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611908565b60145461189990826117f1565b6014556016546118a990826117f1565b601655506007601555565b806118c1576118c161196d565b6118cc8484846119a5565b8061145957611459600760148190556015556001601655565b60008060006118f2611abf565b9092509050611901828261184a565b9250505090565b600081836119575760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156114b357818101518382015260200161149b565b50600083858161196357fe5b0495945050505050565b60145415801561197d5750601554155b80156119895750601654155b15611993576119a3565b6000601481905560158190556016555b565b6000806119b183611af6565b915091506000806000806000806119c88888611b6f565b955095509550955095509550611a0c86600260008e6001600160a01b03166001600160a01b0316815260200190815260200160002054611bce90919063ffffffff16565b6001600160a01b03808d1660009081526002602052604080822093909355908c1681522054611a3b9086611c10565b6001600160a01b038b16600090815260026020526040902055611a5d81611c6a565b611a678483611cb4565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050505050505050565b6005546004546000918291611ad4828261184a565b821015611aec57600554600454935093505050611af2565b90925090505b9091565b6000808281611b036118e5565b90506000611b216064610939601654896117f190919063ffffffff16565b90506000611b2f82846117f1565b600454909150611b3f9083611bce565b600455600554611b4f9082611bce565b600555600754611b5f9083611c10565b6007555091935090915050915091565b6000806000806000806000806000611b8d8b6014546015548d611cd8565b9250925092506000611b9d6118e5565b90506000806000611bb08f878787611d2a565b919e509c509a50959850939650919450505050509295509295509295565b600061161b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061145f565b60008282018381101561161b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c746118e5565b90506000611c8283836117f1565b30600090815260026020526040902054909150611c9f9082611c10565b30600090815260026020526040902055505050565b600554611cc19083611bce565b600555600654611cd19082611c10565b6006555050565b6000808080611cec60646109398a8a6117f1565b90506000611cff60646109398b8a6117f1565b90506000611d1987611d1384818e88611bce565b90611bce565b9a9299509097509095505050505050565b6000808080611d3988866117f1565b90506000611d4788876117f1565b90506000611d5588886117f1565b90506000611d6782611d138686611bce565b939b939a5091985091965050505050505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7343524332303a20617070726f76652066726f6d20746865207a65726f206164647265737343524332303a20617070726f766520746f20746865207a65726f206164647265737343524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f43524332303a207472616e7366657220746f20746865207a65726f206164647265737343524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208bea8a4276c6df86232e862585c7b1b9b9af88c9db91c25ee59a119ac5ea350064736f6c63430007060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc

-----Decoded View---------------
Arg [0] : addr1 (address): 0x779113b1466846de2b0b92f1cef19f84f89f30cc
Arg [1] : addr2 (address): 0x779113b1466846de2b0b92f1cef19f84f89f30cc
Arg [2] : addr3 (address): 0x779113b1466846de2b0b92f1cef19f84f89f30cc

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc
Arg [1] : 000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc
Arg [2] : 000000000000000000000000779113b1466846de2b0b92f1cef19f84f89f30cc


Deployed ByteCode Sourcemap

3537:13463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6579:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6579:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6004:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6748:310;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6748:310:0;;;;;;;;;;;;;;;;;:::i;5913:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4058:28;;;;;;;;;;;;;:::i;8266:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8266:105:0;;;;:::i;:::-;;4777:31;;;;;;;;;;;;;:::i;8103:155::-;;;;;;;;;;;;;:::i;6107:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6107:138:0;-1:-1:-1;;;;;6107:138:0;;:::i;2594:148::-;;;;;;;;;;;;;:::i;4662:32::-;;;;;;;;;;;;;:::i;7066:114::-;;;;;;;;;;;;;:::i;2380:79::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2380:79:0;;;;;;;;;;;;;;5818:87;;;;;;;;;;;;;:::i;6253:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6253:167:0;;;;;;;;:::i;7939:156::-;;;;;;;;;;;;;:::i;8379:255::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8379:255:0;;:::i;6428:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6428:143:0;;;;;;;;;;:::i;7188:743::-;;;;;;;;;;;;;:::i;4626:27::-;;;;;;;;;;;;;:::i;5727:83::-;5797:5;;;;;;;;;;;;-1:-1:-1;;;5797:5:0;;;;5727:83;:::o;6579:161::-;6654:4;6671:39;6680:12;:10;:12::i;:::-;6694:7;6703:6;6671:8;:39::i;:::-;-1:-1:-1;6728:4:0;6579:161;;;;;:::o;6004:95::-;6084:7;;6004:95;:::o;6748:310::-;6846:4;6863:36;6873:6;6881:9;6892:6;6863:9;:36::i;:::-;6910:118;6919:6;6926:12;:10;:12::i;:::-;6939:88;6977:6;6939:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6939:19:0;;;;;;:11;:19;;;;;;6959:12;:10;:12::i;:::-;-1:-1:-1;;;;;6939:33:0;;;;;;;;;;;;-1:-1:-1;6939:33:0;;;:88;:37;:88::i;:::-;6910:8;:118::i;:::-;-1:-1:-1;7046:4:0;6748:310;;;;;:::o;5913:83::-;3756:1;5913:83;:::o;4058:28::-;;;;:::o;8266:105::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;8339:15:::1;:24:::0;;;::::1;;-1:-1:-1::0;;;8339:24:0::1;-1:-1:-1::0;;;;8339:24:0;;::::1;::::0;;;::::1;::::0;;8266:105::o;4777:31::-;;;-1:-1:-1;;;4777:31:0;;;;;:::o;8103:155::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;8186:21:::1;8218:32;8186:21:::0;8218:12:::1;:32::i;:::-;2577:1;8103:155::o:0;6107:138::-;-1:-1:-1;;;;;6220:16:0;;6173:7;6220:16;;;:7;:16;;;;;;6200:37;;:19;:37::i;2594:148::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;2701:1:::1;2685:6:::0;;2664:40:::1;::::0;-1:-1:-1;;;;;2685:6:0;;::::1;::::0;2664:40:::1;::::0;2701:1;;2664:40:::1;2732:1;2715:19:::0;;-1:-1:-1;;;;;;2715:19:0::1;::::0;;2594:148::o;4662:32::-;;;-1:-1:-1;;;4662:32:0;;;;;:::o;7066:114::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;7127:14:::1;::::0;-1:-1:-1;;;7127:14:0;::::1;;;7119:23;;;::::0;::::1;;7153:12;:19:::0;;-1:-1:-1;;;;7153:19:0::1;-1:-1:-1::0;;;7153:19:0::1;::::0;;7066:114::o;2380:79::-;2418:7;2445:6;-1:-1:-1;;;;;2445:6:0;2380:79;:::o;5818:87::-;5890:7;;;;;;;;;;;;-1:-1:-1;;;5890:7:0;;;;5818:87;:::o;6253:167::-;6331:4;6348:42;6358:12;:10;:12::i;:::-;6372:9;6383:6;6348:9;:42::i;7939:156::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;7993:23:::1;8019:24;8037:4;8019:9;:24::i;:::-;7993:50;;8054:33;8071:15;8054:16;:33::i;8379:255::-:0;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;8481:1:::1;8466:12;:16;8458:58;;;::::0;;-1:-1:-1;;;8458:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8542:36;8572:5;8542:25;8554:12;8542:7;;:11;;:25;;;;:::i;:::-;:29:::0;::::1;:36::i;:::-;8527:12;:51:::0;;;8594:32:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;8379:255:::0;:::o;6428:143::-;-1:-1:-1;;;;;6536:18:0;;;6509:7;6536:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6428:143::o;7188:743::-;2517:12;:10;:12::i;:::-;2507:6;;-1:-1:-1;;;;;2507:6:0;;;:22;;;2499:67;;;;;-1:-1:-1;;;2499:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2499:67:0;;;;;;;;;;;;;;;7348:14:::1;:32:::0;;-1:-1:-1;;;;;;7348:32:0::1;7294:42;7348:32:::0;;::::1;::::0;;;;7440:7:::1;::::0;7294:42;;7391:57:::1;::::0;7408:4:::1;::::0;-1:-1:-1;;;;;7423:14:0::1;::::0;7391:8:::1;:57::i;:::-;7491:15;-1:-1:-1::0;;;;;7491:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7491:25:0;7544:22:::1;::::0;;-1:-1:-1;;;7544:22:0;;;;-1:-1:-1;;;;;7474:54:0;;::::1;::::0;::::1;::::0;7537:4:::1;::::0;7544:20;;::::1;::::0;::::1;::::0;:22:::1;::::0;;::::1;::::0;7491:25:::1;::::0;7544:22;;;;;;;;:20;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7544:22:0;7474:93:::1;::::0;;-1:-1:-1;;;;;;7474:93:0::1;::::0;;;;;;-1:-1:-1;;;;;7474:93:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;7544:22:::1;::::0;7474:93;;;;;;;-1:-1:-1;7474:93:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;7474:93:0;7459:12:::1;:108:::0;;-1:-1:-1;;;;;;7459:108:0::1;-1:-1:-1::0;;;;;7459:108:0;;::::1;;::::0;;7578:14:::1;::::0;::::1;:30;7616:21;7647:4;7653:24;7647:4:::0;7653:9:::1;:24::i;:::-;7678:1;7680::::0;7682:7:::1;:5;:7::i;:::-;7690:15;7578:128;;;;;;;;;;;;;-1:-1:-1::0;;;;;7578:128:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7578:128:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;7717:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;;;;;7717:18:0;;::::1;-1:-1:-1::0;;;7717:18:0::1;7746:22:::0;;;::::1;-1:-1:-1::0;;;7746:22:0::1;7779:21;-1:-1:-1::0;;;7779:21:0::1;::::0;;;;7826:15:::1;7811:12;:30:::0;7889:14:::1;::::0;7578:128;7852:71;;-1:-1:-1;;;7852:71:0;;-1:-1:-1;;;;;7889:14:0;;::::1;7852:71;::::0;::::1;::::0;-1:-1:-1;;7852:71:0;;;;;;7859:12;;;::::1;::::0;7852:28:::1;::::0;:71;;;;;7578:128:::1;::::0;7852:71;;;;;;;7717:18;7859:12;7852:71;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;7188:743:0:o;4626:27::-;;;-1:-1:-1;;;;;4626:27:0;;:::o;101:98::-;181:10;101:98;:::o;8903:335::-;-1:-1:-1;;;;;8996:19:0;;8988:68;;;;-1:-1:-1;;;8988:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9075:21:0;;9067:68;;;;-1:-1:-1;;;9067:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9146:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9198:32;;;;;;;;;;;;;;;;;8903:335;;;:::o;9246:3087::-;-1:-1:-1;;;;;9334:18:0;;9326:68;;;;-1:-1:-1;;;9326:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9413:16:0;;9405:64;;;;-1:-1:-1;;;9405:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9497:1;9488:6;:10;9480:64;;;;-1:-1:-1;;;9480:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9569:7;:5;:7::i;:::-;-1:-1:-1;;;;;9561:15:0;:4;-1:-1:-1;;;;;9561:15:0;;;:32;;;;;9586:7;:5;:7::i;:::-;-1:-1:-1;;;;;9580:13:0;:2;-1:-1:-1;;;;;9580:13:0;;;9561:32;9557:2555;;;9614:15;;-1:-1:-1;;;9614:15:0;;;;9610:317;;;-1:-1:-1;;;;;9654:21:0;;9670:4;9654:21;;;;:44;;-1:-1:-1;;;;;;9679:19:0;;9693:4;9679:19;;9654:44;:79;;;;-1:-1:-1;9718:14:0;;-1:-1:-1;;;;;9702:31:0;;;9718:14;;9702:31;;9654:79;:112;;;;-1:-1:-1;9751:14:0;;-1:-1:-1;;;;;9737:29:0;;;9751:14;;9737:29;;9654:112;9650:262;;;9823:14;;-1:-1:-1;;;;;9823:14:0;9799:12;:10;:12::i;:::-;-1:-1:-1;;;;;9799:39:0;;:71;;;-1:-1:-1;9858:12:0;;-1:-1:-1;;;;;9858:12:0;9842;:10;:12::i;:::-;-1:-1:-1;;;;;9842:28:0;;9799:71;9791:101;;;;;-1:-1:-1;;;9791:101:0;;;;;;;;;;;;-1:-1:-1;;;9791:101:0;;;;;;;;;;;;;;;9953:12;;-1:-1:-1;;;;;9945:20:0;;;9953:12;;9945:20;:53;;;;-1:-1:-1;9983:14:0;;-1:-1:-1;;;;;9969:29:0;;;9983:14;;9969:29;;9945:53;:80;;;;-1:-1:-1;;;;;;10003:22:0;;;;;;:18;:22;;;;;;;;10002:23;9945:80;:99;;;;-1:-1:-1;10029:15:0;;-1:-1:-1;;;10029:15:0;;;;9945:99;9941:442;;;10073:12;;-1:-1:-1;;;10073:12:0;;;;10065:21;;;;;;10123:12;;10113:6;:22;;10105:31;;;;;;-1:-1:-1;;;;;10163:15:0;;;;;;:11;:15;;;;;;10181;-1:-1:-1;10155:42:0;;;;;;-1:-1:-1;;;;;10216:15:0;;;;;;:11;:15;;;;;10253:10;10234:15;:30;10216:48;;10299:1;10283:13;:17;10333:1;10319:11;:15;10353:10;:14;9941:442;10397:28;10428:24;10446:4;10428:9;:24::i;:::-;10472:6;;10397:55;;-1:-1:-1;;;;10472:6:0;;;;10471:7;:31;;;;-1:-1:-1;10490:12:0;;-1:-1:-1;;;;;10482:20:0;;;10490:12;;10482:20;;10471:31;:46;;;;-1:-1:-1;10506:11:0;;-1:-1:-1;;;10506:11:0;;;;10471:46;10467:1634;;;10556:30;10577:8;10556:16;10568:3;10556:7;;:11;;:16;;;;:::i;:30::-;10546:6;:40;;:66;;;;;10600:12;;10590:6;:22;;10546:66;10538:75;;;;;;-1:-1:-1;;;;;10640:18:0;;;;;;:12;:18;;;;;;10661:15;-1:-1:-1;10632:45:0;;;;;;-1:-1:-1;;;;;10699:15:0;;;;;;:9;:15;;;;;;10728;10718:6;10699:26;;;:44;10696:111;;;-1:-1:-1;;;;;10767:16:0;;10786:1;10767:16;;;:10;:16;;;;;:20;10696:111;-1:-1:-1;;;;;10829:16:0;;;;;;:10;:16;;;;;;10825:968;;-1:-1:-1;;;;;10875:16:0;;;;;;:10;:16;;;;;;;;:18;;;;;;10916:9;:15;;;;;10934;10916:33;;;;10972:12;:18;;;;;;11012:7;10993:27;;;10972:48;;10825:968;;;-1:-1:-1;;;;;11067:16:0;;;;;;:10;:16;;;;;;11087:1;11067:21;11063:730;;;-1:-1:-1;;;;;11113:16:0;;;;;;:10;:16;;;;;;;;:18;;;;;;11154:12;:18;;;;;11194:7;11175:15;:27;11154:48;;11063:730;;;-1:-1:-1;;;;;11249:16:0;;;;;;:10;:16;;;;;;11269:1;11249:21;11245:548;;;-1:-1:-1;;;;;11295:16:0;;;;;;:10;:16;;;;;;;;:18;;;;;;11336:12;:18;;;;;11376:7;11357:15;:27;11336:48;;11245:548;;;-1:-1:-1;;;;;11431:16:0;;;;;;:10;:16;;;;;;11451:1;11431:21;11427:366;;;-1:-1:-1;;;;;11477:16:0;;;;;;:10;:16;;;;;;;;:18;;;;;;11518:12;:18;;;;;11558:7;11539:15;:27;11518:48;;11427:366;;;-1:-1:-1;;;;;11639:16:0;;;;;;:10;:16;;;;;;11659:1;11639:21;11635:158;;;-1:-1:-1;;;;;11685:16:0;;;;;;:10;:16;;;;;;;;:18;;;;;;11747:9;:15;;;;;;11726:12;:18;;;;;;11766:6;11747:26;;;11726:47;;11635:158;11811:38;11828:20;11811:16;:38::i;:::-;11897:21;11941:22;;11937:106;;11988:35;12001:21;11988:12;:35::i;:::-;-1:-1:-1;;;;;12068:16:0;;;;;;:10;:16;;;;;;12061:24;;:6;:24::i;:::-;10467:1634;;9557:2555;;-1:-1:-1;;;;;12156:24:0;;12122:12;12156:24;;;:18;:24;;;;;;12137:4;;12156:24;;;:50;;-1:-1:-1;;;;;;12184:22:0;;;;;;:18;:22;;;;;;;;12156:50;12152:98;;;-1:-1:-1;12233:5:0;12152:98;12260:41;12275:4;12281:2;12285:6;12293:7;12260:14;:41::i;:::-;9246:3087;;;;:::o;1238:190::-;1324:7;1360:12;1352:6;;;;1344:29;;;;-1:-1:-1;;;1344:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1396:5:0;;;1238:190::o;16758:202::-;16815:17;;-1:-1:-1;;;;;16815:17:0;:41;16842:13;:6;16853:1;16842:10;:13::i;:::-;16815:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16867:9:0;;-1:-1:-1;;;;;16867:9:0;:33;16886:13;:6;16897:1;16886:10;:13::i;:::-;16867:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16911:17:0;;-1:-1:-1;;;;;16911:17:0;:41;16938:13;:6;16949:1;16938:10;:13::i;:::-;16911:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16758:202;:::o;8642:253::-;8710:7;8749;;8738;:18;;8730:72;;;;-1:-1:-1;;;8730:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8813:19;8835:10;:8;:10::i;:::-;8813:32;-1:-1:-1;8863:24:0;:7;8813:32;8863:11;:24::i;:::-;8856:31;8642:253;-1:-1:-1;;;8642:253:0:o;16346:404::-;5112:6;:13;;-1:-1:-1;;;;5112:13:0;-1:-1:-1;;;5112:13:0;;;16448:16:::1;::::0;;16462:1:::1;16448:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16448:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16448:16:0::1;16424:40;;16493:4;16475;16480:1;16475:7;;;;;;;;-1:-1:-1::0;;;;;16475:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16519:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;16519:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;16475:7;;16519:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16519:21:0;16509:7;;:4;;16514:1:::1;::::0;16509:7;::::1;;;;;-1:-1:-1::0;;;;;16509:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;16583:14:::1;::::0;16551:61:::1;::::0;16568:4:::1;::::0;16583:14:::1;16600:11:::0;16551:8:::1;:61::i;:::-;16623:14;::::0;:119:::1;::::0;-1:-1:-1;;;16623:119:0;;::::1;::::0;::::1;::::0;;;:14:::1;:119:::0;;;;;;16719:4:::1;16623:119:::0;;;;;;16726:15:::1;16623:119:::0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16623:14:0;;::::1;::::0;:65:::1;::::0;16689:11;;16705:4;;16719;16726:15;16623:119;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:14;:119:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5148:6:0;:14;;-1:-1:-1;;;;5148:14:0;;;-1:-1:-1;;;;16346:404:0:o;1436:246::-;1494:7;1518:6;1514:47;;-1:-1:-1;1548:1:0;1541:8;;1514:47;1583:5;;;1587:1;1583;:5;:1;1607:5;;;;;:10;1599:56;;;;-1:-1:-1;;;1599:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:132;1748:7;1775:39;1779:1;1782;1775:39;;;;;;;;;;;;;;;;;:3;:39::i;12680:190::-;12749:11;;:27;;12765:10;12749:15;:27::i;:::-;12735:11;:41;12800:10;;:26;;12815:10;12800:14;:26::i;:::-;12787:10;:39;-1:-1:-1;12853:1:0;12837:13;:17;12680:190::o;12878:239::-;12991:7;12986:28;;13000:14;:12;:14::i;:::-;13025:44;13043:6;13051:9;13062:6;13025:17;:44::i;:::-;13085:7;13080:29;;13094:15;12606:1;12592:11;:15;;;12618:13;:17;12659:1;12646:10;:14;12548:120::o;15909:164::-;15951:7;15972:15;15989;16008:19;:17;:19::i;:::-;15971:56;;-1:-1:-1;15971:56:0;-1:-1:-1;16045:20:0;15971:56;;16045:11;:20::i;:::-;16038:27;;;;15909:164;:::o;1830:189::-;1916:7;1951:12;1944:5;1936:28;;;;-1:-1:-1;;;1936:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:9;1991:1;1987;:5;;;;;;;1830:189;-1:-1:-1;;;;;1830:189:0:o;12341:199::-;12388:11;;:16;:38;;;;-1:-1:-1;12408:13:0;;:18;12388:38;:57;;;;-1:-1:-1;12430:10:0;;:15;12388:57;12384:70;;;12447:7;;12384:70;12478:1;12464:11;:15;;;12490:13;:17;;;12518:10;:14;12341:199;:::o;13123:575::-;13221:15;13238:13;13255:21;13269:6;13255:13;:21::i;:::-;13220:56;;;;13288:15;13305:23;13330:12;13344:23;13369:12;13383:18;13405:26;13416:7;13425:5;13405:10;:26::i;:::-;13287:144;;;;;;;;;;;;13460:28;13480:7;13460;:15;13468:6;-1:-1:-1;;;;;13460:15:0;-1:-1:-1;;;;;13460:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;13442:15:0;;;;;;;:7;:15;;;;;;:46;;;;13520:18;;;;;;;:39;;13543:15;13520:22;:39::i;:::-;-1:-1:-1;;;;;13499:18:0;;;;;;:7;:18;;;;;:60;13570:26;13585:10;13570:14;:26::i;:::-;13607:23;13619:4;13625;13607:11;:23::i;:::-;13663:9;-1:-1:-1;;;;;13646:44:0;13655:6;-1:-1:-1;;;;;13646:44:0;;13674:15;13646:44;;;;;;;;;;;;;;;;;;13123:575;;;;;;;;;;;:::o;16081:257::-;16179:7;;16215;;16132;;;;16247:20;16179:7;16215;16247:11;:20::i;:::-;16237:7;:30;16233:61;;;16277:7;;16286;;16269:25;;;;;;;;16233:61;16313:7;;-1:-1:-1;16322:7:0;-1:-1:-1;16081:257:0;;;:::o;13950:424::-;14003:4;;14045:6;14003:4;14084:10;:8;:10::i;:::-;14062:32;;14105:13;14121:31;14148:3;14121:22;14132:10;;14121:6;:10;;:22;;;;:::i;:31::-;14105:47;-1:-1:-1;14163:13:0;14179:22;14105:47;14189:11;14179:9;:22::i;:::-;14222:7;;14163:38;;-1:-1:-1;14222:18:0;;14234:5;14222:11;:18::i;:::-;14212:7;:28;14261:7;;:18;;14273:5;14261:11;:18::i;:::-;14251:7;:28;14306:13;;:24;;14324:5;14306:17;:24::i;:::-;14290:13;:40;-1:-1:-1;14349:9:0;;-1:-1:-1;14360:5:0;;-1:-1:-1;;13950:424:0;;;:::o;14541:513::-;14615:7;14624;14633;14642;14651;14660;14681:23;14706:12;14720:18;14742:55;14754:7;14763:11;;14776:13;;14791:5;14742:11;:55::i;:::-;14680:117;;;;;;14808:19;14830:10;:8;:10::i;:::-;14808:32;;14852:15;14869:23;14894:12;14910:51;14922:7;14931:4;14937:10;14949:11;14910;:51::i;:::-;14851:110;;-1:-1:-1;14851:110:0;-1:-1:-1;14851:110:0;-1:-1:-1;15012:15:0;;-1:-1:-1;15029:4:0;;-1:-1:-1;15035:10:0;;-1:-1:-1;;;;;14541:513:0;;;;;;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;907:179::-;965:7;997:5;;;1021:6;;;;1013:46;;;;;-1:-1:-1;;;1013:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13706:236;13769:19;13791:10;:8;:10::i;:::-;13769:32;-1:-1:-1;13812:18:0;13833:27;:10;13769:32;13833:14;:27::i;:::-;13912:4;13896:22;;;;:7;:22;;;;;;13812:48;;-1:-1:-1;13896:38:0;;13812:48;13896:26;:38::i;:::-;13887:4;13871:22;;;;:7;:22;;;;;:63;-1:-1:-1;;;13706:236:0:o;14386:147::-;14464:7;;:17;;14476:4;14464:11;:17::i;:::-;14454:7;:27;14505:10;;:20;;14520:4;14505:14;:20::i;:::-;14492:10;:33;-1:-1:-1;;14386:147:0:o;15062:402::-;15175:7;;;;15228:28;15252:3;15228:19;:7;15240:6;15228:11;:19::i;:28::-;15213:43;-1:-1:-1;15267:18:0;15288:34;15318:3;15288:25;:7;15300:12;15288:11;:25::i;:34::-;15267:55;-1:-1:-1;15333:23:0;15359:44;15397:5;15359:33;15267:55;15359:33;:7;15371:4;15359:11;:17::i;:::-;:21;;:33::i;:44::-;15333:70;15439:4;;-1:-1:-1;15445:10:0;;-1:-1:-1;15062:402:0;;-1:-1:-1;;;;;;15062:402:0:o;15472:429::-;15587:7;;;;15643:24;:7;15655:11;15643;:24::i;:::-;15625:42;-1:-1:-1;15678:12:0;15693:21;:4;15702:11;15693:8;:21::i;:::-;15678:36;-1:-1:-1;15725:18:0;15746:27;:10;15761:11;15746:14;:27::i;:::-;15725:48;-1:-1:-1;15784:23:0;15810:33;15725:48;15810:17;:7;15822:4;15810:11;:17::i;:33::-;15862:7;;;;-1:-1:-1;15888:4:0;;-1:-1:-1;15472:429:0;;-1:-1:-1;;;;;;;15472:429:0:o

Swarm Source

ipfs://8bea8a4276c6df86232e862585c7b1b9b9af88c9db91c25ee59a119ac5ea3500
Loading