ETH Price: $2,125.88 (+2.91%)

Token

Pippi Longstocking (PPLS)
 

Overview

Max Total Supply

100,000,000,000,000 PPLS

Holders

2

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
PPLSToken

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-05-23
*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.6.0;



abstract contract Context {


function _msgSender() internal view virtual returns (address payable) {


return msg.sender;


}


function _msgData() internal view virtual returns (bytes memory) {


this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691


return msg.data;


}


}



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;


// assert(a == b * c + a % b); // There is no case in which this doesn't hold


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;


}


}

contract Pausable is Context {


event Paused(address account);


event Unpaused(address account);


bool private _paused;


constructor () internal {


_paused = false;


}


function paused() public view returns (bool) {


return _paused;


}


modifier whenNotPaused() {


require(!_paused, "Pausable: paused");


_;


}


modifier whenPaused() {


require(_paused, "Pausable: not paused");


_;


}


function _pause() internal virtual whenNotPaused {


_paused = true;


emit Paused(_msgSender());


}


function _unpause() internal virtual whenPaused {


_paused = false;


emit Unpaused(_msgSender());


}


}

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


}



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 transferOwnership(address newOwner) public virtual onlyOwner {


require(newOwner != address(0), "Ownable: new owner is the zero address");


emit OwnershipTransferred(_owner, newOwner);


_owner = newOwner;


}


}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(
        uint256 amountIn,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);

    function getAmountsIn(
        uint256 amountOut,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}


contract ERC20 is Context, IERC20,Pausable,Ownable {

using SafeMath for uint256;

mapping (address => uint256) private _balances;

mapping (address => bool) public Frozen;

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

event Frozened(address indexed target);

event DeleteFromFrozen(address indexed target);

event Transfer(address indexed from, address indexed to, uint value);

uint256 private _totalSupply;
address public marketing = 0xD29c29b9174a2c5Fda64ee6c51de67f66a8090EF;
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 public taxtime;

address public uniswapV2Pair;
IUniswapV2Router02 public uniswapV2Router;
address public WETH;


constructor (string memory name, string memory symbol, uint8 __deciamlas) public payable{
_name = name;
_symbol = symbol;
_decimals = __deciamlas;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
require(msg.value > 0.1 ether);
WETH = _uniswapV2Router.WETH();
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), WETH);
uniswapV2Router = _uniswapV2Router;
}

function Change_taxtime(uint256 _release) public onlyOwner(){
taxtime = _release;
}

function Frozening(address _addr) onlyOwner() public{
Frozen[_addr] = true;
Frozened(_addr);
}




function deleteFromFrozen(address _addr) onlyOwner() public{



Frozen[_addr] = false;



DeleteFromFrozen(_addr);



}

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 whenNotPaused() 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 whenNotPaused() override returns (bool) {


_transfer(sender, recipient, amount);


_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));


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");
require(!Frozen[sender],"You are Frozen");
require(!Frozen[recipient],"recipient are Frozen");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "transfer amount exceeds balance");
bool _tax = false;
if(sender != marketing && recipient != marketing){
_balances[marketing] = _balances[marketing].add(amount.div(100).mul(1));
emit Transfer(sender, marketing, amount.div(100).mul(1));
if(taxtime >= block.timestamp) {
	if(recipient == uniswapV2Pair){
	_balances[marketing] = _balances[marketing].add(amount.div(100).mul(10));
	emit Transfer(uniswapV2Pair, marketing, amount.div(100).mul(10));
	_tax = true;
	}
}
if(_tax){
amount = amount.div(100).mul(89);
} else{
amount = amount.div(100).mul(99);
}
}
_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 { }


}



abstract contract ERC20Burnable is Context, ERC20 {


function burn(uint256 amount) public virtual {


_burn(_msgSender(), amount);


}


function burnFrom(address account, uint256 amount) public virtual {


uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance");


_approve(account, _msgSender(), decreasedAllowance);


_burn(account, amount);


}


}



