ETH Price: $3,417.70 (-6.44%)

Token

QUATERNION (QTN)
 

Overview

Max Total Supply

231,530,060.573419735418600631 QTN

Holders

145

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,629.610551357178965907 QTN

Value
$0.00
0x1752AD40E3e6B821977c8FCC759f10f2CE0F5e3E
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Quaternion is a NFT-orientated full-stack B2B and B2C service provider in the greater blockchain world. QTN is a ERC20 token with zero-fees and a RFI protocol that has 10.101% reflections.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
QUATERNION

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-26
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.6.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        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);
}

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;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

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

} 

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

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

contract QUATERNION is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    string private _name = 'QUATERNION';
    string private _symbol = 'QTN';
    uint8 private _decimals = 18;
    
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1 * 1e7 * 1e18;
    uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    
    uint256 public constant MAG = 10 ** 18;
    uint256 public  rateOfChange = MAG;

    uint256 private _totalSupply;
    uint256 public _gonsPerFragment;
    
    mapping(address => uint256) public _gonBalances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => bool) public blacklist;
    mapping (address => uint256) public _buyInfo;

    uint256 public _percentForTxLimit = 2; //2% of total supply;
    uint256 public _percentForRebase = 5; //5% of total supply;
    uint256 public _timeLimitFromLastBuy = 5 minutes;
    
    uint256 private uniswapV2PairAmount;
    
    bool public _live = false;
    
    
    constructor () public {
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[_msgSender()] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
        
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        if(account == uniswapV2Pair)
            return uniswapV2PairAmount;
        return _gonBalances[account].div(_gonsPerFragment);
    }

    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 rebasePlus(uint256 _amount) private {
         _totalSupply = _totalSupply.add(_amount.div(5));
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    }

    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, "ERC20: Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {
            uint256 txLimitAmount = _totalSupply.mul(_percentForTxLimit).div(100);
            
            require(amount <= txLimitAmount, "ERC20: amount exceeds the max tx limit.");
            
            if(from != uniswapV2Pair) {
                require(!blacklist[from] && !blacklist[to], 'ERC20: the transaction was blocked.');
                require(_buyInfo[from] == 0 || _buyInfo[from].add(_timeLimitFromLastBuy) < now, "ERC20: Tx not allowed yet.");
                
                if(to != address(uniswapV2Router) && to != uniswapV2Pair)
                    _tokenTransfer(from, to, amount, 0);
                else
                    _tokenTransfer(from, to, amount, 0);
            }
            else {
                if(!_live)
                    blacklist[to] = true;
                
                require(balanceOf(to) <= txLimitAmount, 'ERC20: current balance exceeds the max limit.');
                
                _buyInfo[to] = now;
                _tokenTransfer(from, to, amount, 0);

                uint256 rebaseLimitAmount = _totalSupply.mul(_percentForRebase).div(100);
                uint256 currentBalance = balanceOf(to);
                uint256 newBalance = currentBalance.add(amount);
                if(currentBalance < rebaseLimitAmount && newBalance < rebaseLimitAmount) {
                    rebasePlus(amount);
                }
            }
        } else {
            _tokenTransfer(from, to, amount, 0);
        }
    }
    
    function _tokenTransfer(address from, address to, uint256 amount, uint256 taxFee) internal {
        if(to == uniswapV2Pair)
            uniswapV2PairAmount = uniswapV2PairAmount.add(amount);
        else if(from == uniswapV2Pair)
            uniswapV2PairAmount = uniswapV2PairAmount.sub(amount);
        
        uint256 burnAmount = amount.mul(taxFee).div(100);
        uint256 transferAmount = amount.sub(burnAmount);
        
        uint256 gonTotalValue = amount.mul(_gonsPerFragment);
        uint256 gonValue = transferAmount.mul(_gonsPerFragment);
        
        _gonBalances[from] = _gonBalances[from].sub(gonTotalValue);
        _gonBalances[to] = _gonBalances[to].add(gonValue);
        
        emit Transfer(from, to, transferAmount);
        
        if(burnAmount > 0)
            emit Transfer(from, address(0x0), burnAmount);
    }
    
    function updateLive() external {
        if(!_live) {
            _live = true;
        }
    }
    
    function unblockWallet(address account) public onlyOwner {
        blacklist[account] = false;
    }
    
    function updatePercentForTxLimit(uint256 percentForTxLimit) public onlyOwner {
        require(percentForTxLimit >= 1, 'ERC20: max tx limit should be greater than 1');
        _percentForTxLimit = percentForTxLimit;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAG","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_gonBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_gonsPerFragment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentForRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentForTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_timeLimitFromLastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateOfChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblockWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentForTxLimit","type":"uint256"}],"name":"updatePercentForTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600a81526020017f5155415445524e494f4e000000000000000000000000000000000000000000008152506004908051906020019062000051929190620006b4565b506040518060400160405280600381526020017f51544e0000000000000000000000000000000000000000000000000000000000815250600590805190602001906200009f929190620006b4565b506012600660006101000a81548160ff021916908360ff160217905550670de0b6b3a76400006007556002600e556005600f5561012c6010556000601260006101000a81548160ff0219169083151502179055503480156200010057600080fd5b506000620001136200058f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506a084595161401484a0000006008819055506a084595161401484a00000060001981620001da57fe5b0660001903600a6000620001f36200058f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002686008546a084595161401484a000000600019816200024f57fe5b06600019036200059760201b620010bc1790919060201c565b600981905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d60208110156200035857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ee57600080fd5b505afa15801562000403573d6000803e3d6000fd5b505050506040513d60208110156200041a57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200049557600080fd5b505af1158015620004aa573d6000803e3d6000fd5b505050506040513d6020811015620004c157600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005226200058f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a36200075a565b600033905090565b6000620005e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005e960201b60201c565b905092915050565b6000808311829062000699576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200065d57808201518184015260208101905062000640565b50505050905090810190601f1680156200068b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620006a657fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006f757805160ff191683800117855562000728565b8280016001018555821562000728579182015b82811115620007275782518255916020019190600101906200070a565b5b5090506200073791906200073b565b5090565b5b80821115620007565760008160009055506001016200073c565b5090565b6122d6806200076a6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063c4996f5111610097578063e679e27c11610071578063e679e27c1461071a578063ed82193c14610738578063f9f92be414610790578063fd2dbb0e146107ea5761018e565b8063c4996f5114610656578063c82a8fed14610674578063dd62ed3e146106a25761018e565b8063715018a6146104f55780638da5cb5b146104ff57806395d89b4114610533578063a9059cbb146105b6578063bce87b331461061a578063bef18a19146106385761018e565b8063313ce5671161014b5780634c4be8a6116101255780634c4be8a61461044157806356e0ec721461045f5780636b0a26d21461047f57806370a082311461049d5761018e565b8063313ce5671461039457806336fed975146103b557806349bd5a5e1461040d5761018e565b806306fdde0314610193578063095ea7b3146102165780631694505e1461027a57806318160ddd146102ae5780631c8e1179146102cc57806323b872dd14610310575b600080fd5b61019b6107f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610896565b60405180821515815260200191505060405180910390f35b6102826108b4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b66108da565b6040518082815260200191505060405180910390f35b61030e600480360360208110156102e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e4565b005b61037c6004803603606081101561032657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a07565b60405180821515815260200191505060405180910390f35b61039c610ae0565b604051808260ff16815260200191505060405180910390f35b6103f7600480360360208110156103cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af7565b6040518082815260200191505060405180910390f35b610415610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610449610b35565b6040518082815260200191505060405180910390f35b610467610b41565b60405180821515815260200191505060405180910390f35b610487610b54565b6040518082815260200191505060405180910390f35b6104df600480360360208110156104b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5a565b6040518082815260200191505060405180910390f35b6104fd610c18565b005b610507610d9e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053b610dc7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057b578082015181840152602081019050610560565b50505050905090810190601f1680156105a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610602600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e69565b60405180821515815260200191505060405180910390f35b610622610e87565b6040518082815260200191505060405180910390f35b610640610e8d565b6040518082815260200191505060405180910390f35b61065e610e93565b6040518082815260200191505060405180910390f35b6106a06004803603602081101561068a57600080fd5b8101908080359060200190929190505050610e99565b005b610704600480360360408110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc5565b6040518082815260200191505060405180910390f35b61072261104c565b6040518082815260200191505060405180910390f35b61077a6004803603602081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611052565b6040518082815260200191505060405180910390f35b6107d2600480360360208110156107a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180821515815260200191505060405180910390f35b6107f261108a565b005b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b5050505050905090565b60006108aa6108a3611106565b848461110e565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b6108ec611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610a14848484611305565b610ad584610a20611106565b610ad08560405180606001604052806028815260200161220d60289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a86611106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4d9092919063ffffffff16565b61110e565b600190509392505050565b6000600660009054906101000a900460ff16905090565b600a6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000081565b601260009054906101000a900460ff1681565b60075481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bbc576011549050610c13565b610c10600954600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110bc90919063ffffffff16565b90505b919050565b610c20611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e5f5780601f10610e3457610100808354040283529160200191610e5f565b820191906000526020600020905b815481529060010190602001808311610e4257829003601f168201915b5050505050905090565b6000610e7d610e76611106565b8484611305565b6001905092915050565b600e5481565b600f5481565b60095481565b610ea1611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001811015610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121c0602c913960400191505060405180910390fd5b80600e8190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b600d6020528060005260406000206000915090505481565b600c6020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900460ff166110ba576001601260006101000a81548160ff0219169083151502179055505b565b60006110fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b0d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061227d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061219e6022913960400191505060405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806122586025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120f76023913960400191505060405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061216e6030913960400191505060405180910390fd5b611472610d9e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114e057506114b0610d9e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a5760006115116064611503600e54600854611bd390919063ffffffff16565b6110bc90919063ffffffff16565b90508082111561156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806121476027913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118a257600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116655750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806122356023913960400191505060405180910390fd5b6000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061175a575042611758601054600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c5990919063ffffffff16565b105b6117cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f45524332303a205478206e6f7420616c6c6f776564207965742e00000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118785750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561188f5761188a8484846000611ce1565b61189d565b61189c8484846000611ce1565b5b611a34565b601260009054906101000a900460ff1661190f576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061191984610b5a565b1115611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061211a602d913960400191505060405180910390fd5b42600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c18484846000611ce1565b60006119ed60646119df600f54600854611bd390919063ffffffff16565b6110bc90919063ffffffff16565b905060006119fa85610b5a565b90506000611a118583611c5990919063ffffffff16565b90508282108015611a2157508281105b15611a3057611a2f85612046565b5b5050505b50611a48565b611a478383836000611ce1565b5b505050565b6000838311158290611afa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611abf578082015181840152602081019050611aa4565b50505050905090810190601f168015611aec5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7e578082015181840152602081019050611b63565b50505050905090810190601f168015611bab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bc557fe5b049050809150509392505050565b600080831415611be65760009050611c53565b6000828402905082848281611bf757fe5b0414611c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121ec6021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611cd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d5757611d4c82601154611c5990919063ffffffff16565b601181905550611dca565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611dc957611dc2826011546120ac90919063ffffffff16565b6011819055505b5b6000611df26064611de48486611bd390919063ffffffff16565b6110bc90919063ffffffff16565b90506000611e0982856120ac90919063ffffffff16565b90506000611e2260095486611bd390919063ffffffff16565b90506000611e3b60095484611bd390919063ffffffff16565b9050611e8f82600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2481600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c5990919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600084111561203c57600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35b5050505050505050565b61206e61205d6005836110bc90919063ffffffff16565b600854611c5990919063ffffffff16565b6008819055506120a36008546a084595161401484a0000006000198161209057fe5b06600019036110bc90919063ffffffff16565b60098190555050565b60006120ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4d565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a2063757272656e742062616c616e6365206578636565647320746865206d6178206c696d69742e45524332303a20616d6f756e74206578636565647320746865206d6178207478206c696d69742e45524332303a205472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206d6178207478206c696d69742073686f756c642062652067726561746572207468616e2031536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20746865207472616e73616374696f6e2077617320626c6f636b65642e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220bb85bba13d353f37a5c8f2fe492e7a934d78f36e759d33e3d85b3759bb5cc7b964736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063c4996f5111610097578063e679e27c11610071578063e679e27c1461071a578063ed82193c14610738578063f9f92be414610790578063fd2dbb0e146107ea5761018e565b8063c4996f5114610656578063c82a8fed14610674578063dd62ed3e146106a25761018e565b8063715018a6146104f55780638da5cb5b146104ff57806395d89b4114610533578063a9059cbb146105b6578063bce87b331461061a578063bef18a19146106385761018e565b8063313ce5671161014b5780634c4be8a6116101255780634c4be8a61461044157806356e0ec721461045f5780636b0a26d21461047f57806370a082311461049d5761018e565b8063313ce5671461039457806336fed975146103b557806349bd5a5e1461040d5761018e565b806306fdde0314610193578063095ea7b3146102165780631694505e1461027a57806318160ddd146102ae5780631c8e1179146102cc57806323b872dd14610310575b600080fd5b61019b6107f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610896565b60405180821515815260200191505060405180910390f35b6102826108b4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b66108da565b6040518082815260200191505060405180910390f35b61030e600480360360208110156102e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e4565b005b61037c6004803603606081101561032657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a07565b60405180821515815260200191505060405180910390f35b61039c610ae0565b604051808260ff16815260200191505060405180910390f35b6103f7600480360360208110156103cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af7565b6040518082815260200191505060405180910390f35b610415610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610449610b35565b6040518082815260200191505060405180910390f35b610467610b41565b60405180821515815260200191505060405180910390f35b610487610b54565b6040518082815260200191505060405180910390f35b6104df600480360360208110156104b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5a565b6040518082815260200191505060405180910390f35b6104fd610c18565b005b610507610d9e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053b610dc7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057b578082015181840152602081019050610560565b50505050905090810190601f1680156105a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610602600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e69565b60405180821515815260200191505060405180910390f35b610622610e87565b6040518082815260200191505060405180910390f35b610640610e8d565b6040518082815260200191505060405180910390f35b61065e610e93565b6040518082815260200191505060405180910390f35b6106a06004803603602081101561068a57600080fd5b8101908080359060200190929190505050610e99565b005b610704600480360360408110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc5565b6040518082815260200191505060405180910390f35b61072261104c565b6040518082815260200191505060405180910390f35b61077a6004803603602081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611052565b6040518082815260200191505060405180910390f35b6107d2600480360360208110156107a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180821515815260200191505060405180910390f35b6107f261108a565b005b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b5050505050905090565b60006108aa6108a3611106565b848461110e565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b6108ec611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610a14848484611305565b610ad584610a20611106565b610ad08560405180606001604052806028815260200161220d60289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a86611106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4d9092919063ffffffff16565b61110e565b600190509392505050565b6000600660009054906101000a900460ff16905090565b600a6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000081565b601260009054906101000a900460ff1681565b60075481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bbc576011549050610c13565b610c10600954600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110bc90919063ffffffff16565b90505b919050565b610c20611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e5f5780601f10610e3457610100808354040283529160200191610e5f565b820191906000526020600020905b815481529060010190602001808311610e4257829003601f168201915b5050505050905090565b6000610e7d610e76611106565b8484611305565b6001905092915050565b600e5481565b600f5481565b60095481565b610ea1611106565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001811015610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121c0602c913960400191505060405180910390fd5b80600e8190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b600d6020528060005260406000206000915090505481565b600c6020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900460ff166110ba576001601260006101000a81548160ff0219169083151502179055505b565b60006110fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b0d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061227d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061219e6022913960400191505060405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806122586025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120f76023913960400191505060405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061216e6030913960400191505060405180910390fd5b611472610d9e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114e057506114b0610d9e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a5760006115116064611503600e54600854611bd390919063ffffffff16565b6110bc90919063ffffffff16565b90508082111561156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806121476027913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118a257600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116655750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806122356023913960400191505060405180910390fd5b6000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061175a575042611758601054600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c5990919063ffffffff16565b105b6117cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f45524332303a205478206e6f7420616c6c6f776564207965742e00000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118785750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561188f5761188a8484846000611ce1565b61189d565b61189c8484846000611ce1565b5b611a34565b601260009054906101000a900460ff1661190f576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8061191984610b5a565b1115611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061211a602d913960400191505060405180910390fd5b42600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c18484846000611ce1565b60006119ed60646119df600f54600854611bd390919063ffffffff16565b6110bc90919063ffffffff16565b905060006119fa85610b5a565b90506000611a118583611c5990919063ffffffff16565b90508282108015611a2157508281105b15611a3057611a2f85612046565b5b5050505b50611a48565b611a478383836000611ce1565b5b505050565b6000838311158290611afa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611abf578082015181840152602081019050611aa4565b50505050905090810190601f168015611aec5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7e578082015181840152602081019050611b63565b50505050905090810190601f168015611bab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bc557fe5b049050809150509392505050565b600080831415611be65760009050611c53565b6000828402905082848281611bf757fe5b0414611c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121ec6021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611cd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d5757611d4c82601154611c5990919063ffffffff16565b601181905550611dca565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611dc957611dc2826011546120ac90919063ffffffff16565b6011819055505b5b6000611df26064611de48486611bd390919063ffffffff16565b6110bc90919063ffffffff16565b90506000611e0982856120ac90919063ffffffff16565b90506000611e2260095486611bd390919063ffffffff16565b90506000611e3b60095484611bd390919063ffffffff16565b9050611e8f82600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2481600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c5990919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600084111561203c57600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35b5050505050505050565b61206e61205d6005836110bc90919063ffffffff16565b600854611c5990919063ffffffff16565b6008819055506120a36008546a084595161401484a0000006000198161209057fe5b06600019036110bc90919063ffffffff16565b60098190555050565b60006120ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4d565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a2063757272656e742062616c616e6365206578636565647320746865206d6178206c696d69742e45524332303a20616d6f756e74206578636565647320746865206d6178207478206c696d69742e45524332303a205472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206d6178207478206c696d69742073686f756c642062652067726561746572207468616e2031536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20746865207472616e73616374696f6e2077617320626c6f636b65642e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220bb85bba13d353f37a5c8f2fe492e7a934d78f36e759d33e3d85b3759bb5cc7b964736f6c634300060c0033

Deployed Bytecode Sourcemap

6282:6921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8018:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8960:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6408:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8295:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12862:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9129:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8204:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7019:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6456:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6852:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7490:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6897:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8403:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5362:148;;;:::i;:::-;;5148:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8109:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8634:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7250:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7316:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6975:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12976:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8809:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7381:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7197:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7149:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12751:99;;;:::i;:::-;;8018:83;8055:13;8088:5;8081:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8018:83;:::o;8960:161::-;9035:4;9052:39;9061:12;:10;:12::i;:::-;9075:7;9084:6;9052:8;:39::i;:::-;9109:4;9102:11;;8960:161;;;;:::o;6408:41::-;;;;;;;;;;;;;:::o;8295:100::-;8348:7;8375:12;;8368:19;;8295:100;:::o;12862:102::-;5285:12;:10;:12::i;:::-;5275:22;;:6;;;;;;;;;;:22;;;5267:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:5:::1;12930:9;:18;12940:7;12930:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12862:102:::0;:::o;9129:313::-;9227:4;9244:36;9254:6;9262:9;9273:6;9244:9;:36::i;:::-;9291:121;9300:6;9308:12;:10;:12::i;:::-;9322:89;9360:6;9322:89;;;;;;;;;;;;;;;;;:11;:19;9334:6;9322:19;;;;;;;;;;;;;;;:33;9342:12;:10;:12::i;:::-;9322:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9291:8;:121::i;:::-;9430:4;9423:11;;9129:313;;;;;:::o;8204:83::-;8245:5;8270:9;;;;;;;;;;;8263:16;;8204:83;:::o;7019:47::-;;;;;;;;;;;;;;;;;:::o;6456:28::-;;;;;;;;;;;;;:::o;6852:38::-;6882:8;6852:38;:::o;7490:25::-;;;;;;;;;;;;;:::o;6897:34::-;;;;:::o;8403:223::-;8469:7;8503:13;;;;;;;;;;;8492:24;;:7;:24;;;8489:68;;;8538:19;;8531:26;;;;8489:68;8575:43;8601:16;;8575:12;:21;8588:7;8575:21;;;;;;;;;;;;;;;;:25;;:43;;;;:::i;:::-;8568:50;;8403:223;;;;:::o;5362:148::-;5285:12;:10;:12::i;:::-;5275:22;;:6;;;;;;;;;;:22;;;5267:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:1:::1;5432:40;;5453:6;::::0;::::1;;;;;;;;5432:40;;;;;;;;;;;;5500:1;5483:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5362:148::o:0;5148:79::-;5186:7;5213:6;;;;;;;;;;;5206:13;;5148:79;:::o;8109:87::-;8148:13;8181:7;8174:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8109:87;:::o;8634:167::-;8712:4;8729:42;8739:12;:10;:12::i;:::-;8753:9;8764:6;8729:9;:42::i;:::-;8789:4;8782:11;;8634:167;;;;:::o;7250:37::-;;;;:::o;7316:36::-;;;;:::o;6975:31::-;;;;:::o;12976:224::-;5285:12;:10;:12::i;:::-;5275:22;;:6;;;;;;;;;;:22;;;5267:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13093:1:::1;13072:17;:22;;13064:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:17;13154:18;:38;;;;12976:224:::0;:::o;8809:143::-;8890:7;8917:11;:18;8929:5;8917:18;;;;;;;;;;;;;;;:27;8936:7;8917:27;;;;;;;;;;;;;;;;8910:34;;8809:143;;;;:::o;7381:48::-;;;;:::o;7197:44::-;;;;;;;;;;;;;;;;;:::o;7149:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;12751:99::-;12797:5;;;;;;;;;;;12793:50;;12827:4;12819:5;;:12;;;;;;;;;;;;;;;;;;12793:50;12751:99::o;1821:132::-;1879:7;1906:39;1910:1;1913;1906:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1899:46;;1821:132;;;;:::o;102:106::-;155:15;190:10;183:17;;102:106;:::o;9454:335::-;9564:1;9547:19;;:5;:19;;;;9539:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9645:1;9626:21;;:7;:21;;;;9618:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9727:6;9697:11;:18;9709:5;9697:18;;;;;;;;;;;;;;;:27;9716:7;9697:27;;;;;;;;;;;;;;;:36;;;;9765:7;9749:32;;9758:5;9749:32;;;9774:6;9749:32;;;;;;;;;;;;;;;;;;9454:335;;;:::o;9979:1877::-;10083:1;10067:18;;:4;:18;;;;10059:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10160:1;10146:16;;:2;:16;;;;10138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10230:1;10221:6;:10;10213:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:7;:5;:7::i;:::-;10309:15;;:4;:15;;;;:32;;;;;10334:7;:5;:7::i;:::-;10328:13;;:2;:13;;;;10309:32;10305:1544;;;10358:21;10382:45;10423:3;10382:36;10399:18;;10382:12;;:16;;:36;;;;:::i;:::-;:40;;:45;;;;:::i;:::-;10358:69;;10474:13;10464:6;:23;;10456:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10571:13;;;;;;;;;;;10563:21;;:4;:21;;;10560:1210;;10614:9;:15;10624:4;10614:15;;;;;;;;;;;;;;;;;;;;;;;;;10613:16;:34;;;;;10634:9;:13;10644:2;10634:13;;;;;;;;;;;;;;;;;;;;;;;;;10633:14;10613:34;10605:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10732:1;10714:8;:14;10723:4;10714:14;;;;;;;;;;;;;;;;:19;:70;;;;10781:3;10737:41;10756:21;;10737:8;:14;10746:4;10737:14;;;;;;;;;;;;;;;;:18;;:41;;;;:::i;:::-;:47;10714:70;10706:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10869:15;;;;;;;;;;;10855:30;;:2;:30;;;;:53;;;;;10895:13;;;;;;;;;;;10889:19;;:2;:19;;;;10855:53;10852:194;;;10931:35;10946:4;10952:2;10956:6;10964:1;10931:14;:35::i;:::-;10852:194;;;11011:35;11026:4;11032:2;11036:6;11044:1;11011:14;:35::i;:::-;10852:194;10560:1210;;;11104:5;;;;;;;;;;;11100:52;;11148:4;11132:9;:13;11142:2;11132:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11100:52;11214:13;11197;11207:2;11197:9;:13::i;:::-;:30;;11189:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11329:3;11314:8;:12;11323:2;11314:12;;;;;;;;;;;;;;;:18;;;;11351:35;11366:4;11372:2;11376:6;11384:1;11351:14;:35::i;:::-;11407:25;11435:44;11475:3;11435:35;11452:17;;11435:12;;:16;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;11407:72;;11498:22;11523:13;11533:2;11523:9;:13::i;:::-;11498:38;;11555:18;11576:26;11595:6;11576:14;:18;;:26;;;;:::i;:::-;11555:47;;11641:17;11624:14;:34;:68;;;;;11675:17;11662:10;:30;11624:68;11621:134;;;11717:18;11728:6;11717:10;:18::i;:::-;11621:134;10560:1210;;;;10305:1544;;;;11802:35;11817:4;11823:2;11827:6;11835:1;11802:14;:35::i;:::-;10305:1544;9979:1877;;;:::o;1369:190::-;1455:7;1488:1;1483;:6;;1491:12;1475:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1515:9;1531:1;1527;:5;1515:17;;1550:1;1543:8;;;1369:190;;;;;:::o;1961:189::-;2047:7;2079:1;2075;:5;2082:12;2067:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2106:9;2122:1;2118;:5;;;;;;2106:17;;2141:1;2134:8;;;1961:189;;;;;:::o;1567:246::-;1625:7;1654:1;1649;:6;1645:47;;;1679:1;1672:8;;;;1645:47;1702:9;1718:1;1714;:5;1702:17;;1747:1;1742;1738;:5;;;;;;:10;1730:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:1;1797:8;;;1567:246;;;;;:::o;1038:179::-;1096:7;1116:9;1132:1;1128;:5;1116:17;;1157:1;1152;:6;;1144:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1208:1;1201:8;;;1038:179;;;;:::o;11868:871::-;11979:13;;;;;;;;;;;11973:19;;:2;:19;;;11970:198;;;12029:31;12053:6;12029:19;;:23;;:31;;;;:::i;:::-;12007:19;:53;;;;11970:198;;;12087:13;;;;;;;;;;;12079:21;;:4;:21;;;12076:92;;;12137:31;12161:6;12137:19;;:23;;:31;;;;:::i;:::-;12115:19;:53;;;;12076:92;11970:198;12189:18;12210:27;12233:3;12210:18;12221:6;12210;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;12189:48;;12248:22;12273;12284:10;12273:6;:10;;:22;;;;:::i;:::-;12248:47;;12316:21;12340:28;12351:16;;12340:6;:10;;:28;;;;:::i;:::-;12316:52;;12379:16;12398:36;12417:16;;12398:14;:18;;:36;;;;:::i;:::-;12379:55;;12476:37;12499:13;12476:12;:18;12489:4;12476:18;;;;;;;;;;;;;;;;:22;;:37;;;;:::i;:::-;12455:12;:18;12468:4;12455:18;;;;;;;;;;;;;;;:58;;;;12543:30;12564:8;12543:12;:16;12556:2;12543:16;;;;;;;;;;;;;;;;:20;;:30;;;;:::i;:::-;12524:12;:16;12537:2;12524:16;;;;;;;;;;;;;;;:49;;;;12614:2;12599:34;;12608:4;12599:34;;;12618:14;12599:34;;;;;;;;;;;;;;;;;;12670:1;12657:10;:14;12654:77;;;12714:3;12691:40;;12700:4;12691:40;;;12720:10;12691:40;;;;;;;;;;;;;;;;;;12654:77;11868:871;;;;;;;;:::o;9801:170::-;9873:32;9890:14;9902:1;9890:7;:11;;:14;;;;:::i;:::-;9873:12;;:16;;:32;;;;:::i;:::-;9858:12;:47;;;;9935:28;9950:12;;6726:14;6665:1;6656:11;6800:38;;;;;;6665:1;6656:11;6785:54;9935:14;;:28;;;;:::i;:::-;9916:16;:47;;;;9801:170;:::o;1225:136::-;1283:7;1310:43;1314:1;1317;1310:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1303:50;;1225:136;;;;:::o

Swarm Source

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