ETH Price: $3,267.37 (+3.07%)
Gas: 2 Gwei

Token

ohohoh.io (OHOHOH)
 

Overview

Max Total Supply

2,512 OHOHOH

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.036132965770151951 OHOHOH

Value
$0.00
0xd5418ba0d21fbfb52db715649e50bed47eadd828
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:
OhOhOh

Compiler Version
v0.6.2+commit.bacdbe57

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-28
*/

/**
     * OhOhOh is a degen token that is directly inspired by Christmas. 
     * Even if you had a bad year, at the end of the year, there is always place for joy and wonder with Christmas. We wanted to to the same with $OhOhOh !
     * Telegram : t.me/ohohoh_christmas
     * Website : www.ohohoh.io
     * 
     * Code based on : HypeBurn contract 
     */


pragma solidity ^0.6.2;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


interface IERC20 {

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


library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

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

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

        return c;
    }

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

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


library Address {

    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

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

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

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

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

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


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

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

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

    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}


contract OhOhOh is ERC20, Ownable {
  
  address public feeRecipient;
  address public burnAddress;
  bool private activeFee;
  uint256 burnPercent; 
  uint256 rewardPercent; 
  uint256 xmasGift;
    
  constructor() public ERC20("ohohoh.io", "OHOHOH") { // Symbol and Name
    // Mint 2512 XMAS (18 Decimals)
    _mint(0x891f6D0e871b91dabdD89f77d91C0cd7A1f4eC0B, 2260000000000000000000);      // launch Address - 2260 tokens for private sale + liquidity
    _mint(address(this), 252000000000000000000);                                    // locked Xmas Reward - 252 tokens - unlocked the 20st Dec 2020 for a big prize
    feeRecipient = 0x891f6D0e871b91dabdD89f77d91C0cd7A1f4eC0B;                      // tax Address - for distributing rewards to holders every day before XMas
    burnAddress = 0x000000000000000000000000000000000000dEaD;                       // burn Address - don't go there, son. No token ever returned from dEaD address...
    activeFee = false;
    burnPercent = 5500;                                                             // 5500 = 55% of the tax is burnt                                    
    rewardPercent = 4500;                                                           // 4500 = 45% of the tax are used to reward holders
    xmasGift = 252000000000000000000;                                               // locked Xmas reward value
    
  }

  // Exception to transfer fees, for example for Uniswap contracts.
  mapping (address => bool) public feeException;
  
  event AddFeeException(address account);
  event RemoveFeeException(address account);
  
  function activateFee(bool _activeFee) public onlyOwner {
    activeFee = _activeFee;
  }

  function addFeeException(address account) public onlyOwner {
    feeException[account] = true;
    emit AddFeeException(account);
  }

  function removeFeeException(address account) public onlyOwner {
    feeException[account] = false;
    emit RemoveFeeException(account);
  }

  function getTransferFee() public view returns(uint256) {
    if (activeFee == false) return 0;
    uint256 transferFee;                        // Fee as percentage, where 100 = 1%
    uint256 blockTime = block.timestamp;

    if (blockTime < 1606780800) {               // before December 1 2020 
        transferFee = 0;                          // fee = 0%
    } else if(blockTime < 1606867200) {         // then until December 2 2020
        transferFee = 100;                       // fee = 1%
    } else if(blockTime < 1606953600) {         // then until December 3 2020
        transferFee = 200;                       // fee = 2%
    } else if(blockTime < 1607040000) {         // then until December 4 2020
        transferFee = 300;                       // fee = 3%
    } else if(blockTime < 1607126400) {         // then until December 5 2020
        transferFee = 400;                       // fee = 4%
    } else if(blockTime < 1607212800) {         // then until December 6 2020
        transferFee = 500;                       // fee = 5%
    } else if(blockTime < 1607299200) {         // then until December 7 2020
        transferFee = 600;                       // fee = 6%
    } else if(blockTime < 1607385600) {         // then until December 8 2020
        transferFee = 700;                       // fee = 7%
    } else if(blockTime < 1607472000) {         // then until December 9 2020
        transferFee = 800;                       // fee = 8%
    } else if(blockTime < 1607558400) {         // then until December 10 2020
        transferFee = 900;                       // fee = 9%
    } else if(blockTime < 1607644800) {         // then until December 11 2020
        transferFee = 1000;                       // fee = 10%
    } else if(blockTime < 1607731200) {         // then until December 12 2020
        transferFee = 1100;                       // fee = 11%
    } else if(blockTime < 1607817600) {         // then until December 13 2020
        transferFee = 1200;                       // fee = 12%
    } else if(blockTime < 1607904000) {         // then until December 14 2020
        transferFee = 1300;                       // fee = 13%
    } else if(blockTime < 1607990400) {         // then until December 15 2020
        transferFee = 1400;                       // fee = 14%
    } else if(blockTime < 1608076800) {         // then until December 16 2020
        transferFee = 1500;                       // fee = 15%
    } else if(blockTime < 1608163200) {         // then until December 17 2020
        transferFee = 1600;                       // fee = 16%
    } else if(blockTime < 1608249600) {         // then until December 18 2020
        transferFee = 1700;                       // fee = 17%
    } else if(blockTime < 1608336000) {         // then until December 19 2020
        transferFee = 1800;                       // fee = 18%
    } else if(blockTime < 1608422400) {         // then until December 20 2020
        transferFee = 1900;                       // fee = 19%
    } else if(blockTime < 1608508800) {         // then until December 21 2020
        transferFee = 2000;                       // fee = 20%
    } else if(blockTime < 1608595200) {         // then until December 22 2020
        transferFee = 2100;                       // fee = 21%
    } else if(blockTime < 1608681600) {         // then until December 23 2020
        transferFee = 2200;                       // fee = 22%
    } else if(blockTime < 1608768000) {         // then until December 24 2020
        transferFee = 2300;                       // fee = 23%
    } else if(blockTime < 1608854400) {         // then until December 25 2020
        transferFee = 2400;                       // fee = 24%
    } else {                                    // then after December 25 2020
        transferFee = 2500;                       // fee = 25%
    }
    
    return transferFee;
  }
  
  function unlockXmasReward() public {
      require(block.timestamp > 1608422400);    // Xmas reward will be unlocked on Dec 20th
      _transfer(address(this), feeRecipient, xmasGift);
  }


  // Transfer recipient recives amount - fee
  function transfer(address recipient, uint256 amount) public override returns (bool) {
    if (activeFee && feeException[_msgSender()] == false) {
      uint256 transferFee = getTransferFee();
      uint256 fee = transferFee.mul(amount).div(10000);
      uint256 amountLessFee = amount.sub(fee);
      uint256 amountBurnt = fee.mul(burnPercent).div(10000);
      uint256 amountRewarded = fee.mul(rewardPercent).div(10000);
      _transfer(_msgSender(), recipient, amountLessFee);
      _transfer(_msgSender(), feeRecipient, amountRewarded);
      _transfer(_msgSender(), burnAddress, amountBurnt);
    } else {
      _transfer(_msgSender(), recipient, amount);
    }
    return true;
  }

  // TransferFrom recipient recives amount, sender's account is debited amount + fee
  function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
    if (activeFee && feeException[recipient] == false) {
      uint256 transferFee = getTransferFee();
      uint256 fee = transferFee.mul(amount).div(10000);
      uint256 amountBurnt = fee.mul(burnPercent).div(10000);
      uint256 amountRewarded = fee.mul(rewardPercent).div(10000);
      _transfer(sender, feeRecipient, amountRewarded);
      _transfer(sender, burnAddress, amountBurnt);
    }
    _transfer(sender, recipient, amount);
    _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
    return true;
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddFeeException","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveFeeException","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bool","name":"_activeFee","type":"bool"}],"name":"activateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addFeeException","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"feeException","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransferFee","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFeeException","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockXmasReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f6f686f686f682e696f00000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4f484f484f48000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000518565b508060049080519060200190620000af92919062000518565b506012600560006101000a81548160ff021916908360ff16021790555050506000620000e0620002a460201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ae73891f6d0e871b91dabdd89f77d91c0cd7a1f4ec0b687a83ccea01bed00000620002ac60201b60201c565b620001c930680da933d8d8c6700000620002ac60201b60201c565b73891f6d0e871b91dabdd89f77d91c0cd7a1f4ec0b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff02191690831515021790555061157c600881905550611194600981905550680da933d8d8c6700000600a81905550620005c7565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000364600083836200048a60201b60201c565b62000380816002546200048f60201b620020e31790919060201c565b600281905550620003de816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200048f60201b620020e31790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000808284019050838110156200050e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200055b57805160ff19168380011785556200058c565b828001600101855582156200058c579182015b828111156200058b5782518255916020019190600101906200056e565b5b5090506200059b91906200059f565b5090565b620005c491905b80821115620005c0576000816000905550600101620005a6565b5090565b90565b6123fe80620005d76000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806361fcfd0c116100b857806395d89b411161007c57806395d89b41146105bc5780639a17d8c11461063f578063a457c2d71461065d578063a9059cbb146106c3578063dd62ed3e14610729578063f2fde38b146107a157610142565b806361fcfd0c146104bc57806370a08231146104c657806370d5ae051461051e578063715018a6146105685780638da5cb5b1461057257610142565b806328b2578b1161010a57806328b2578b146103185780633098cdfc14610348578063313ce5671461038c57806339509351146103b05780634690484014610416578063498ffb901461046057610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806325cf1b74146102d4575b600080fd5b61014f6107e5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610887565b604051808215151515815260200191505060405180910390f35b6102386108a5565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108af565b604051808215151515815260200191505060405180910390f35b610316600480360360208110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae9565b005b6103466004803603602081101561032e57600080fd5b81019080803515159060200190929190505050610c71565b005b61038a6004803603602081101561035e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b005b610394610ee0565b604051808260ff1660ff16815260200191505060405180910390f35b6103fc600480360360408110156103c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ef7565b604051808215151515815260200191505060405180910390f35b61041e610faa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104a26004803603602081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd0565b604051808215151515815260200191505060405180910390f35b6104c4610ff0565b005b610508600480360360208110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611031565b6040518082815260200191505060405180910390f35b610526611079565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61057061109f565b005b61057a61122a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c4611254565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106045780820151818401526020810190506105e9565b50505050905090810190601f1680156106315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106476112f6565b6040518082815260200191505060405180910390f35b6106a96004803603604081101561067357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061156c565b604051808215151515815260200191505060405180910390f35b61070f600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611639565b604051808215151515815260200191505060405180910390f35b61078b6004803603604081101561073f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117fc565b6040518082815260200191505060405180910390f35b6107e3600480360360208110156107b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611883565b005b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561087d5780601f106108525761010080835404028352916020019161087d565b820191906000526020600020905b81548152906001019060200180831161086057829003601f168201915b5050505050905090565b600061089b610894611a93565b8484611a9b565b6001905092915050565b6000600254905090565b6000600760149054906101000a900460ff16801561091d575060001515600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15610a1257600061092c6112f6565b905060006109576127106109498685611c9290919063ffffffff16565b611d1890919063ffffffff16565b9050600061098461271061097660085485611c9290919063ffffffff16565b611d1890919063ffffffff16565b905060006109b16127106109a360095486611c9290919063ffffffff16565b611d1890919063ffffffff16565b90506109e088600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d62565b610a0d88600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d62565b505050505b610a1d848484611d62565b610ade84610a29611a93565b610ad98560405180606001604052806028815260200161233360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8f611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b611a9b565b600190509392505050565b610af1611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5f6f41849ec25c114eb487c7350582993fe237c055d4b85a0162562ebff90cfe81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b610c79611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760146101000a81548160ff02191690831515021790555050565b610d60611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fae0993f85474e26fe71b5d453f1067e41f5a659baa13972d2fe86f7232f8cd1381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600560009054906101000a900460ff16905090565b6000610fa0610f04611a93565b84610f9b8560016000610f15611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e390919063ffffffff16565b611a9b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b635fde9400421161100057600080fd5b61102f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54611d62565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110a7611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112ec5780601f106112c1576101008083540402835291602001916112ec565b820191906000526020600020905b8154815290600101906020018083116112cf57829003601f168201915b5050505050905090565b6000801515600760149054906101000a900460ff161515141561131c5760009050611569565b600080429050635fc587808110156113375760009150611563565b635fc6d90081101561134c5760649150611562565b635fc82a808110156113615760c89150611561565b635fc97c008110156113775761012c9150611560565b635fcacd8081101561138d57610190915061155f565b635fcc1f008110156113a3576101f4915061155e565b635fcd70808110156113b957610258915061155d565b635fcec2008110156113cf576102bc915061155c565b635fd013808110156113e557610320915061155b565b635fd165008110156113fb57610384915061155a565b635fd2b680811015611411576103e89150611559565b635fd408008110156114275761044c9150611558565b635fd5598081101561143d576104b09150611557565b635fd6ab00811015611453576105149150611556565b635fd7fc80811015611469576105789150611555565b635fd94e0081101561147f576105dc9150611554565b635fda9f80811015611495576106409150611553565b635fdbf1008110156114ab576106a49150611552565b635fdd42808110156114c1576107089150611551565b635fde94008110156114d75761076c9150611550565b635fdfe5808110156114ed576107d0915061154f565b635fe1370081101561150357610834915061154e565b635fe2888081101561151957610898915061154d565b635fe3da0081101561152f576108fc915061154c565b635fe52b8081101561154557610960915061154b565b6109c491505b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b81925050505b90565b600061162f611579611a93565b8461162a856040518060600160405280602581526020016123a460259139600160006115a3611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b611a9b565b6001905092915050565b6000600760149054906101000a900460ff1680156116ae575060001515600b6000611662611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156117df5760006116bd6112f6565b905060006116e86127106116da8685611c9290919063ffffffff16565b611d1890919063ffffffff16565b905060006116ff828661216b90919063ffffffff16565b9050600061172c61271061171e60085486611c9290919063ffffffff16565b611d1890919063ffffffff16565b9050600061175961271061174b60095487611c9290919063ffffffff16565b611d1890919063ffffffff16565b905061176d611766611a93565b8985611d62565b6117a1611778611a93565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d62565b6117d56117ac611a93565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d62565b50505050506117f2565b6117f16117ea611a93565b8484611d62565b5b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61188b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122a46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806123806024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122ca6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080831415611ca55760009050611d12565b6000828402905082848281611cb657fe5b0414611d0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806123126021913960400191505060405180910390fd5b809150505b92915050565b6000611d5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121b5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061235b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806122816023913960400191505060405180910390fd5b611e7983838361227b565b611ee4816040518060600160405280602681526020016122ec602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f77816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561209557808201518184015260208101905061207a565b50505050905090810190601f1680156120c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006121ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612023565b905092915050565b60008083118290612261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561222657808201518184015260208101905061220b565b50505050905090810190601f1680156122535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161226d57fe5b049050809150509392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a420b1008aa24723e7dd88a9e0b1b269f3ffec5d522096f8ba876df4c1da9d164736f6c63430006020033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806361fcfd0c116100b857806395d89b411161007c57806395d89b41146105bc5780639a17d8c11461063f578063a457c2d71461065d578063a9059cbb146106c3578063dd62ed3e14610729578063f2fde38b146107a157610142565b806361fcfd0c146104bc57806370a08231146104c657806370d5ae051461051e578063715018a6146105685780638da5cb5b1461057257610142565b806328b2578b1161010a57806328b2578b146103185780633098cdfc14610348578063313ce5671461038c57806339509351146103b05780634690484014610416578063498ffb901461046057610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806325cf1b74146102d4575b600080fd5b61014f6107e5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610887565b604051808215151515815260200191505060405180910390f35b6102386108a5565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108af565b604051808215151515815260200191505060405180910390f35b610316600480360360208110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae9565b005b6103466004803603602081101561032e57600080fd5b81019080803515159060200190929190505050610c71565b005b61038a6004803603602081101561035e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b005b610394610ee0565b604051808260ff1660ff16815260200191505060405180910390f35b6103fc600480360360408110156103c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ef7565b604051808215151515815260200191505060405180910390f35b61041e610faa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104a26004803603602081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd0565b604051808215151515815260200191505060405180910390f35b6104c4610ff0565b005b610508600480360360208110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611031565b6040518082815260200191505060405180910390f35b610526611079565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61057061109f565b005b61057a61122a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c4611254565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106045780820151818401526020810190506105e9565b50505050905090810190601f1680156106315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106476112f6565b6040518082815260200191505060405180910390f35b6106a96004803603604081101561067357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061156c565b604051808215151515815260200191505060405180910390f35b61070f600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611639565b604051808215151515815260200191505060405180910390f35b61078b6004803603604081101561073f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117fc565b6040518082815260200191505060405180910390f35b6107e3600480360360208110156107b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611883565b005b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561087d5780601f106108525761010080835404028352916020019161087d565b820191906000526020600020905b81548152906001019060200180831161086057829003601f168201915b5050505050905090565b600061089b610894611a93565b8484611a9b565b6001905092915050565b6000600254905090565b6000600760149054906101000a900460ff16801561091d575060001515600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15610a1257600061092c6112f6565b905060006109576127106109498685611c9290919063ffffffff16565b611d1890919063ffffffff16565b9050600061098461271061097660085485611c9290919063ffffffff16565b611d1890919063ffffffff16565b905060006109b16127106109a360095486611c9290919063ffffffff16565b611d1890919063ffffffff16565b90506109e088600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d62565b610a0d88600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d62565b505050505b610a1d848484611d62565b610ade84610a29611a93565b610ad98560405180606001604052806028815260200161233360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8f611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b611a9b565b600190509392505050565b610af1611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5f6f41849ec25c114eb487c7350582993fe237c055d4b85a0162562ebff90cfe81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b610c79611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760146101000a81548160ff02191690831515021790555050565b610d60611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fae0993f85474e26fe71b5d453f1067e41f5a659baa13972d2fe86f7232f8cd1381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600560009054906101000a900460ff16905090565b6000610fa0610f04611a93565b84610f9b8560016000610f15611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e390919063ffffffff16565b611a9b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b635fde9400421161100057600080fd5b61102f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54611d62565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110a7611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112ec5780601f106112c1576101008083540402835291602001916112ec565b820191906000526020600020905b8154815290600101906020018083116112cf57829003601f168201915b5050505050905090565b6000801515600760149054906101000a900460ff161515141561131c5760009050611569565b600080429050635fc587808110156113375760009150611563565b635fc6d90081101561134c5760649150611562565b635fc82a808110156113615760c89150611561565b635fc97c008110156113775761012c9150611560565b635fcacd8081101561138d57610190915061155f565b635fcc1f008110156113a3576101f4915061155e565b635fcd70808110156113b957610258915061155d565b635fcec2008110156113cf576102bc915061155c565b635fd013808110156113e557610320915061155b565b635fd165008110156113fb57610384915061155a565b635fd2b680811015611411576103e89150611559565b635fd408008110156114275761044c9150611558565b635fd5598081101561143d576104b09150611557565b635fd6ab00811015611453576105149150611556565b635fd7fc80811015611469576105789150611555565b635fd94e0081101561147f576105dc9150611554565b635fda9f80811015611495576106409150611553565b635fdbf1008110156114ab576106a49150611552565b635fdd42808110156114c1576107089150611551565b635fde94008110156114d75761076c9150611550565b635fdfe5808110156114ed576107d0915061154f565b635fe1370081101561150357610834915061154e565b635fe2888081101561151957610898915061154d565b635fe3da0081101561152f576108fc915061154c565b635fe52b8081101561154557610960915061154b565b6109c491505b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b81925050505b90565b600061162f611579611a93565b8461162a856040518060600160405280602581526020016123a460259139600160006115a3611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b611a9b565b6001905092915050565b6000600760149054906101000a900460ff1680156116ae575060001515600b6000611662611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156117df5760006116bd6112f6565b905060006116e86127106116da8685611c9290919063ffffffff16565b611d1890919063ffffffff16565b905060006116ff828661216b90919063ffffffff16565b9050600061172c61271061171e60085486611c9290919063ffffffff16565b611d1890919063ffffffff16565b9050600061175961271061174b60095487611c9290919063ffffffff16565b611d1890919063ffffffff16565b905061176d611766611a93565b8985611d62565b6117a1611778611a93565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611d62565b6117d56117ac611a93565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d62565b50505050506117f2565b6117f16117ea611a93565b8484611d62565b5b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61188b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122a46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806123806024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122ca6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080831415611ca55760009050611d12565b6000828402905082848281611cb657fe5b0414611d0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806123126021913960400191505060405180910390fd5b809150505b92915050565b6000611d5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121b5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061235b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806122816023913960400191505060405180910390fd5b611e7983838361227b565b611ee4816040518060600160405280602681526020016122ec602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120239092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f77816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561209557808201518184015260208101905061207a565b50505050905090810190601f1680156120c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006121ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612023565b905092915050565b60008083118290612261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561222657808201518184015260208101905061220b565b50505050905090810190601f1680156122535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161226d57fe5b049050809150509392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a420b1008aa24723e7dd88a9e0b1b269f3ffec5d522096f8ba876df4c1da9d164736f6c63430006020033

Deployed Bytecode Sourcemap

10983:7743:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10983:7743:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7208:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7208:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8062:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8062:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7485:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18016:705;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18016:705:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12841:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12841:143:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12603:90;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12603:90:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12699:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12699:136:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7394:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8568:218;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8568:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11026:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12456:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12456:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16979:191;;;:::i;:::-;;7593:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7593:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11058:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1332:148;;;:::i;:::-;;1118:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7299:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7299:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12990:3981;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8794:269;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8794:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17224:700;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17224:700:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7903:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7903:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1488:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1488:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7208:83;7245:13;7278:5;7271:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7208:83;:::o;8062:169::-;8145:4;8162:39;8171:12;:10;:12::i;:::-;8185:7;8194:6;8162:8;:39::i;:::-;8219:4;8212:11;;8062:169;;;;:::o;7485:100::-;7538:7;7565:12;;7558:19;;7485:100;:::o;18016:705::-;18114:4;18131:9;;;;;;;;;;;:45;;;;;18171:5;18144:32;;:12;:23;18157:9;18144:23;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;18131:45;18127:400;;;18187:19;18209:16;:14;:16::i;:::-;18187:38;;18234:11;18248:34;18276:5;18248:23;18264:6;18248:11;:15;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;18234:48;;18291:19;18313:31;18338:5;18313:20;18321:11;;18313:3;:7;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;18291:53;;18353:22;18378:33;18405:5;18378:22;18386:13;;18378:3;:7;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;18353:58;;18420:47;18430:6;18438:12;;;;;;;;;;;18452:14;18420:9;:47::i;:::-;18476:43;18486:6;18494:11;;;;;;;;;;;18507;18476:9;:43::i;:::-;18127:400;;;;;18533:36;18543:6;18551:9;18562:6;18533:9;:36::i;:::-;18576:121;18585:6;18593:12;:10;:12::i;:::-;18607:89;18645:6;18607:89;;;;;;;;;;;;;;;;;:11;:19;18619:6;18607:19;;;;;;;;;;;;;;;:33;18627:12;:10;:12::i;:::-;18607:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18576:8;:121::i;:::-;18711:4;18704:11;;18016:705;;;;;:::o;12841:143::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12934:5:::1;12910:12;:21;12923:7;12910:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12951:27;12970:7;12951:27;;;;;;;;;;;;;;;;;;;;;;12841:143:::0;:::o;12603:90::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12677:10:::1;12665:9;;:22;;;;;;;;;;;;;;;;;;12603:90:::0;:::o;12699:136::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12789:4:::1;12765:12;:21;12778:7;12765:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12805:24;12821:7;12805:24;;;;;;;;;;;;;;;;;;;;;;12699:136:::0;:::o;7394:83::-;7435:5;7460:9;;;;;;;;;;;7453:16;;7394:83;:::o;8568:218::-;8656:4;8673:83;8682:12;:10;:12::i;:::-;8696:7;8705:50;8744:10;8705:11;:25;8717:12;:10;:12::i;:::-;8705:25;;;;;;;;;;;;;;;:34;8731:7;8705:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8673:8;:83::i;:::-;8774:4;8767:11;;8568:218;;;;:::o;11026:27::-;;;;;;;;;;;;;:::o;12456:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;16979:191::-;17049:10;17031:15;:28;17023:37;;;;;;17116:48;17134:4;17141:12;;;;;;;;;;;17155:8;;17116:9;:48::i;:::-;16979:191::o;7593:119::-;7659:7;7686:9;:18;7696:7;7686:18;;;;;;;;;;;;;;;;7679:25;;7593:119;;;:::o;11058:26::-;;;;;;;;;;;;;:::o;1332:148::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1439:1:::1;1402:40;;1423:6;;;;;;;;;;;1402:40;;;;;;;;;;;;1470:1;1453:6;;:19;;;;;;;;;;;;;;;;;;1332:148::o:0;1118:79::-;1156:7;1183:6;;;;;;;;;;;1176:13;;1118:79;:::o;7299:87::-;7338:13;7371:7;7364:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:87;:::o;12990:3981::-;13036:7;13069:5;13056:18;;:9;;;;;;;;;;;:18;;;13052:32;;;13083:1;13076:8;;;;13052:32;13091:19;13177:17;13197:15;13177:35;;13237:10;13225:9;:22;13221:3714;;;13315:1;13301:15;;13221:3714;;;13382:10;13370:9;:22;13367:3568;;;13457:3;13443:17;;13367:3568;;;13523:10;13511:9;:22;13508:3427;;;13598:3;13584:17;;13508:3427;;;13664:10;13652:9;:22;13649:3286;;;13739:3;13725:17;;13649:3286;;;13805:10;13793:9;:22;13790:3145;;;13880:3;13866:17;;13790:3145;;;13946:10;13934:9;:22;13931:3004;;;14021:3;14007:17;;13931:3004;;;14087:10;14075:9;:22;14072:2863;;;14162:3;14148:17;;14072:2863;;;14228:10;14216:9;:22;14213:2722;;;14303:3;14289:17;;14213:2722;;;14369:10;14357:9;:22;14354:2581;;;14444:3;14430:17;;14354:2581;;;14510:10;14498:9;:22;14495:2440;;;14586:3;14572:17;;14495:2440;;;14652:10;14640:9;:22;14637:2298;;;14728:4;14714:18;;14637:2298;;;14796:10;14784:9;:22;14781:2154;;;14872:4;14858:18;;14781:2154;;;14940:10;14928:9;:22;14925:2010;;;15016:4;15002:18;;14925:2010;;;15084:10;15072:9;:22;15069:1866;;;15160:4;15146:18;;15069:1866;;;15228:10;15216:9;:22;15213:1722;;;15304:4;15290:18;;15213:1722;;;15372:10;15360:9;:22;15357:1578;;;15448:4;15434:18;;15357:1578;;;15516:10;15504:9;:22;15501:1434;;;15592:4;15578:18;;15501:1434;;;15660:10;15648:9;:22;15645:1290;;;15736:4;15722:18;;15645:1290;;;15804:10;15792:9;:22;15789:1146;;;15880:4;15866:18;;15789:1146;;;15948:10;15936:9;:22;15933:1002;;;16024:4;16010:18;;15933:1002;;;16092:10;16080:9;:22;16077:858;;;16168:4;16154:18;;16077:858;;;16236:10;16224:9;:22;16221:714;;;16312:4;16298:18;;16221:714;;;16380:10;16368:9;:22;16365:570;;;16456:4;16442:18;;16365:570;;;16524:10;16512:9;:22;16509:426;;;16600:4;16586:18;;16509:426;;;16668:10;16656:9;:22;16653:282;;;16744:4;16730:18;;16653:282;;;16888:4;16874:18;;16653:282;16509:426;16365:570;16221:714;16077:858;15933:1002;15789:1146;15645:1290;15501:1434;15357:1578;15213:1722;15069:1866;14925:2010;14781:2154;14637:2298;14495:2440;14354:2581;14213:2722;14072:2863;13931:3004;13790:3145;13649:3286;13508:3427;13367:3568;13221:3714;16954:11;16947:18;;;;12990:3981;;:::o;8794:269::-;8887:4;8904:129;8913:12;:10;:12::i;:::-;8927:7;8936:96;8975:15;8936:96;;;;;;;;;;;;;;;;;:11;:25;8948:12;:10;:12::i;:::-;8936:25;;;;;;;;;;;;;;;:34;8962:7;8936:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8904:8;:129::i;:::-;9051:4;9044:11;;8794:269;;;;:::o;17224:700::-;17302:4;17319:9;;;;;;;;;;;:48;;;;;17362:5;17332:35;;:12;:26;17345:12;:10;:12::i;:::-;17332:26;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;17319:48;17315:586;;;17378:19;17400:16;:14;:16::i;:::-;17378:38;;17425:11;17439:34;17467:5;17439:23;17455:6;17439:11;:15;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;17425:48;;17482:21;17506:15;17517:3;17506:6;:10;;:15;;;;:::i;:::-;17482:39;;17530:19;17552:31;17577:5;17552:20;17560:11;;17552:3;:7;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;17530:53;;17592:22;17617:33;17644:5;17617:22;17625:13;;17617:3;:7;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;17592:58;;17659:49;17669:12;:10;:12::i;:::-;17683:9;17694:13;17659:9;:49::i;:::-;17717:53;17727:12;:10;:12::i;:::-;17741;;;;;;;;;;;17755:14;17717:9;:53::i;:::-;17779:49;17789:12;:10;:12::i;:::-;17803:11;;;;;;;;;;;17816;17779:9;:49::i;:::-;17315:586;;;;;;;;17851:42;17861:12;:10;:12::i;:::-;17875:9;17886:6;17851:9;:42::i;:::-;17315:586;17914:4;17907:11;;17224:700;;;;:::o;7903:151::-;7992:7;8019:11;:18;8031:5;8019:18;;;;;;;;;;;;;;;:27;8038:7;8019:27;;;;;;;;;;;;;;;;8012:34;;7903:151;;;;:::o;1488:244::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1597:1:::1;1577:22;;:8;:22;;;;1569:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1687:8;1658:38;;1679:6;;;;;;;;;;;1658:38;;;;;;;;;;;;1716:8;1707:6;;:17;;;;;;;;;;;;;;;;;;1488:244:::0;:::o;433:106::-;486:15;521:10;514:17;;433:106;:::o;10430:346::-;10549:1;10532:19;;:5;:19;;;;10524:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10630:1;10611:21;;:7;:21;;;;10603:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10714:6;10684:11;:18;10696:5;10684:18;;;;;;;;;;;;;;;:27;10703:7;10684:27;;;;;;;;;;;;;;;:36;;;;10752:7;10736:32;;10745:5;10736:32;;;10761:6;10736:32;;;;;;;;;;;;;;;;;;10430:346;;;:::o;2987:250::-;3045:7;3074:1;3069;:6;3065:47;;;3099:1;3092:8;;;;3065:47;3124:9;3140:1;3136;:5;3124:17;;3169:1;3164;3160;:5;;;;;;:10;3152:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:1;3221:8;;;2987:250;;;;;:::o;3245:132::-;3303:7;3330:39;3334:1;3337;3330:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3323:46;;3245:132;;;;:::o;9071:539::-;9195:1;9177:20;;:6;:20;;;;9169:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9279:1;9258:23;;:9;:23;;;;9250:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9334:47;9355:6;9363:9;9374:6;9334:20;:47::i;:::-;9414:71;9436:6;9414:71;;;;;;;;;;;;;;;;;:9;:17;9424:6;9414:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9394:9;:17;9404:6;9394:17;;;;;;;;;;;;;;;:91;;;;9519:32;9544:6;9519:9;:20;9529:9;9519:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9496:9;:20;9506:9;9496:20;;;;;;;;;;;;;;;:55;;;;9584:9;9567:35;;9576:6;9567:35;;;9595:6;9567:35;;;;;;;;;;;;;;;;;;9071:539;;;:::o;2787:192::-;2873:7;2906:1;2901;:6;;2909:12;2893:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2893:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:9;2949:1;2945;:5;2933:17;;2970:1;2963:8;;;2787:192;;;;;:::o;2454:181::-;2512:7;2532:9;2548:1;2544;:5;2532:17;;2573:1;2568;:6;;2560:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2626:1;2619:8;;;2454:181;;;;:::o;2643:136::-;2701:7;2728:43;2732:1;2735;2728:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2721:50;;2643:136;;;;:::o;3385:191::-;3471:7;3503:1;3499;:5;3506:12;3491:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3491:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3530:9;3546:1;3542;:5;;;;;;3530:17;;3567:1;3560:8;;;3385:191;;;;;:::o;10882:92::-;;;;:::o

Swarm Source

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