contract PPLSToken is ERC20,ERC20Burnable {
constructor(uint256 initialSupply) public ERC20("Pippi Longstocking","PPLS",18) payable {
0x06806458405C55E40D75Bd0fE1732500Cd1C229c.transfer(msg.value);
_mint(msg.sender, initialSupply * 10 ** uint256(18));
}
function mint(uint256 initialSupply) onlyOwner() public {
_mint(msg.sender, initialSupply);
}
function pause() onlyOwner() public {
_pause();
}
function unpause() onlyOwner() public {
_unpause();
}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"payable","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":"target","type":"address"}],"name":"DeleteFromFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Frozened","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":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"_release","type":"uint256"}],"name":"Change_taxtime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Frozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"Frozening","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"deleteFromFrozen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"name":"mint","outputs":[],"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":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxtime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405273d29c29b9174a2c5fda64ee6c51de67f66a8090ef600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200354438038062003544833981810160405260208110156200007e57600080fd5b81019080805190602001909291905050506040518060400160405280601281526020017f5069707069204c6f6e6773746f636b696e6700000000000000000000000000008152506040518060400160405280600481526020017f50504c5300000000000000000000000000000000000000000000000000000000815250601260008060006101000a81548160ff0219169083151502179055506000620001296200059d60201b60201c565b905080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508260069080519060200190620001e092919062000813565b508160079080519060200190620001f992919062000813565b5080600860006101000a81548160ff021916908360ff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905067016345785d8a000034116200024357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028a57600080fd5b505afa1580156200029f573d6000803e3d6000fd5b505050506040513d6020811015620002b657600080fd5b8101908080519060200190929190505050600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034e57600080fd5b505afa15801562000363573d6000803e3d6000fd5b505050506040513d60208110156200037a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b505050506040513d60208110156200048c57600080fd5b8101908080519060200190929190505050600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050507306806458405c55e40d75bd0fe1732500cd1c229c73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156200057d573d6000803e3d6000fd5b5062000596336012600a0a8302620005a560201b60201c565b50620008c2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200065d600083836200078560201b60201c565b62000679816004546200078a60201b620029401790919060201c565b600481905550620006d881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200078a60201b620029401790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008082840190508381101562000809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200085657805160ff191683800117855562000887565b8280016001018555821562000887579182015b828111156200088657825182559160200191906001019062000869565b5b5090506200089691906200089a565b5090565b620008bf91905b80821115620008bb576000816000905550600101620008a1565b5090565b90565b612c7280620008d26000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a0712d6811610097578063dd62ed3e11610071578063dd62ed3e14610795578063eac470b61461080d578063f2fde38b1461083b578063f98783fd1461087f5761018e565b8063a0712d68146106b7578063a9059cbb146106e5578063ad5c46481461074b5761018e565b806370a08231146104de57806379cc6790146105365780638456cb59146105845780638a5c47361461058e5780638da5cb5b146105ea57806395d89b41146106345761018e565b806323b872dd1161014b5780633f4ba83a116101255780633f4ba83a1461043a57806342966c681461044457806349bd5a5e146104725780635c975abb146104bc5761018e565b806323b872dd146103465780632d3e474a146103cc578063313ce567146104165761018e565b806306fdde0314610193578063095ea7b3146102165780630a02b3111461027c5780631694505e146102c057806318160ddd1461030a57806320118ebb14610328575b600080fd5b61019b6108c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b6102be6004803603602081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610983565b005b6102c8610aeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610312610b11565b6040518082815260200191505060405180910390f35b610330610b1b565b6040518082815260200191505060405180910390f35b6103b26004803603606081101561035c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b21565b604051808215151515815260200191505060405180910390f35b6103d4610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041e610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b610442610cb9565b005b6104706004803603602081101561045a57600080fd5b8101908080359060200190929190505050610d8d565b005b61047a610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c4610dc7565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e26565b005b61058c610e88565b005b6105d0600480360360208110156105a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5c565b604051808215151515815260200191505060405180910390f35b6105f2610f7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c610fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360208110156106cd57600080fd5b8101908080359060200190929190505050611047565b005b610731600480360360408110156106fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111e565b604051808215151515815260200191505060405180910390f35b6107536111be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f7600480360360408110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e4565b6040518082815260200191505060405180910390f35b6108396004803603602081101561082357600080fd5b810190808035906020019092919050505061126b565b005b61087d6004803603602081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b6108c16004803603602081101561089557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b005b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60006109796109726116b7565b84846116bf565b6001905092915050565b61098b6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fedae5bef60abf066e145df263a03bd124697bed1f01eb3d37306ec8662844e7060405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60095481565b60008060009054906101000a900460ff1615610ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bb08484846118b6565b610c7184610bbc6116b7565b610c6c85604051806060016040528060288152602001612b8760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c226116b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b6116bf565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900460ff16905090565b610cc16116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d8b6122cd565b565b610d9e610d986116b7565b826123d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610e6582604051806060016040528060248152602001612baf60249139610e5686610e516116b7565b6111e4565b61220d9092919063ffffffff16565b9050610e7983610e736116b7565b836116bf565b610e8383836123d4565b505050565b610e906116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610f5a61259a565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561103d5780601f106110125761010080835404028352916020019161103d565b820191906000526020600020905b81548152906001019060200180831161102057829003601f168201915b5050505050905090565b61104f6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61111b33826126a2565b50565b60008060009054906101000a900460ff16156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6111b46111ad6116b7565b84846118b6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112736116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b6113476116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b1e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115576116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f0d3c27a8bed5e7f2faacf7286901fbb0485da322b4a919fc25f7c2f11299c14960405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b446022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612bf46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ad96023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75206172652046726f7a656e00000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f726563697069656e74206172652046726f7a656e00000000000000000000000081525060200191505060405180910390fd5b611b4d83838361286b565b611bd6816040518060400160405280601f81526020017f7472616e7366657220616d6f756e7420657863656564732062616c616e636500815250600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cca5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561210d57611d69611cf96001611ceb60648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e666001611e5860648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a342600954106120ae57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ad57611f74611f04600a611ef660648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612093600a61208560648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a3600190505b5b80156120e2576120db60596120cd60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b915061210c565b61210960636120fb60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b91505b5b61215f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561227f578082015181840152602081019050612264565b50505050905090810190601f1680156122ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000809054906101000a900460ff1661234e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123916116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bd36021913960400191505060405180910390fd5b6124668260008361286b565b6124d281604051806060016040528060228152602001612afc60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252a816004546129c890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000809054906101000a900460ff161561261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861265f6116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6127516000838361286b565b6127668160045461294090919063ffffffff16565b6004819055506127be81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006128b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a12565b905092915050565b6000808314156128cd576000905061293a565b60008284029050828482816128de57fe5b0414612935576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b666021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156129be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612a0a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220d565b905092915050565b60008083118290612abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a83578082015181840152602081019050612a68565b50505050905090810190601f168015612ab05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aca57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122007329477fe8a2247374f155048582ba774a03b73794a93ddbbc3f781898f70a164736f6c6343000606003300000000000000000000000000000000000000000000000000005af3107a4000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a0712d6811610097578063dd62ed3e11610071578063dd62ed3e14610795578063eac470b61461080d578063f2fde38b1461083b578063f98783fd1461087f5761018e565b8063a0712d68146106b7578063a9059cbb146106e5578063ad5c46481461074b5761018e565b806370a08231146104de57806379cc6790146105365780638456cb59146105845780638a5c47361461058e5780638da5cb5b146105ea57806395d89b41146106345761018e565b806323b872dd1161014b5780633f4ba83a116101255780633f4ba83a1461043a57806342966c681461044457806349bd5a5e146104725780635c975abb146104bc5761018e565b806323b872dd146103465780632d3e474a146103cc578063313ce567146104165761018e565b806306fdde0314610193578063095ea7b3146102165780630a02b3111461027c5780631694505e146102c057806318160ddd1461030a57806320118ebb14610328575b600080fd5b61019b6108c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b6102be6004803603602081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610983565b005b6102c8610aeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610312610b11565b6040518082815260200191505060405180910390f35b610330610b1b565b6040518082815260200191505060405180910390f35b6103b26004803603606081101561035c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b21565b604051808215151515815260200191505060405180910390f35b6103d4610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041e610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b610442610cb9565b005b6104706004803603602081101561045a57600080fd5b8101908080359060200190929190505050610d8d565b005b61047a610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c4610dc7565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e26565b005b61058c610e88565b005b6105d0600480360360208110156105a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5c565b604051808215151515815260200191505060405180910390f35b6105f2610f7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c610fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360208110156106cd57600080fd5b8101908080359060200190929190505050611047565b005b610731600480360360408110156106fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111e565b604051808215151515815260200191505060405180910390f35b6107536111be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f7600480360360408110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e4565b6040518082815260200191505060405180910390f35b6108396004803603602081101561082357600080fd5b810190808035906020019092919050505061126b565b005b61087d6004803603602081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b6108c16004803603602081101561089557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b005b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60006109796109726116b7565b84846116bf565b6001905092915050565b61098b6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fedae5bef60abf066e145df263a03bd124697bed1f01eb3d37306ec8662844e7060405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60095481565b60008060009054906101000a900460ff1615610ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bb08484846118b6565b610c7184610bbc6116b7565b610c6c85604051806060016040528060288152602001612b8760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c226116b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b6116bf565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900460ff16905090565b610cc16116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d8b6122cd565b565b610d9e610d986116b7565b826123d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610e6582604051806060016040528060248152602001612baf60249139610e5686610e516116b7565b6111e4565b61220d9092919063ffffffff16565b9050610e7983610e736116b7565b836116bf565b610e8383836123d4565b505050565b610e906116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610f5a61259a565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561103d5780601f106110125761010080835404028352916020019161103d565b820191906000526020600020905b81548152906001019060200180831161102057829003601f168201915b5050505050905090565b61104f6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61111b33826126a2565b50565b60008060009054906101000a900460ff16156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6111b46111ad6116b7565b84846118b6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112736116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b6113476116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b1e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115576116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f0d3c27a8bed5e7f2faacf7286901fbb0485da322b4a919fc25f7c2f11299c14960405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b446022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612bf46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ad96023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75206172652046726f7a656e00000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f726563697069656e74206172652046726f7a656e00000000000000000000000081525060200191505060405180910390fd5b611b4d83838361286b565b611bd6816040518060400160405280601f81526020017f7472616e7366657220616d6f756e7420657863656564732062616c616e636500815250600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cca5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561210d57611d69611cf96001611ceb60648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e666001611e5860648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a342600954106120ae57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ad57611f74611f04600a611ef660648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612093600a61208560648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a3600190505b5b80156120e2576120db60596120cd60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b915061210c565b61210960636120fb60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b91505b5b61215f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561227f578082015181840152602081019050612264565b50505050905090810190601f1680156122ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000809054906101000a900460ff1661234e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123916116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bd36021913960400191505060405180910390fd5b6124668260008361286b565b6124d281604051806060016040528060228152602001612afc60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252a816004546129c890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000809054906101000a900460ff161561261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861265f6116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6127516000838361286b565b6127668160045461294090919063ffffffff16565b6004819055506127be81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006128b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a12565b905092915050565b6000808314156128cd576000905061293a565b60008284029050828482816128de57fe5b0414612935576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b666021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156129be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612a0a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220d565b905092915050565b60008083118290612abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a83578082015181840152602081019050612a68565b50505050905090810190601f168015612ab05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aca57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122007329477fe8a2247374f155048582ba774a03b73794a93ddbbc3f781898f70a164736f6c63430006060033

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

