ETH Price: $3,173.44 (-1.18%)
Gas: 10 Gwei

Token

RFYIELD.FINANCE (RFY)
 

Overview

Max Total Supply

1,000,000 RFY

Holders

329 (0.00%)

Total Transfers

-

Market

Price

$0.01 @ 0.000003 ETH (-0.01%)

Onchain Market Cap

$9,599.22

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

OVERVIEW

RFYield is an RFI fork with increasing yield percentages and an ecosystem built around hold yield farming with an option to use traditional staking.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RFY

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 2020-12-21
*/

/**
 *Submitted for verification at Etherscan.io on 2020-12-07
*/

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;
        // solhint-disable-next-line no-inline-assembly
        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");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
contract Ownable is Context {
    address private _owner;

    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);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

/*
 * Copyright 2020 reflect.finance. ALL RIGHTS RESERVED.
 */
 
/*
 * forked 2020 reflectreflect.finance. NO RIGHTS RESERVED.
 */

pragma solidity ^0.6.2;






contract RFY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'RFYIELD.FINANCE';
    string private _symbol = 'RFY';
    uint8 private _decimals = 9;
    
    uint private _transactionFee = 1;

    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount, _transactionFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }
    
    function _amendFee(uint256 tFeeAmended) external onlyOwner{
        require(tFeeAmended < 8, "Tax cannot be greater than 7 percent");
        _transactionFee = tFeeAmended;
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
    
    function _getTransactionFee() public view returns(uint256) {
        return _transactionFee;
    }


    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"tFeeAmended","type":"uint256"}],"name":"_amendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_getTransactionFee","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","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":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405266038d7ea4c68000600019816200001757fe5b06600019036006556040518060400160405280600f81526020017f52465949454c442e46494e414e43450000000000000000000000000000000000815250600890805190602001906200006c92919062000279565b506040518060400160405280600381526020017f524659000000000000000000000000000000000000000000000000000000000081525060099080519060200190620000ba92919062000279565b506009600a60006101000a81548160ff021916908360ff1602179055506001600b55348015620000e957600080fd5b506000620000fc6200027160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460016000620001b16200027160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001ff6200027160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040518082815260200191505060405180910390a36200031f565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002bc57805160ff1916838001178555620002ed565b82800160010185558215620002ed579182015b82811115620002ec578251825591602001919060010190620002cf565b5b509050620002fc919062000300565b5090565b5b808211156200031b57600081600090555060010162000301565b5090565b613516806200032f6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063b95079d41161007c578063b95079d41461063b578063cba0e99614610669578063dd62ed3e146106c3578063f2cc0c181461073b578063f2fde38b1461077f578063f84354f1146107c35761014d565b8063715018a6146104945780638da5cb5b1461049e578063931f6cd8146104d257806395d89b41146104f0578063a457c2d714610573578063a9059cbb146105d75761014d565b806323b872dd1161011557806323b872dd146102a35780632d83811914610327578063313ce56714610369578063395093511461038a5780634549b039146103ee57806370a082311461043c5761014d565b8063053ab1821461015257806306fdde0314610180578063095ea7b31461020357806313114a9d1461026757806318160ddd14610285575b600080fd5b61017e6004803603602081101561016857600080fd5b8101908080359060200190929190505050610807565b005b610188610997565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c85780820151818401526020810190506101ad565b50505050905090810190601f1680156101f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024f6004803603604081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a39565b60405180821515815260200191505060405180910390f35b61026f610a57565b6040518082815260200191505060405180910390f35b61028d610a61565b6040518082815260200191505060405180910390f35b61030f600480360360608110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b60405180821515815260200191505060405180910390f35b6103536004803603602081101561033d57600080fd5b8101908080359060200190929190505050610b49565b6040518082815260200191505060405180910390f35b610371610bcd565b604051808260ff16815260200191505060405180910390f35b6103d6600480360360408110156103a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be4565b60405180821515815260200191505060405180910390f35b6104266004803603604081101561040457600080fd5b8101908080359060200190929190803515159060200190929190505050610c97565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561045257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d51565b6040518082815260200191505060405180910390f35b61049c610e3c565b005b6104a6610fc2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104da610feb565b6040518082815260200191505060405180910390f35b6104f8610ff5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053857808201518184015260208101905061051d565b50505050905090810190601f1680156105655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105bf6004803603604081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611097565b60405180821515815260200191505060405180910390f35b610623600480360360408110156105ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611164565b60405180821515815260200191505060405180910390f35b6106676004803603602081101561065157600080fd5b8101908080359060200190929190505050611182565b005b6106ab6004803603602081101561067f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ad565b60405180821515815260200191505060405180910390f35b610725600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611303565b6040518082815260200191505060405180910390f35b61077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061138a565b005b6107c16004803603602081101561079557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a4565b005b610805600480360360208110156107d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118af565b005b6000610811611c39565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613490602c913960400191505060405180910390fd5b60006108c183611c41565b50505050905061091981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097181600654611c9c90919063ffffffff16565b60068190555061098c83600754611ce690919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050905090565b6000610a4d610a46611c39565b8484611d6e565b6001905092915050565b6000600754905090565b600066038d7ea4c68000905090565b6000610a7d848484611f65565b610b3e84610a89611c39565b610b39856040518060600160405280602881526020016133d260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aef611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b611d6e565b600190509392505050565b6000600654821115610ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061333f602a913960400191505060405180910390fd5b6000610bb061247e565b9050610bc581846124a990919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610c8d610bf1611c39565b84610c888560036000610c02611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b611d6e565b6001905092915050565b600066038d7ea4c68000831115610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d35576000610d2684611c41565b50505050905080915050610d4b565b6000610d4084611c41565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dec57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e37565b610e34600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b49565b90505b919050565b610e44611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b54905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561108d5780601f106110625761010080835404028352916020019161108d565b820191906000526020600020905b81548152906001019060200180831161107057829003601f168201915b5050505050905090565b600061115a6110a4611c39565b84611155856040518060600160405280602581526020016134bc60259139600360006110ce611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b611d6e565b6001905092915050565b6000611178611171611c39565b8484611f65565b6001905092915050565b61118a611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600881106112a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134486024913960400191505060405180910390fd5b80600b8190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611392611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115e6576115a2600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b49565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116ac611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133696026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118b7611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c35578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611a6a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c2857600560016005805490500381548110611ac657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611afe57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611bee57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c35565b8080600101915050611a39565b5050565b600033905090565b6000806000806000806000611c5888600b546124f3565b915091506000611c6661247e565b90506000806000611c788c8686612546565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611cde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123be565b905092915050565b600080828401905083811015611d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061346c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061338f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611feb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061331c6023913960400191505060405180910390fd5b600081116120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133fa6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561216d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121825761217d8383836125a4565b6123b9565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122255750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561223a576122358383836127f7565b6123b8565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122de5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122f3576122ee838383612a4a565b6123b7565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123955750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123aa576123a5838383612c08565b6123b6565b6123b5838383612a4a565b5b5b5b5b505050565b600083831115829061246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612430578082015181840152602081019050612415565b50505050905090810190601f16801561245d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061248b612ef0565b915091506124a281836124a990919063ffffffff16565b9250505090565b60006124eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613195565b905092915050565b600080600061251e6064612510868861325b90919063ffffffff16565b6124a990919063ffffffff16565b905060006125358287611c9c90919063ffffffff16565b905080829350935050509250929050565b60008060008061255f858861325b90919063ffffffff16565b90506000612576868861325b90919063ffffffff16565b9050600061258d8284611c9c90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006125b586611c41565b9450945094509450945061261186600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273b84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278883826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061280886611c41565b9450945094509450945061286485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129db83826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a5b86611c41565b94509450945094509450612ab785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9983826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c1986611c41565b94509450945094509450612c7586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d0a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8183826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060006006549050600066038d7ea4c68000905060005b60058054905081101561314e57826001600060058481548110612f2857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061300f5750816002600060058481548110612fa757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561302b5760065466038d7ea4c6800094509450505050613191565b6130b4600160006005848154811061303f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611c9c90919063ffffffff16565b925061313f60026000600584815481106130ca57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611c9c90919063ffffffff16565b91508080600101915050612f09565b5061316b66038d7ea4c680006006546124a990919063ffffffff16565b8210156131885760065466038d7ea4c68000935093505050613191565b81819350935050505b9091565b60008083118290613241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156132065780820151818401526020810190506131eb565b50505050905090810190601f1680156132335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161324d57fe5b049050809150509392505050565b60008083141561326e57600090506132db565b600082840290508284828161327f57fe5b04146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806133b16021913960400191505060405180910390fd5b809150505b92915050565b6132f682600654611c9c90919063ffffffff16565b60068190555061331181600754611ce690919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f20616464726573735461782063616e6e6f742062652067726561746572207468616e20372070657263656e7445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122068ccca236a134441c74620dd3741eb355050399ebc6786c24b61c251c79b028f64736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063b95079d41161007c578063b95079d41461063b578063cba0e99614610669578063dd62ed3e146106c3578063f2cc0c181461073b578063f2fde38b1461077f578063f84354f1146107c35761014d565b8063715018a6146104945780638da5cb5b1461049e578063931f6cd8146104d257806395d89b41146104f0578063a457c2d714610573578063a9059cbb146105d75761014d565b806323b872dd1161011557806323b872dd146102a35780632d83811914610327578063313ce56714610369578063395093511461038a5780634549b039146103ee57806370a082311461043c5761014d565b8063053ab1821461015257806306fdde0314610180578063095ea7b31461020357806313114a9d1461026757806318160ddd14610285575b600080fd5b61017e6004803603602081101561016857600080fd5b8101908080359060200190929190505050610807565b005b610188610997565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c85780820151818401526020810190506101ad565b50505050905090810190601f1680156101f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024f6004803603604081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a39565b60405180821515815260200191505060405180910390f35b61026f610a57565b6040518082815260200191505060405180910390f35b61028d610a61565b6040518082815260200191505060405180910390f35b61030f600480360360608110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b60405180821515815260200191505060405180910390f35b6103536004803603602081101561033d57600080fd5b8101908080359060200190929190505050610b49565b6040518082815260200191505060405180910390f35b610371610bcd565b604051808260ff16815260200191505060405180910390f35b6103d6600480360360408110156103a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be4565b60405180821515815260200191505060405180910390f35b6104266004803603604081101561040457600080fd5b8101908080359060200190929190803515159060200190929190505050610c97565b6040518082815260200191505060405180910390f35b61047e6004803603602081101561045257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d51565b6040518082815260200191505060405180910390f35b61049c610e3c565b005b6104a6610fc2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104da610feb565b6040518082815260200191505060405180910390f35b6104f8610ff5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053857808201518184015260208101905061051d565b50505050905090810190601f1680156105655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105bf6004803603604081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611097565b60405180821515815260200191505060405180910390f35b610623600480360360408110156105ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611164565b60405180821515815260200191505060405180910390f35b6106676004803603602081101561065157600080fd5b8101908080359060200190929190505050611182565b005b6106ab6004803603602081101561067f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ad565b60405180821515815260200191505060405180910390f35b610725600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611303565b6040518082815260200191505060405180910390f35b61077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061138a565b005b6107c16004803603602081101561079557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a4565b005b610805600480360360208110156107d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118af565b005b6000610811611c39565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613490602c913960400191505060405180910390fd5b60006108c183611c41565b50505050905061091981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097181600654611c9c90919063ffffffff16565b60068190555061098c83600754611ce690919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050905090565b6000610a4d610a46611c39565b8484611d6e565b6001905092915050565b6000600754905090565b600066038d7ea4c68000905090565b6000610a7d848484611f65565b610b3e84610a89611c39565b610b39856040518060600160405280602881526020016133d260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aef611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b611d6e565b600190509392505050565b6000600654821115610ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061333f602a913960400191505060405180910390fd5b6000610bb061247e565b9050610bc581846124a990919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610c8d610bf1611c39565b84610c888560036000610c02611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b611d6e565b6001905092915050565b600066038d7ea4c68000831115610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d35576000610d2684611c41565b50505050905080915050610d4b565b6000610d4084611c41565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dec57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e37565b610e34600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b49565b90505b919050565b610e44611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b54905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561108d5780601f106110625761010080835404028352916020019161108d565b820191906000526020600020905b81548152906001019060200180831161107057829003601f168201915b5050505050905090565b600061115a6110a4611c39565b84611155856040518060600160405280602581526020016134bc60259139600360006110ce611c39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b611d6e565b6001905092915050565b6000611178611171611c39565b8484611f65565b6001905092915050565b61118a611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600881106112a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134486024913960400191505060405180910390fd5b80600b8190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611392611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115e6576115a2600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b49565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116ac611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133696026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118b7611c39565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c35578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611a6a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c2857600560016005805490500381548110611ac657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611afe57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611bee57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c35565b8080600101915050611a39565b5050565b600033905090565b6000806000806000806000611c5888600b546124f3565b915091506000611c6661247e565b90506000806000611c788c8686612546565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611cde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123be565b905092915050565b600080828401905083811015611d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061346c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061338f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611feb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061331c6023913960400191505060405180910390fd5b600081116120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133fa6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561216d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121825761217d8383836125a4565b6123b9565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122255750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561223a576122358383836127f7565b6123b8565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122de5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122f3576122ee838383612a4a565b6123b7565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123955750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123aa576123a5838383612c08565b6123b6565b6123b5838383612a4a565b5b5b5b5b505050565b600083831115829061246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612430578082015181840152602081019050612415565b50505050905090810190601f16801561245d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061248b612ef0565b915091506124a281836124a990919063ffffffff16565b9250505090565b60006124eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613195565b905092915050565b600080600061251e6064612510868861325b90919063ffffffff16565b6124a990919063ffffffff16565b905060006125358287611c9c90919063ffffffff16565b905080829350935050509250929050565b60008060008061255f858861325b90919063ffffffff16565b90506000612576868861325b90919063ffffffff16565b9050600061258d8284611c9c90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006125b586611c41565b9450945094509450945061261186600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273b84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278883826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061280886611c41565b9450945094509450945061286485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129db83826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a5b86611c41565b94509450945094509450612ab785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9983826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c1986611c41565b94509450945094509450612c7586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d0a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce690919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8183826132e1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060006006549050600066038d7ea4c68000905060005b60058054905081101561314e57826001600060058481548110612f2857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061300f5750816002600060058481548110612fa757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561302b5760065466038d7ea4c6800094509450505050613191565b6130b4600160006005848154811061303f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611c9c90919063ffffffff16565b925061313f60026000600584815481106130ca57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611c9c90919063ffffffff16565b91508080600101915050612f09565b5061316b66038d7ea4c680006006546124a990919063ffffffff16565b8210156131885760065466038d7ea4c68000935093505050613191565b81819350935050505b9091565b60008083118290613241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156132065780820151818401526020810190506131eb565b50505050905090810190601f1680156132335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161324d57fe5b049050809150509392505050565b60008083141561326e57600090506132db565b600082840290508284828161327f57fe5b04146132d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806133b16021913960400191505060405180910390fd5b809150505b92915050565b6132f682600654611c9c90919063ffffffff16565b60068190555061331181600754611ce690919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f20616464726573735461782063616e6e6f742062652067726561746572207468616e20372070657263656e7445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122068ccca236a134441c74620dd3741eb355050399ebc6786c24b61c251c79b028f64736f6c634300060c0033

