ETH Price: $3,289.97 (-1.25%)

Token

OBELIX Token (OBELIX)
 

Overview

Max Total Supply

5,000 OBELIX

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 OBELIX

Value
$0.00
0x64ea0fa30efed0d53900fcd4fb10c6c47262f0d9
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ObelixToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : Obelix.sol
pragma solidity ^0.6.12;

import "./lib/SafeMath.sol";
import "./interfaces/IObelixFarming.sol";

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://eips.ethereum.org/EIPS/eip-20
 * Originally based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 *
 * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
 * all accounts just by listening to said events. Note that this isn't required by the specification, and other
 * compliant implementations may not do it.
 */
contract ObelixToken {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowed;

    uint256 private _totalSupply;

    uint256 public _stakedTotalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public owner;

    IObelixFarming public obelixFarming;

    address payable public OBELIXFund = 0x4Ac6D22bBc27677Ed47b5284A3299D25B5F33a54;
    address payable public Maximus = 0xF224f3D60da3eB287c43c780Be7AA3499D1faF75;
    address payable public buybacksUTY = 0x70ecA57C0478F3C3BfAFf082a140eCF84CDad826;
    address payable public buybacksOBELIX = 0x8a24Fef3c74f1557b4BeF51929B8CaA2d4561A98;
    address payable public Founder = 0xBc1a689ECF468920d5d689386668d701D40800e0;
    address payable public SenateCouncil = 0x75f2239D15a774702A34175C32686FF360EBCBdD;

    address public UniswapPair;

    struct Staker {
        uint256 stakedBalance;
        uint256 startTimestamp;
    }

    mapping(address => Staker) public stakers;

    mapping(bytes32 => bool) public profitsDistributed;

    mapping(bytes32 => bool) public profitsDistributedFarmers;

    uint32 public currentProfitsDistributed;

    bool public EnableProfitDistribution;
    uint256 AmountToDistribute;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    constructor() public {
        _name = "OBELIX Token";
        _symbol = "OBELIX";
        _decimals = 18;
        owner = msg.sender;
        _totalSupply = 5000E18;
        _balances[address(this)] = 335625E16;
        _balances[OBELIXFund] = 700E18;
        _balances[Founder] = 94375E16;
        emit Transfer(address(0), owner, _totalSupply);
    }

    function DistributeProfitsOBELIX() external {
        require(EnableProfitDistribution, "Distribution is disabled");
        require(
            !getProfitsDistributed(msg.sender),
            "Profits already distributed"
        );

        Staker memory staker = stakers[msg.sender];

        uint256 daysStaked = block.timestamp.sub(staker.startTimestamp) / 86400;

        require(
            daysStaked >= 14,
            "You must stake for 14 days to claim profits"
        );

        uint256 distribution = AmountToDistribute / 2;

        uint256 eth = mulDiv(
            distribution,
            staker.stakedBalance,
            _stakedTotalSupply.add(_balances[UniswapPair])
        );

        setProfitsDistributed(msg.sender);

        msg.sender.transfer(eth);
    }

    function CalculateDistributeProfitsOBELIX(address staker)
        external
        view
        returns (uint256)
    {
        if (!EnableProfitDistribution || getProfitsDistributed(staker)) {
            return 0;
        }
        Staker memory staker = stakers[msg.sender];

        uint256 daysStaked = block.timestamp.sub(staker.startTimestamp) / 86400;

        if (daysStaked >= 14) {
            return 0;
        }

        uint256 distribution = AmountToDistribute / 2;

        uint256 eth = mulDiv(
            distribution,
            staker.stakedBalance,
            _stakedTotalSupply.add(_balances[UniswapPair])
        );
        return eth;
    }

    function StakeOBELIX(uint256 amount) external {
        _balances[msg.sender] = _balances[msg.sender].sub(amount);
        Staker storage staker = stakers[msg.sender];
        if (staker.startTimestamp == 0 || staker.stakedBalance == 0) {
            staker.startTimestamp = block.timestamp;
        } else {
            uint256 percent = mulDiv(1000000, amount, staker.stakedBalance); // This is not really 'percent' it is just a number that represents the totalAmount as a fraction of the recipientBalance
            if (percent.add(staker.startTimestamp) > block.timestamp) {
                // We represent the 'percent' or 'penalty' as seconds and add to the recipient's unix time
                staker.startTimestamp = block.timestamp; // Receiving too many tokens resets your holding time
            } else {
                staker.startTimestamp = staker.startTimestamp.add(percent);
            }
        }
        staker.stakedBalance = staker.stakedBalance.add(amount);
        _stakedTotalSupply = _stakedTotalSupply.add(amount);
    }

    function UnstakeOBELIX(uint256 amount) external {
        Staker storage staker = stakers[msg.sender];
        staker.stakedBalance = staker.stakedBalance.sub(amount);
        staker.startTimestamp = block.timestamp;
        _balances[msg.sender] = _balances[msg.sender].add(amount);
        _stakedTotalSupply = _stakedTotalSupply.sub(amount);
    }

    function DistributeProfitsOBELIXFund() external {
        require(msg.sender == owner || msg.sender == OBELIXFund);
        require(EnableProfitDistribution, "Distribution is disabled");
        uint256 eth = mulDiv(AmountToDistribute, 8, 100);
        OBELIXFund.transfer(eth);
    }

    function DistributeMaximusFounder() external {
        require(
            msg.sender == owner ||
                msg.sender == Maximus ||
                msg.sender == Founder
        );
        require(EnableProfitDistribution, "Distribution is disabled");
        uint256 eth = mulDiv(AmountToDistribute, 5, 100);
        Maximus.transfer(eth / 2);
        Founder.transfer(eth / 2);
    }

    function DistributeBuybacks() external {
        require(
            msg.sender == owner ||
                msg.sender == buybacksUTY ||
                msg.sender == buybacksOBELIX
        );
        require(EnableProfitDistribution, "Distribution is disabled");
        uint256 eth = mulDiv(AmountToDistribute, 7, 100);
        buybacksOBELIX.transfer(eth / 2);
        buybacksUTY.transfer(eth / 2);
    }

    function DistributeProfitsOBELIXFarmer() external {
        require(EnableProfitDistribution, "Distribution is disabled");
        require(
            !getProfitsDistributedFarmers(msg.sender),
            "Profits already distributed to farmer"
        );

        (uint256 tokens, uint256 startTimestamp) = obelixFarming
            .estimateOBELIXProvidedWithStartTimestamp(msg.sender);

        uint256 daysStaked = block.timestamp.sub(startTimestamp) / 86400;

        require(
            daysStaked >= 14,
            "You must stake for 14 days to claim profits"
        );

        uint256 distribution = AmountToDistribute / 2;

        uint256 eth = mulDiv(
            distribution,
            tokens,
            _stakedTotalSupply.add(_balances[UniswapPair])
        );

        setProfitsDistributedFarmers(msg.sender);

        msg.sender.transfer(eth);
    }

    function CalculateDistributeProfitsOBELIXFarmer(address staker)
        external
        view
        returns (uint256)
    {
        if (!EnableProfitDistribution || getProfitsDistributedFarmers(staker)) {
            return 0;
        }
        (uint256 tokens, uint256 startTimestamp) = obelixFarming
            .estimateOBELIXProvidedWithStartTimestamp(msg.sender);

        uint256 daysStaked = block.timestamp.sub(startTimestamp) / 86400;

        require(
            daysStaked >= 14,
            "You must stake for 14 days to claim profits"
        );

        uint256 distribution = AmountToDistribute / 2;

        uint256 eth = mulDiv(
            distribution,
            tokens,
            _stakedTotalSupply.add(_balances[UniswapPair])
        );
        return eth;
    }

    function DistributeProfitSenateCouncil() external {
        require(msg.sender == owner || msg.sender == SenateCouncil);
        require(EnableProfitDistribution, "Distribution is disabled");
        uint256 eth = mulDiv(AmountToDistribute, 30, 100);
        SenateCouncil.transfer(eth);
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Total number of tokens in existence.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    function getStakerDaysStaked(address staker)
        external
        view
        returns (uint256)
    {
        return block.timestamp.sub(stakers[staker].startTimestamp) / 86400;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender)
        public
        view
        returns (uint256)
    {
        return _allowed[owner][spender];
    }

    /**
     * @dev Transfer token to a specified address.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _approve(
            msg.sender,
            spender,
            _allowed[msg.sender][spender].add(addedValue)
        );
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        _approve(
            msg.sender,
            spender,
            _allowed[msg.sender][spender].sub(subtractedValue)
        );
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses.
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(
        address owner,
        address spender,
        uint256 value
    ) internal {
        require(spender != address(0));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
    }

    function UpdateEnableProfitDistribution(bool _enable) external onlyOwner {
        EnableProfitDistribution = _enable;
        if (_enable == false) {
            AmountToDistribute = 0;
            deleteProfitsDistributed();
        }
    }

    function getProfitsDistributed(address holder)
        internal
        view
        returns (bool)
    {
        bytes32 key = keccak256(
            abi.encodePacked(currentProfitsDistributed, holder)
        );
        return profitsDistributed[key];
    }

    function getProfitsDistributedFarmers(address holder)
        internal
        view
        returns (bool)
    {
        bytes32 key = keccak256(
            abi.encodePacked(currentProfitsDistributed, holder)
        );
        return profitsDistributedFarmers[key];
    }

    function setProfitsDistributedFarmers(address holder) internal {
        bytes32 key = keccak256(
            abi.encodePacked(currentProfitsDistributed, holder)
        );
        profitsDistributedFarmers[key] = true;
    }

    function setProfitsDistributed(address holder) internal {
        bytes32 key = keccak256(
            abi.encodePacked(currentProfitsDistributed, holder)
        );
        profitsDistributed[key] = true;
    }

    function deleteProfitsDistributed() internal {
        currentProfitsDistributed++;
    }

    function TransferOwnership(address payable newOwner) external onlyOwner {
        owner = newOwner;
    }

    function updateObelixFarming(address _farming) external onlyOwner {
        obelixFarming = IObelixFarming(_farming);
    }

    function updateObelixFund(address payable obelixFund) external onlyOwner {
        OBELIXFund = obelixFund;
    }

    function updateUniswapPair(address _UniswapPair) external onlyOwner {
        UniswapPair = _UniswapPair;
    }

    function transferETH(uint256 amount) external onlyOwner {
        owner.transfer(amount);
    }

    function mulDiv(
        uint256 x,
        uint256 y,
        uint256 z
    ) public pure returns (uint256) {
        (uint256 l, uint256 h) = fullMul(x, y);
        assert(h < z);
        uint256 mm = mulmod(x, y, z);
        if (mm > l) h -= 1;
        l -= mm;
        uint256 pow2 = z & -z;
        z /= pow2;
        l /= pow2;
        l += h * ((-pow2) / pow2 + 1);
        uint256 r = 1;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        r *= 2 - z * r;
        return l * r;
    }

    function fullMul(uint256 x, uint256 y)
        private
        pure
        returns (uint256 l, uint256 h)
    {
        uint256 mm = mulmod(x, y, uint256(-1));
        l = x * y;
        h = mm - l;
        if (mm < l) h -= 1;
    }

    fallback() external payable {
        AmountToDistribute = AmountToDistribute.add(msg.value);
    }

    receive() external payable {
        AmountToDistribute = AmountToDistribute.add(msg.value);
    }
}

File 2 of 3 : SafeMath.sol
pragma solidity 0.6.12;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

File 3 of 3 : IObelixFarming.sol
pragma solidity ^0.6.12;

interface IObelixFarming {
    function estimateOBELIXProvidedWithStartTimestamp(address _staker) external view returns (uint256, uint256);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"CalculateDistributeProfitsOBELIX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"CalculateDistributeProfitsOBELIXFarmer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DistributeBuybacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DistributeMaximusFounder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DistributeProfitSenateCouncil","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DistributeProfitsOBELIX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DistributeProfitsOBELIXFarmer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DistributeProfitsOBELIXFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableProfitDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Founder","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Maximus","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OBELIXFund","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SenateCouncil","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StakeOBELIX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"TransferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UnstakeOBELIX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"UpdateEnableProfitDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_stakedTotalSupply","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybacksOBELIX","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybacksUTY","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentProfitsDistributed","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"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":"staker","type":"address"}],"name":"getStakerDaysStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"},{"internalType":"uint256","name":"z","type":"uint256"}],"name":"mulDiv","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"obelixFarming","outputs":[{"internalType":"contract IObelixFarming","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"profitsDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"profitsDistributedFarmers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"stakedBalance","type":"uint256"},{"internalType":"uint256","name":"startTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_farming","type":"address"}],"name":"updateObelixFarming","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"obelixFund","type":"address"}],"name":"updateObelixFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_UniswapPair","type":"address"}],"name":"updateUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052734ac6d22bbc27677ed47b5284a3299d25b5f33a54600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f224f3d60da3eb287c43c780be7aa3499d1faf75600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507370eca57c0478f3c3bfaff082a140ecf84cdad826600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738a24fef3c74f1557b4bef51929b8caa2d4561a98600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bc1a689ecf468920d5d689386668d701d40800e0600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507375f2239d15a774702a34175c32686ff360ebcbdd600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200020f57600080fd5b506040518060400160405280600c81526020017f4f42454c495820546f6b656e0000000000000000000000000000000000000000815250600490805190602001906200025d929190620004d2565b506040518060400160405280600681526020017f4f42454c4958000000000000000000000000000000000000000000000000000081525060059080519060200190620002ab929190620004d2565b506012600660006101000a81548160ff021916908360ff16021790555033600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069010f0cf064dd5920000060028190555068b5f15348d34cc900006000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506825f273933db5700000600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506833292988cc56e70000600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040518082815260200191505060405180910390a362000578565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200051557805160ff191683800117855562000546565b8280016001018555821562000546579182015b828111156200054557825182559160200191906001019062000528565b5b50905062000555919062000559565b5090565b5b80821115620005745760008160009055506001016200055a565b5090565b613a6580620005886000396000f3fe60806040526004361061026b5760003560e01c80637e14526911610144578063c12b7c4e116100b6578063d79494df1161007a578063d79494df14610e24578063dd62ed3e14610e3b578063e33c3d3f14610ec0578063e82105fe14610ed7578063eb04f78114610f28578063fa94d18a14610f795761028d565b8063c12b7c4e14610d27578063c3c81e5614610d78578063ce2aa78b14610d8f578063cfaaa26614610dbc578063d68cfb7d14610e0d5761028d565b806395d89b411161010857806395d89b4114610ad4578063998834a314610b64578063a457c2d714610ba1578063a9059cbb14610c12578063aa9a091214610c83578063ae79e89a14610ce65761028d565b80637e145269146109445780637ffb50b3146109955780638da5cb5b146109d65780638dc4e63a14610a175780639168ae7214610a685761028d565b80634329db46116101dd5780636ae43c0e116101a15780636ae43c0e1461076857806370a08231146107a357806377dae52c1461080857806378a63f34146108395780637a0398351461087a5780637c7950f5146108df5761028d565b80634329db4614610653578063448ed4931461068e5780635ebf234f146106cf5780636124b40b14610710578063619c218c146107275761028d565b806323b872dd1161022f57806323b872dd1461047657806323ddd8ed146105075780632a165f0014610532578063313ce567146105735780633278dc67146105a157806339509351146105e25761028d565b806306fdde03146102aa578063095ea7b31461033a57806310586858146103ab578063179fc6fb146103e657806318160ddd1461044b5761028d565b3661028d5761028534601354610f9090919063ffffffff16565b601381905550005b6102a234601354610f9090919063ffffffff16565b601381905550005b3480156102b657600080fd5b506102bf611018565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ff5780820151818401526020810190506102e4565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034657600080fd5b506103936004803603604081101561035d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ba565b60405180821515815260200191505060405180910390f35b3480156103b757600080fd5b506103e4600480360360208110156103ce57600080fd5b81019080803590602001909291905050506110d1565b005b3480156103f257600080fd5b506104356004803603602081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611273565b6040518082815260200191505060405180910390f35b34801561045757600080fd5b506104606113eb565b6040518082815260200191505060405180910390f35b34801561048257600080fd5b506104ef6004803603606081101561049957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113f5565b60405180821515815260200191505060405180910390f35b34801561051357600080fd5b5061051c6114a6565b6040518082815260200191505060405180910390f35b34801561053e57600080fd5b506105476114ac565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057f57600080fd5b506105886114d2565b604051808260ff16815260200191505060405180910390f35b3480156105ad57600080fd5b506105b66114e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105ee57600080fd5b5061063b6004803603604081101561060557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061150f565b60405180821515815260200191505060405180910390f35b34801561065f57600080fd5b5061068c6004803603602081101561067657600080fd5b81019080803590602001909291905050506115b4565b005b34801561069a57600080fd5b506106a36116e3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106db57600080fd5b506106e4611709565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071c57600080fd5b5061072561172f565b005b34801561073357600080fd5b5061073c6119b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077457600080fd5b506107a16004803603602081101561078b57600080fd5b81019080803590602001909291905050506119dd565b005b3480156107af57600080fd5b506107f2600480360360208110156107c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afa565b6040518082815260200191505060405180910390f35b34801561081457600080fd5b5061081d611b42565b604051808263ffffffff16815260200191505060405180910390f35b34801561084557600080fd5b5061084e611b58565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088657600080fd5b506108c96004803603602081101561089d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7e565b6040518082815260200191505060405180910390f35b3480156108eb57600080fd5b5061092e6004803603602081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611da2565b6040518082815260200191505060405180910390f35b34801561095057600080fd5b506109936004803603602081101561096757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e0c565b005b3480156109a157600080fd5b506109aa611f13565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb611f39565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a2357600080fd5b50610a5060048036036020811015610a3a57600080fd5b8101908080359060200190929190505050611f5f565b60405180821515815260200191505060405180910390f35b348015610a7457600080fd5b50610ab760048036036020811015610a8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7f565b604051808381526020018281526020019250505060405180910390f35b348015610ae057600080fd5b50610ae9611fa3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b29578082015181840152602081019050610b0e565b50505050905090810190601f168015610b565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b7057600080fd5b50610b9f60048036036020811015610b8757600080fd5b81019080803515159060200190929190505050612045565b005b348015610bad57600080fd5b50610bfa60048036036040811015610bc457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612143565b60405180821515815260200191505060405180910390f35b348015610c1e57600080fd5b50610c6b60048036036040811015610c3557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121e8565b60405180821515815260200191505060405180910390f35b348015610c8f57600080fd5b50610cd060048036036060811015610ca657600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506121ff565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb6122dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3357600080fd5b50610d7660048036036020811015610d4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612303565b005b348015610d8457600080fd5b50610d8d61240a565b005b348015610d9b57600080fd5b50610da46126df565b60405180821515815260200191505060405180910390f35b348015610dc857600080fd5b50610e0b60048036036020811015610ddf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f2565b005b348015610e1957600080fd5b50610e226127f9565b005b348015610e3057600080fd5b50610e396129ac565b005b348015610e4757600080fd5b50610eaa60048036036040811015610e5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc9565b6040518082815260200191505060405180910390f35b348015610ecc57600080fd5b50610ed5612d50565b005b348015610ee357600080fd5b50610f1060048036036020811015610efa57600080fd5b8101908080359060200190929190505050612f03565b60405180821515815260200191505060405180910390f35b348015610f3457600080fd5b50610f7760048036036020811015610f4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f23565b005b348015610f8557600080fd5b50610f8e61302a565b005b60008082840190508381101561100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110b05780601f10611085576101008083540402835291602001916110b0565b820191906000526020600020905b81548152906001019060200180831161109357829003601f168201915b5050505050905090565b60006110c73384846132b2565b6001905092915050565b611122816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816001015414806111be575060008160000154145b156111d157428160010181905550611235565b60006111e5620f42408484600001546121ff565b9050426111ff836001015483610f9090919063ffffffff16565b111561121357428260010181905550611233565b61122a818360010154610f9090919063ffffffff16565b82600101819055505b505b61124c828260000154610f9090919063ffffffff16565b816000018190555061126982600354610f9090919063ffffffff16565b6003819055505050565b6000601260049054906101000a900460ff16158061129657506112958261345b565b5b156112a457600090506113e6565b6112ac6139c5565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006201518061132983602001514261341190919063ffffffff16565b8161133057fe5b049050600e8110611346576000925050506113e6565b600060026013548161135457fe5b04905060006113dc8285600001516113d7600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050809450505050505b919050565b6000600254905090565b60006114028484846134ec565b61149b843361149685600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6132b2565b600190509392505050565b60035481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900460ff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115aa33846115a585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6132b2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116df573d6000803e3d6000fd5b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117d85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806118305750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61183957600080fd5b601260049054906101000a900460ff166118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b60006118cc601354600560646121ff565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161191457fe5b049081150290604051600060405180830381858888f19350505050158015611940573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161198757fe5b049081150290604051600060405180830381858888f193505050501580156119b3573d6000803e3d6000fd5b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611a3782826000015461341190919063ffffffff16565b8160000181905550428160010181905550611a99826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af08260035461341190919063ffffffff16565b6003819055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601260009054906101000a900463ffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260049054906101000a900460ff161580611ba15750611ba0826136b6565b5b15611baf5760009050611d9d565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bbbeb72336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015611c3a57600080fd5b505afa158015611c4e573d6000803e3d6000fd5b505050506040513d6040811015611c6457600080fd5b81019080805190602001909291908051906020019092919050505091509150600062015180611c9c834261341190919063ffffffff16565b81611ca357fe5b049050600e811015611d00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b6000600260135481611d0e57fe5b0490506000611d928286611d8d600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b905080955050505050505b919050565b600062015180611dfd600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544261341190919063ffffffff16565b81611e0457fe5b049050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915090508060000154908060010154905082565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561203b5780601f106120105761010080835404028352916020019161203b565b820191906000526020600020905b81548152906001019060200180831161201e57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260046101000a81548160ff02191690831515021790555060001515811515141561214057600060138190555061213f613747565b5b50565b60006121de33846121d985600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6132b2565b6001905092915050565b60006121f53384846134ec565b6001905092915050565b600080600061220e8686613784565b9150915083811061221b57fe5b6000848061222557fe5b868809905082811115612239576001820391505b80830392506000856000038616905080868161225157fe5b04955080848161225d57fe5b049350600181826000038161226e57fe5b04018302840193506000600190508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808502955050505050509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260049054906101000a900460ff1661248c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b6124953361345b565b15612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f50726f6669747320616c7265616479206469737472696275746564000000000081525060200191505060405180910390fd5b6125106139c5565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006201518061258d83602001514261341190919063ffffffff16565b8161259457fe5b049050600e8110156125f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b60006002601354816125ff57fe5b0490506000612687828560000151612682600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050612692336137d7565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126d8573d6000803e3d6000fd5b5050505050565b601260049054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128a25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6128ab57600080fd5b601260049054906101000a900460ff1661292d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b600061293e601354601e60646121ff565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129a8573d6000803e3d6000fd5b5050565b601260049054906101000a900460ff16612a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b612a37336136b6565b15612a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139e06025913960400191505060405180910390fd5b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bbbeb72336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015612b1857600080fd5b505afa158015612b2c573d6000803e3d6000fd5b505050506040513d6040811015612b4257600080fd5b81019080805190602001909291908051906020019092919050505091509150600062015180612b7a834261341190919063ffffffff16565b81612b8157fe5b049050600e811015612bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b6000600260135481612bec57fe5b0490506000612c708286612c6b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050612c7b3361386e565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cc1573d6000803e3d6000fd5b505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612df95750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612e0257600080fd5b601260049054906101000a900460ff16612e84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b6000612e95601354600860646121ff565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612eff573d6000803e3d6000fd5b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fe6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130d35750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061312b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61313457600080fd5b601260049054906101000a900460ff166131b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b60006131c7601354600760646121ff565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161320f57fe5b049081150290604051600060405180830381858888f1935050505015801561323b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161328257fe5b049081150290604051600060405180830381858888f193505050501580156132ae573d6000803e3d6000fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132ec57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561332657600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061345383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613905565b905092915050565b600080601260009054906101000a900463ffffffff1683604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012090506010600082815260200190815260200160002060009054906101000a900460ff16915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561352657600080fd5b613577816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080601260009054906101000a900463ffffffff1683604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012090506011600082815260200190815260200160002060009054906101000a900460ff16915050919050565b6012600081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555050565b60008060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff806137b157fe5b848609905083850292508281039150828110156137cf576001820391505b509250929050565b6000601260009054906101000a900463ffffffff1682604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905060016010600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601260009054906101000a900463ffffffff1682604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905060016011600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008383111582906139b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561397757808201518184015260208101905061395c565b50505050905090810190601f1680156139a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60405180604001604052806000815260200160008152509056fe50726f6669747320616c726561647920646973747269627574656420746f206661726d6572596f75206d757374207374616b6520666f72203134206461797320746f20636c61696d2070726f66697473a2646970667358221220606fa16829a8346b2fa6b866f1644bd60f45a46e15070860154d9f02b379f05464736f6c634300060c0033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80637e14526911610144578063c12b7c4e116100b6578063d79494df1161007a578063d79494df14610e24578063dd62ed3e14610e3b578063e33c3d3f14610ec0578063e82105fe14610ed7578063eb04f78114610f28578063fa94d18a14610f795761028d565b8063c12b7c4e14610d27578063c3c81e5614610d78578063ce2aa78b14610d8f578063cfaaa26614610dbc578063d68cfb7d14610e0d5761028d565b806395d89b411161010857806395d89b4114610ad4578063998834a314610b64578063a457c2d714610ba1578063a9059cbb14610c12578063aa9a091214610c83578063ae79e89a14610ce65761028d565b80637e145269146109445780637ffb50b3146109955780638da5cb5b146109d65780638dc4e63a14610a175780639168ae7214610a685761028d565b80634329db46116101dd5780636ae43c0e116101a15780636ae43c0e1461076857806370a08231146107a357806377dae52c1461080857806378a63f34146108395780637a0398351461087a5780637c7950f5146108df5761028d565b80634329db4614610653578063448ed4931461068e5780635ebf234f146106cf5780636124b40b14610710578063619c218c146107275761028d565b806323b872dd1161022f57806323b872dd1461047657806323ddd8ed146105075780632a165f0014610532578063313ce567146105735780633278dc67146105a157806339509351146105e25761028d565b806306fdde03146102aa578063095ea7b31461033a57806310586858146103ab578063179fc6fb146103e657806318160ddd1461044b5761028d565b3661028d5761028534601354610f9090919063ffffffff16565b601381905550005b6102a234601354610f9090919063ffffffff16565b601381905550005b3480156102b657600080fd5b506102bf611018565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ff5780820151818401526020810190506102e4565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034657600080fd5b506103936004803603604081101561035d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ba565b60405180821515815260200191505060405180910390f35b3480156103b757600080fd5b506103e4600480360360208110156103ce57600080fd5b81019080803590602001909291905050506110d1565b005b3480156103f257600080fd5b506104356004803603602081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611273565b6040518082815260200191505060405180910390f35b34801561045757600080fd5b506104606113eb565b6040518082815260200191505060405180910390f35b34801561048257600080fd5b506104ef6004803603606081101561049957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113f5565b60405180821515815260200191505060405180910390f35b34801561051357600080fd5b5061051c6114a6565b6040518082815260200191505060405180910390f35b34801561053e57600080fd5b506105476114ac565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057f57600080fd5b506105886114d2565b604051808260ff16815260200191505060405180910390f35b3480156105ad57600080fd5b506105b66114e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105ee57600080fd5b5061063b6004803603604081101561060557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061150f565b60405180821515815260200191505060405180910390f35b34801561065f57600080fd5b5061068c6004803603602081101561067657600080fd5b81019080803590602001909291905050506115b4565b005b34801561069a57600080fd5b506106a36116e3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106db57600080fd5b506106e4611709565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071c57600080fd5b5061072561172f565b005b34801561073357600080fd5b5061073c6119b7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077457600080fd5b506107a16004803603602081101561078b57600080fd5b81019080803590602001909291905050506119dd565b005b3480156107af57600080fd5b506107f2600480360360208110156107c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afa565b6040518082815260200191505060405180910390f35b34801561081457600080fd5b5061081d611b42565b604051808263ffffffff16815260200191505060405180910390f35b34801561084557600080fd5b5061084e611b58565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088657600080fd5b506108c96004803603602081101561089d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7e565b6040518082815260200191505060405180910390f35b3480156108eb57600080fd5b5061092e6004803603602081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611da2565b6040518082815260200191505060405180910390f35b34801561095057600080fd5b506109936004803603602081101561096757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e0c565b005b3480156109a157600080fd5b506109aa611f13565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb611f39565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a2357600080fd5b50610a5060048036036020811015610a3a57600080fd5b8101908080359060200190929190505050611f5f565b60405180821515815260200191505060405180910390f35b348015610a7457600080fd5b50610ab760048036036020811015610a8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7f565b604051808381526020018281526020019250505060405180910390f35b348015610ae057600080fd5b50610ae9611fa3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b29578082015181840152602081019050610b0e565b50505050905090810190601f168015610b565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b7057600080fd5b50610b9f60048036036020811015610b8757600080fd5b81019080803515159060200190929190505050612045565b005b348015610bad57600080fd5b50610bfa60048036036040811015610bc457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612143565b60405180821515815260200191505060405180910390f35b348015610c1e57600080fd5b50610c6b60048036036040811015610c3557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121e8565b60405180821515815260200191505060405180910390f35b348015610c8f57600080fd5b50610cd060048036036060811015610ca657600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506121ff565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb6122dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3357600080fd5b50610d7660048036036020811015610d4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612303565b005b348015610d8457600080fd5b50610d8d61240a565b005b348015610d9b57600080fd5b50610da46126df565b60405180821515815260200191505060405180910390f35b348015610dc857600080fd5b50610e0b60048036036020811015610ddf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f2565b005b348015610e1957600080fd5b50610e226127f9565b005b348015610e3057600080fd5b50610e396129ac565b005b348015610e4757600080fd5b50610eaa60048036036040811015610e5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc9565b6040518082815260200191505060405180910390f35b348015610ecc57600080fd5b50610ed5612d50565b005b348015610ee357600080fd5b50610f1060048036036020811015610efa57600080fd5b8101908080359060200190929190505050612f03565b60405180821515815260200191505060405180910390f35b348015610f3457600080fd5b50610f7760048036036020811015610f4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f23565b005b348015610f8557600080fd5b50610f8e61302a565b005b60008082840190508381101561100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110b05780601f10611085576101008083540402835291602001916110b0565b820191906000526020600020905b81548152906001019060200180831161109357829003601f168201915b5050505050905090565b60006110c73384846132b2565b6001905092915050565b611122816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816001015414806111be575060008160000154145b156111d157428160010181905550611235565b60006111e5620f42408484600001546121ff565b9050426111ff836001015483610f9090919063ffffffff16565b111561121357428260010181905550611233565b61122a818360010154610f9090919063ffffffff16565b82600101819055505b505b61124c828260000154610f9090919063ffffffff16565b816000018190555061126982600354610f9090919063ffffffff16565b6003819055505050565b6000601260049054906101000a900460ff16158061129657506112958261345b565b5b156112a457600090506113e6565b6112ac6139c5565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006201518061132983602001514261341190919063ffffffff16565b8161133057fe5b049050600e8110611346576000925050506113e6565b600060026013548161135457fe5b04905060006113dc8285600001516113d7600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050809450505050505b919050565b6000600254905090565b60006114028484846134ec565b61149b843361149685600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6132b2565b600190509392505050565b60035481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900460ff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115aa33846115a585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6132b2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156116df573d6000803e3d6000fd5b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117d85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806118305750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61183957600080fd5b601260049054906101000a900460ff166118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b60006118cc601354600560646121ff565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161191457fe5b049081150290604051600060405180830381858888f19350505050158015611940573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161198757fe5b049081150290604051600060405180830381858888f193505050501580156119b3573d6000803e3d6000fd5b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611a3782826000015461341190919063ffffffff16565b8160000181905550428160010181905550611a99826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af08260035461341190919063ffffffff16565b6003819055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601260009054906101000a900463ffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260049054906101000a900460ff161580611ba15750611ba0826136b6565b5b15611baf5760009050611d9d565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bbbeb72336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015611c3a57600080fd5b505afa158015611c4e573d6000803e3d6000fd5b505050506040513d6040811015611c6457600080fd5b81019080805190602001909291908051906020019092919050505091509150600062015180611c9c834261341190919063ffffffff16565b81611ca357fe5b049050600e811015611d00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b6000600260135481611d0e57fe5b0490506000611d928286611d8d600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b905080955050505050505b919050565b600062015180611dfd600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544261341190919063ffffffff16565b81611e0457fe5b049050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915090508060000154908060010154905082565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561203b5780601f106120105761010080835404028352916020019161203b565b820191906000526020600020905b81548152906001019060200180831161201e57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260046101000a81548160ff02191690831515021790555060001515811515141561214057600060138190555061213f613747565b5b50565b60006121de33846121d985600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6132b2565b6001905092915050565b60006121f53384846134ec565b6001905092915050565b600080600061220e8686613784565b9150915083811061221b57fe5b6000848061222557fe5b868809905082811115612239576001820391505b80830392506000856000038616905080868161225157fe5b04955080848161225d57fe5b049350600181826000038161226e57fe5b04018302840193506000600190508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808502955050505050509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260049054906101000a900460ff1661248c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b6124953361345b565b15612508576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f50726f6669747320616c7265616479206469737472696275746564000000000081525060200191505060405180910390fd5b6125106139c5565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905060006201518061258d83602001514261341190919063ffffffff16565b8161259457fe5b049050600e8110156125f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b60006002601354816125ff57fe5b0490506000612687828560000151612682600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050612692336137d7565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126d8573d6000803e3d6000fd5b5050505050565b601260049054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128a25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6128ab57600080fd5b601260049054906101000a900460ff1661292d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b600061293e601354601e60646121ff565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129a8573d6000803e3d6000fd5b5050565b601260049054906101000a900460ff16612a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b612a37336136b6565b15612a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139e06025913960400191505060405180910390fd5b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bbbeb72336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015612b1857600080fd5b505afa158015612b2c573d6000803e3d6000fd5b505050506040513d6040811015612b4257600080fd5b81019080805190602001909291908051906020019092919050505091509150600062015180612b7a834261341190919063ffffffff16565b81612b8157fe5b049050600e811015612bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613a05602b913960400191505060405180910390fd5b6000600260135481612bec57fe5b0490506000612c708286612c6b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610f9090919063ffffffff16565b6121ff565b9050612c7b3361386e565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cc1573d6000803e3d6000fd5b505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612df95750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612e0257600080fd5b601260049054906101000a900460ff16612e84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b6000612e95601354600860646121ff565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612eff573d6000803e3d6000fd5b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fe6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130d35750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061312b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61313457600080fd5b601260049054906101000a900460ff166131b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f446973747269627574696f6e2069732064697361626c6564000000000000000081525060200191505060405180910390fd5b60006131c7601354600760646121ff565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161320f57fe5b049081150290604051600060405180830381858888f1935050505015801561323b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838161328257fe5b049081150290604051600060405180830381858888f193505050501580156132ae573d6000803e3d6000fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132ec57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561332657600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061345383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613905565b905092915050565b600080601260009054906101000a900463ffffffff1683604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012090506010600082815260200190815260200160002060009054906101000a900460ff16915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561352657600080fd5b613577816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080601260009054906101000a900463ffffffff1683604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012090506011600082815260200190815260200160002060009054906101000a900460ff16915050919050565b6012600081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555050565b60008060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff806137b157fe5b848609905083850292508281039150828110156137cf576001820391505b509250929050565b6000601260009054906101000a900463ffffffff1682604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905060016010600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601260009054906101000a900463ffffffff1682604051602001808363ffffffff1660e01b81526004018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905060016011600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008383111582906139b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561397757808201518184015260208101905061395c565b50505050905090810190601f1680156139a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60405180604001604052806000815260200160008152509056fe50726f6669747320616c726561647920646973747269627574656420746f206661726d6572596f75206d757374207374616b6520666f72203134206461797320746f20636c61696d2070726f66697473a2646970667358221220606fa16829a8346b2fa6b866f1644bd60f45a46e15070860154d9f02b379f05464736f6c634300060c0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.