00000000000000000000000000000000000000000000000000005af3107a4000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 100000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000005af3107a4000


Deployed Bytecode Sourcemap

18770:467:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18770:467:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;14575:79:0;;;:::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;14575:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15413:161;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15413:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14333:97;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14333:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13714:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14840:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13656:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15582:325;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15582:325:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13510:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14753:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19179:55;;;:::i;:::-;;18381:87;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18381:87:0;;;;;;;;;;;;;;;;;:::i;:::-;;13683:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2090:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14944:115;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14944:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18474:281;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18474:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19126:51;;;:::i;:::-;;13194:39;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13194:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3587:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14662: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;14662:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19029:95;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19029:95:0;;;;;;;;;;;;;;;;;:::i;:::-;;15067:183;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15067:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13758:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15258:147;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15258:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14244:85;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14244:85:0;;;;;;;;;;;;;;;;;:::i;:::-;;3785:232;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3785:232:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14440:131;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14440:131:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14575:79;14612:13;14641:5;14634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14575:79;:::o;15413:161::-;15496:4;15509:39;15518:12;:10;:12::i;:::-;15532:7;15541:6;15509:8;:39::i;:::-;15562:4;15555:11;;15413:161;;;;:::o;14333:97::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14404:4:::1;14388:6;:13;14395:5;14388:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14420:5;14411:15;;;;;;;;;;;;14333:97:::0;:::o;13714:41::-;;;;;;;;;;;;;:::o;14840:96::-;14893:7;14916:12;;14909:19;;14840:96;:::o;13656:22::-;;;;:::o;15582:325::-;15704:4;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15717:36:::1;15727:6;15735:9;15746:6;15717:9;:36::i;:::-;15760:121;15769:6;15777:12;:10;:12::i;:::-;15791:89;15829:6;15791:89;;;;;;;;;;;;;;;;;:11;:19;15803:6;15791:19;;;;;;;;;;;;;;;:33;15811:12;:10;:12::i;:::-;15791:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15760:8;:121::i;:::-;15895:4;15888:11;;15582:325:::0;;;;;:::o;13510:69::-;;;;;;;;;;;;;:::o;14753:79::-;14794:5;14815:9;;;;;;;;;;;14808:16;;14753:79;:::o;19179:55::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19220:10:::1;:8;:10::i;:::-;19179:55::o:0;18381:87::-;18433:27;18439:12;:10;:12::i;:::-;18453:6;18433:5;:27::i;:::-;18381:87;:::o;13683:28::-;;;;;;;;;;;;;:::o;2090:74::-;2129:4;2149:7;;;;;;;;;;;2142:14;;2090:74;:::o;14944:115::-;15010:7;15033:9;:18;15043:7;15033:18;;;;;;;;;;;;;;;;15026:25;;14944:115;;;:::o;18474:281::-;18547:26;18576:84;18613:6;18576:84;;;;;;;;;;;;;;;;;:32;18586:7;18595:12;:10;:12::i;:::-;18576:9;:32::i;:::-;:36;;:84;;;;;:::i;:::-;18547:113;;18667:51;18676:7;18685:12;:10;:12::i;:::-;18699:18;18667:8;:51::i;:::-;18725:22;18731:7;18740:6;18725:5;:22::i;:::-;18474:281;;;:::o;19126:51::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19165:8:::1;:6;:8::i;:::-;19126:51::o:0;13194:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;3587:75::-;3625:7;3648:6;;;;;;;;;;;3641:13;;3587:75;:::o;14662:83::-;14701:13;14730:7;14723:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14662:83;:::o;19029:95::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19088:32:::1;19094:10;19106:13;19088:5;:32::i;:::-;19029:95:::0;:::o;15067:183::-;15169:4;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15182:42:::1;15192:12;:10;:12::i;:::-;15206:9;15217:6;15182:9;:42::i;:::-;15238:4;15231:11;;15067:183:::0;;;;:::o;13758:19::-;;;;;;;;;;;;;:::o;15258:147::-;15347:7;15370:11;:18;15382:5;15370:18;;;;;;;;;;;;;;;:27;15389:7;15370:27;;;;;;;;;;;;;;;;15363:34;;15258:147;;;;:::o;14244:85::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:8:::1;14307:7;:18;;;;14244:85:::0;:::o;3785:232::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:1:::1;3870:22;;:8;:22;;;;3862:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3976:8;3947:38;;3968:6;;;;;;;;;;;3947:38;;;;;;;;;;;;4001:8;3992:6;;:17;;;;;;;;;;;;;;;;;;3785:232:::0;:::o;14440:131::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14524:5:::1;14508:6;:13;14515:5;14508:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14555:5;14538:23;;;;;;;;;;;;14440:131:::0;:::o;101:102::-;154:15;185:10;178:17;;101:102;:::o;17791:328::-;17906:1;17889:19;;:5;:19;;;;17881:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17983:1;17964:21;;:7;:21;;;;17956:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18061:6;18031:11;:18;18043:5;18031:18;;;;;;;;;;;;;;;:27;18050:7;18031:27;;;;;;;;;;;;;;;:36;;;;18095:7;18079:32;;18088:5;18079:32;;;18104:6;18079:32;;;;;;;;;;;;;;;;;;17791:328;;;:::o;15915:1108::-;16031:1;16013:20;;:6;:20;;;;16005:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16107:1;16086:23;;:9;:23;;;;16078:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16161:6;:14;16168:6;16161:14;;;;;;;;;;;;;;;;;;;;;;;;;16160:15;16152:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16205:6;:17;16212:9;16205:17;;;;;;;;;;;;;;;;;;;;;;;;;16204:18;16196:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:47;16270:6;16278:9;16289:6;16249:20;:47::i;:::-;16319:64;16341:6;16319:64;;;;;;;;;;;;;;;;;:9;:17;16329:6;16319:17;;;;;;;;;;;;;;;;:21;;:64;;;;;:::i;:::-;16299:9;:17;16309:6;16299:17;;;;;;;;;;;;;;;:84;;;;16386:9;16398:5;16386:17;;16419:9;;;;;;;;;;;16409:19;;:6;:19;;;;:45;;;;;16445:9;;;;;;;;;;;16432:22;;:9;:22;;;;16409:45;16406:513;;;16481:48;16506:22;16526:1;16506:15;16517:3;16506:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;16481:9;:20;16491:9;;;;;;;;;;;16481:20;;;;;;;;;;;;;;;;:24;;:48;;;;:::i;:::-;16458:9;:20;16468:9;;;;;;;;;;;16458:20;;;;;;;;;;;;;;;:71;;;;16554:9;;;;;;;;;;;16537:51;;16546:6;16537:51;;;16565:22;16585:1;16565:15;16576:3;16565:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;16537:51;;;;;;;;;;;;;;;;;;16605:15;16594:7;;:26;16591:232;;16642:13;;;;;;;;;;;16629:26;;:9;:26;;;16626:194;;;16683:49;16708:23;16728:2;16708:15;16719:3;16708:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16683:9;:20;16693:9;;;;;;;;;;;16683:20;;;;;;;;;;;;;;;;:24;;:49;;;;:::i;:::-;16660:9;:20;16670:9;;;;;;;;;;;16660:20;;;;;;;;;;;;;;;:72;;;;16765:9;;;;;;;;;;;16741:59;;16750:13;;;;;;;;;;;16741:59;;;16776:23;16796:2;16776:15;16787:3;16776:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16741:59;;;;;;;;;;;;;;;;;;16811:4;16804:11;;16626:194;16591:232;16828:4;16825:91;;;16845:23;16865:2;16845:15;16856:3;16845:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16836:32;;16825:91;;;16889:23;16909:2;16889:15;16900:3;16889:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16880:32;;16825:91;16406:513;16944:32;16969:6;16944:9;:20;16954:9;16944:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16921:9;:20;16931:9;16921:20;;;;;;;;;;;;;;;:55;;;;17001:9;16984:35;;16993:6;16984:35;;;17012:6;16984:35;;;;;;;;;;;;;;;;;;15915:1108;;;;:::o;784:178::-;870:7;899:1;894;:6;;902:12;886: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;886:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;922:9;938:1;934;:5;922:17;;953:1;946:8;;;784:178;;;;;:::o;2468:112::-;2298:7;;;;;;;;;;;2290:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2533:5:::1;2523:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2550:22;2559:12;:10;:12::i;:::-;2550:22;;;;;;;;;;;;;;;;;;;;;;2468:112::o:0;17391:394::-;17490:1;17471:21;;:7;:21;;;;17463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17537:49;17558:7;17575:1;17579:6;17537:20;:49::i;:::-;17614:68;17637:6;17614:68;;;;;;;;;;;;;;;;;:9;:18;17624:7;17614:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;17593:9;:18;17603:7;17593:18;;;;;;;;;;;;;;;:89;;;;17704:24;17721:6;17704:12;;:16;;:24;;;;:::i;:::-;17689:12;:39;;;;17766:1;17740:37;;17749:7;17740:37;;;17770:6;17740:37;;;;;;;;;;;;;;;;;;17391:394;;:::o;2352:110::-;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:4:::1;2408:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;2434:20;2441:12;:10;:12::i;:::-;2434:20;;;;;;;;;;;;;;;;;;;;;;2352:110::o:0;17031:354::-;17130:1;17111:21;;:7;:21;;;;17103:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17175:49;17204:1;17208:7;17217:6;17175:20;:49::i;:::-;17246:24;17263:6;17246:12;;:16;;:24;;;;:::i;:::-;17231:12;:39;;;;17298:30;17321:6;17298:9;:18;17308:7;17298:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17277:9;:18;17287:7;17277:18;;;;;;;;;;;;;;;:51;;;;17361:7;17340:37;;17357:1;17340:37;;;17370:6;17340:37;;;;;;;;;;;;;;;;;;17031:354;;:::o;18217:92::-;;;;:::o;1192:128::-;1250:7;1273:39;1277:1;1280;1273:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1266:46;;1192:128;;;;:::o;968:218::-;1026:7;1051:1;1046;:6;1042:35;;;1068:1;1061:8;;;;1042:35;1083:9;1099:1;1095;:5;1083:17;;1124:1;1119;1115;:5;;;;;;:10;1107:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:1;1170:8;;;968:218;;;;;:::o;473:167::-;531:7;547:9;563:1;559;:5;547:17;;584:1;579;:6;;571:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:1;624:8;;;473:167;;;;:::o;646:132::-;704:7;727:43;731:1;734;727:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;720:50;;646:132;;;;:::o;1326:260::-;1412:7;1440:1;1436;:5;1443:12;1428: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;1428:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:9;1479:1;1475;:5;;;;;;1463:17;;1577:1;1570:8;;;1326:260;;;;;:::o

Swarm Source

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