Deployed Bytecode Sourcemap

6166:10543:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9173:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7055:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7967:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9078:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7332:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8136:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9999:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7241:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8457:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9557:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7435:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5584:148;;;:::i;:::-;;5374:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16035:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7146:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8683:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7641:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15072:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8960:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7816:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10260:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5738:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10600:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9173:376;9225:14;9242:12;:10;:12::i;:::-;9225:29;;9274:11;:19;9286:6;9274:19;;;;;;;;;;;;;;;;;;;;;;;;;9273:20;9265:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9354:15;9377:19;9388:7;9377:10;:19::i;:::-;9353:43;;;;;;9425:28;9445:7;9425;:15;9433:6;9425:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9407:7;:15;9415:6;9407:15;;;;;;;;;;;;;;;:46;;;;9474:20;9486:7;9474;;:11;;:20;;;;:::i;:::-;9464:7;:30;;;;9518:23;9533:7;9518:10;;:14;;:23;;;;:::i;:::-;9505:10;:36;;;;9173:376;;;:::o;7055:83::-;7092:13;7125:5;7118:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7055:83;:::o;7967:161::-;8042:4;8059:39;8068:12;:10;:12::i;:::-;8082:7;8091:6;8059:8;:39::i;:::-;8116:4;8109:11;;7967:161;;;;:::o;9078:87::-;9120:7;9147:10;;9140:17;;9078:87;:::o;7332:95::-;7385:7;6636:17;7405:14;;7332:95;:::o;8136:313::-;8234:4;8251:36;8261:6;8269:9;8280:6;8251:9;:36::i;:::-;8298:121;8307:6;8315:12;:10;:12::i;:::-;8329:89;8367:6;8329:89;;;;;;;;;;;;;;;;;:11;:19;8341:6;8329:19;;;;;;;;;;;;;;;:33;8349:12;:10;:12::i;:::-;8329:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8298:8;:121::i;:::-;8437:4;8430:11;;8136:313;;;;;:::o;9999:253::-;10065:7;10104;;10093;:18;;10085:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10169:19;10192:10;:8;:10::i;:::-;10169:33;;10220:24;10232:11;10220:7;:11;;:24;;;;:::i;:::-;10213:31;;;9999:253;;;:::o;7241:83::-;7282:5;7307:9;;;;;;;;;;;7300:16;;7241:83;:::o;8457:218::-;8545:4;8562:83;8571:12;:10;:12::i;:::-;8585:7;8594:50;8633:10;8594:11;:25;8606:12;:10;:12::i;:::-;8594:25;;;;;;;;;;;;;;;:34;8620:7;8594:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8562:8;:83::i;:::-;8663:4;8656:11;;8457:218;;;;:::o;9557:434::-;9647:7;6636:17;9675:7;:18;;9667:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9745:17;9740:244;;9780:15;9803:19;9814:7;9803:10;:19::i;:::-;9779:43;;;;;;9844:7;9837:14;;;;;9740:244;9886:23;9916:19;9927:7;9916:10;:19::i;:::-;9884:51;;;;;;9957:15;9950:22;;;9557:434;;;;;:::o;7435:198::-;7501:7;7525:11;:20;7537:7;7525:20;;;;;;;;;;;;;;;;;;;;;;;;;7521:49;;;7554:7;:16;7562:7;7554:16;;;;;;;;;;;;;;;;7547:23;;;;7521:49;7588:37;7608:7;:16;7616:7;7608:16;;;;;;;;;;;;;;;;7588:19;:37::i;:::-;7581:44;;7435:198;;;;:::o;5584:148::-;5509:12;:10;:12::i;:::-;5499:22;;:6;;;;;;;;;;:22;;;5491:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5691:1:::1;5654:40;;5675:6;::::0;::::1;;;;;;;;5654:40;;;;;;;;;;;;5722:1;5705:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5584:148::o:0;5374:79::-;5412:7;5439:6;;;;;;;;;;;5432:13;;5374:79;:::o;16035:100::-;16085:7;16112:15;;16105:22;;16035:100;:::o;7146:87::-;7185:13;7218:7;7211:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7146:87;:::o;8683:269::-;8776:4;8793:129;8802:12;:10;:12::i;:::-;8816:7;8825:96;8864:15;8825:96;;;;;;;;;;;;;;;;;:11;:25;8837:12;:10;:12::i;:::-;8825:25;;;;;;;;;;;;;;;:34;8851:7;8825:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8793:8;:129::i;:::-;8940:4;8933:11;;8683:269;;;;:::o;7641:167::-;7719:4;7736:42;7746:12;:10;:12::i;:::-;7760:9;7771:6;7736:9;:42::i;:::-;7796:4;7789:11;;7641:167;;;;:::o;15072:181::-;5509:12;:10;:12::i;:::-;5499:22;;:6;;;;;;;;;;:22;;;5491:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15163:1:::1;15149:11;:15;15141:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15234:11;15216:15;:29;;;;15072:181:::0;:::o;8960:110::-;9018:4;9042:11;:20;9054:7;9042:20;;;;;;;;;;;;;;;;;;;;;;;;;9035:27;;8960:110;;;:::o;7816:143::-;7897:7;7924:11;:18;7936:5;7924:18;;;;;;;;;;;;;;;:27;7943:7;7924:27;;;;;;;;;;;;;;;;7917:34;;7816:143;;;;:::o;10260:332::-;5509:12;:10;:12::i;:::-;5499:22;;:6;;;;;;;;;;:22;;;5491:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10342:11:::1;:20;10354:7;10342:20;;;;;;;;;;;;;;;;;;;;;;;;;10341:21;10333:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10427:1;10408:7;:16;10416:7;10408:16;;;;;;;;;;;;;;;;:20;10405:108;;;10464:37;10484:7;:16;10492:7;10484:16;;;;;;;;;;;;;;;;10464:19;:37::i;:::-;10445:7;:16;10453:7;10445:16;;;;;;;;;;;;;;;:56;;;;10405:108;10546:4;10523:11;:20;10535:7;10523:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10561:9;10576:7;10561:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10260:332:::0;:::o;5738:244::-;5509:12;:10;:12::i;:::-;5499:22;;:6;;;;;;;;;;:22;;;5491:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5847:1:::1;5827:22;;:8;:22;;;;5819:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5937:8;5908:38;;5929:6;::::0;::::1;;;;;;;;5908:38;;;;;;;;;;;;5966:8;5957:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5738:244:::0;:::o;10600:478::-;5509:12;:10;:12::i;:::-;5499:22;;:6;;;;;;;;;;:22;;;5491:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10681:11:::1;:20;10693:7;10681:20;;;;;;;;;;;;;;;;;;;;;;;;;10673:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10749:9;10744:327;10768:9;:16;;;;10764:1;:20;10744:327;;;10826:7;10810:23;;:9;10820:1;10810:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;10806:254;;;10869:9;10898:1;10879:9;:16;;;;:20;10869:31;;;;;;;;;;;;;;;;;;;;;;;;;10854:9;10864:1;10854:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;10938:1;10919:7;:16;10927:7;10919:16;;;;;;;;;;;;;;;:20;;;;10981:5;10958:11;:20;10970:7;10958:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11005:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11039:5;;10806:254;10786:3;;;;;;;10744:327;;;;10600:478:::0;:::o;129:106::-;182:15;217:10;210:17;;129:106;:::o;14632:428::-;14691:7;14700;14709;14718;14727;14748:23;14773:12;14789:37;14801:7;14810:15;;14789:11;:37::i;:::-;14747:79;;;;14837:19;14860:10;:8;:10::i;:::-;14837:33;;14882:15;14899:23;14924:12;14940:39;14952:7;14961:4;14967:11;14940;:39::i;:::-;14881:98;;;;;;14998:7;15007:15;15024:4;15030:15;15047:4;14990:62;;;;;;;;;;;;;;;;14632:428;;;;;;;:::o;1248:136::-;1306:7;1333:43;1337:1;1340;1333:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1326:50;;1248:136;;;;:::o;1061:181::-;1119:7;1139:9;1155:1;1151;:5;1139:17;;1180:1;1175;:6;;1167:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1233:1;1226:8;;;1061:181;;;;:::o;11086:337::-;11196:1;11179:19;;:5;:19;;;;11171:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11277:1;11258:21;;:7;:21;;;;11250:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11361:6;11331:11;:18;11343:5;11331:18;;;;;;;;;;;;;;;:27;11350:7;11331:27;;;;;;;;;;;;;;;:36;;;;11399:7;11383:32;;11392:5;11383:32;;;11408:6;11383:32;;;;;;;;;;;;;;;;;;11086:337;;;:::o;11431:931::-;11546:1;11528:20;;:6;:20;;;;11520:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11630:1;11609:23;;:9;:23;;;;11601:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11700:1;11691:6;:10;11683:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11762:11;:19;11774:6;11762:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;11786:11;:22;11798:9;11786:22;;;;;;;;;;;;;;;;;;;;;;;;;11785:23;11762:46;11758:597;;;11825:48;11847:6;11855:9;11866:6;11825:21;:48::i;:::-;11758:597;;;11896:11;:19;11908:6;11896:19;;;;;;;;;;;;;;;;;;;;;;;;;11895:20;:46;;;;;11919:11;:22;11931:9;11919:22;;;;;;;;;;;;;;;;;;;;;;;;;11895:46;11891:464;;;11958:46;11978:6;11986:9;11997:6;11958:19;:46::i;:::-;11891:464;;;12027:11;:19;12039:6;12027:19;;;;;;;;;;;;;;;;;;;;;;;;;12026:20;:47;;;;;12051:11;:22;12063:9;12051:22;;;;;;;;;;;;;;;;;;;;;;;;;12050:23;12026:47;12022:333;;;12090:44;12108:6;12116:9;12127:6;12090:17;:44::i;:::-;12022:333;;;12156:11;:19;12168:6;12156:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;12179:11;:22;12191:9;12179:22;;;;;;;;;;;;;;;;;;;;;;;;;12156:45;12152:203;;;12218:48;12240:6;12248:9;12259:6;12218:21;:48::i;:::-;12152:203;;;12299:44;12317:6;12325:9;12336:6;12299:17;:44::i;:::-;12152:203;12022:333;11891:464;11758:597;11431:931;;;:::o;1390:192::-;1476:7;1509:1;1504;:6;;1512:12;1496:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:9;1552:1;1548;:5;1536:17;;1573:1;1566:8;;;1390:192;;;;;:::o;15860:163::-;15901:7;15922:15;15939;15958:19;:17;:19::i;:::-;15921:56;;;;15995:20;16007:7;15995;:11;;:20;;;;:::i;:::-;15988:27;;;;15860:163;:::o;1844:132::-;1902:7;1929:39;1933:1;1936;1929:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1922:46;;1844:132;;;;:::o;15261:249::-;15336:7;15345;15365:12;15380:27;15403:3;15380:18;15392:5;15380:7;:11;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;15365:42;;15418:23;15444:17;15456:4;15444:7;:11;;:17;;;;:::i;:::-;15418:43;;15480:15;15497:4;15472:30;;;;;;15261:249;;;;;:::o;15518:334::-;15613:7;15622;15631;15651:15;15669:24;15681:11;15669:7;:11;;:24;;;;:::i;:::-;15651:42;;15704:12;15719:21;15728:11;15719:4;:8;;:21;;;;:::i;:::-;15704:36;;15751:23;15777:17;15789:4;15777:7;:11;;:17;;;;:::i;:::-;15751:43;;15813:7;15822:15;15839:4;15805:39;;;;;;;;;15518:334;;;;;;;:::o;13367:509::-;13470:15;13487:23;13512:12;13526:23;13551:12;13567:19;13578:7;13567:10;:19::i;:::-;13469:117;;;;;;;;;;13615:28;13635:7;13615;:15;13623:6;13615:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13597:7;:15;13605:6;13597:15;;;;;;;;;;;;;;;:46;;;;13672:28;13692:7;13672;:15;13680:6;13672:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13654:7;:15;13662:6;13654:15;;;;;;;;;;;;;;;:46;;;;13732:39;13755:15;13732:7;:18;13740:9;13732:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13711:7;:18;13719:9;13711:18;;;;;;;;;;;;;;;:60;;;;13785:23;13797:4;13803;13785:11;:23::i;:::-;13841:9;13824:44;;13833:6;13824:44;;;13852:15;13824:44;;;;;;;;;;;;;;;;;;13367:509;;;;;;;;:::o;12830:529::-;12931:15;12948:23;12973:12;12987:23;13012:12;13028:19;13039:7;13028:10;:19::i;:::-;12930:117;;;;;;;;;;13076:28;13096:7;13076;:15;13084:6;13076:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13058:7;:15;13066:6;13058:15;;;;;;;;;;;;;;;:46;;;;13136:39;13159:15;13136:7;:18;13144:9;13136:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13115:7;:18;13123:9;13115:18;;;;;;;;;;;;;;;:60;;;;13207:39;13230:15;13207:7;:18;13215:9;13207:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13186:7;:18;13194:9;13186:18;;;;;;;;;;;;;;;:60;;;;13268:23;13280:4;13286;13268:11;:23::i;:::-;13324:9;13307:44;;13316:6;13307:44;;;13335:15;13307:44;;;;;;;;;;;;;;;;;;12830:529;;;;;;;;:::o;12370:452::-;12469:15;12486:23;12511:12;12525:23;12550:12;12566:19;12577:7;12566:10;:19::i;:::-;12468:117;;;;;;;;;;12614:28;12634:7;12614;:15;12622:6;12614:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12596:7;:15;12604:6;12596:15;;;;;;;;;;;;;;;:46;;;;12674:39;12697:15;12674:7;:18;12682:9;12674:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12653:7;:18;12661:9;12653:18;;;;;;;;;;;;;;;:60;;;;12731:23;12743:4;12749;12731:11;:23::i;:::-;12787:9;12770:44;;12779:6;12770:44;;;12798:15;12770:44;;;;;;;;;;;;;;;;;;12370:452;;;;;;;;:::o;13884:585::-;13987:15;14004:23;14029:12;14043:23;14068:12;14084:19;14095:7;14084:10;:19::i;:::-;13986:117;;;;;;;;;;14132:28;14152:7;14132;:15;14140:6;14132:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14114:7;:15;14122:6;14114:15;;;;;;;;;;;;;;;:46;;;;14189:28;14209:7;14189;:15;14197:6;14189:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14171:7;:15;14179:6;14171:15;;;;;;;;;;;;;;;:46;;;;14249:39;14272:15;14249:7;:18;14257:9;14249:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14228:7;:18;14236:9;14228:18;;;;;;;;;;;;;;;:60;;;;14320:39;14343:15;14320:7;:18;14328:9;14320:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14299:7;:18;14307:9;14299:18;;;;;;;;;;;;;;;:60;;;;14378:23;14390:4;14396;14378:11;:23::i;:::-;14434:9;14417:44;;14426:6;14417:44;;;14445:15;14417:44;;;;;;;;;;;;;;;;;;13884:585;;;;;;;;:::o;16145:561::-;16195:7;16204;16224:15;16242:7;;16224:25;;16260:15;6636:17;16260:25;;16307:9;16302:289;16326:9;:16;;;;16322:1;:20;16302:289;;;16392:7;16368;:21;16376:9;16386:1;16376:12;;;;;;;;;;;;;;;;;;;;;;;;;16368:21;;;;;;;;;;;;;;;;:31;:66;;;;16427:7;16403;:21;16411:9;16421:1;16411:12;;;;;;;;;;;;;;;;;;;;;;;;;16403:21;;;;;;;;;;;;;;;;:31;16368:66;16364:97;;;16444:7;;6636:17;16436:25;;;;;;;;;16364:97;16486:34;16498:7;:21;16506:9;16516:1;16506:12;;;;;;;;;;;;;;;;;;;;;;;;;16498:21;;;;;;;;;;;;;;;;16486:7;:11;;:34;;;;:::i;:::-;16476:44;;16545:34;16557:7;:21;16565:9;16575:1;16565:12;;;;;;;;;;;;;;;;;;;;;;;;;16557:21;;;;;;;;;;;;;;;;16545:7;:11;;:34;;;;:::i;:::-;16535:44;;16344:3;;;;;;;16302:289;;;;16615:20;6636:17;16615:7;;:11;;:20;;;;:::i;:::-;16605:7;:30;16601:61;;;16645:7;;6636:17;16637:25;;;;;;;;16601:61;16681:7;16690;16673:25;;;;;;16145:561;;;:::o;1982:189::-;2068:7;2100:1;2096;:5;2103:12;2088:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2127:9;2143:1;2139;:5;;;;;;2127:17;;2162:1;2155:8;;;1982:189;;;;;:::o;1588:250::-;1646:7;1675:1;1670;:6;1666:47;;;1700:1;1693:8;;;;1666:47;1725:9;1741:1;1737;:5;1725:17;;1770:1;1765;1761;:5;;;;;;:10;1753:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:1;1822:8;;;1588:250;;;;;:::o;14477:147::-;14555:17;14567:4;14555:7;;:11;;:17;;;;:::i;:::-;14545:7;:27;;;;14596:20;14611:4;14596:10;;:14;;:20;;;;:::i;:::-;14583:10;:33;;;;14477:147;;:::o

Swarm Source

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