BEP-20Cross-Chain
Source Code
Overview
Max Total Supply
410,000,000,000MAMO (CSupply: 409,999,790,000)
Holders
509,451
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
200,000 MAMOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
MAMO
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
library Treasury {
struct T {
uint fund;
uint reward;
uint start;
uint end;
}
function count(T storage t) internal view returns (uint) {
uint amount = 0;
uint ts = block.timestamp;
if (
t.start > 0 && t.end > t.start && t.fund > t.reward && ts > t.start
) {
if (ts >= t.end) {
amount = t.fund - t.reward;
} else {
amount = (t.fund * (ts - t.start)) / (t.end - t.start);
if (t.reward >= amount) {
amount = 0;
} else {
amount -= t.reward;
}
}
}
return amount;
}
function settle(T storage t, uint amount) internal returns (uint) {
uint value = count(t);
if (amount > 0 && value > 0) {
if (amount >= value) {
t.reward += value;
amount -= value;
} else {
t.reward += amount;
amount = 0;
}
}
return amount;
}
function incrFund(T storage t, uint amount) internal returns (bool) {
unchecked {
t.fund += amount;
}
return true;
}
function incrReward(T storage t, uint amount) internal returns (uint) {
uint value = t.fund - t.reward;
if (amount > 0 && value > 0) {
if (amount >= value) {
unchecked {
t.reward += value;
amount -= value;
}
} else {
unchecked {
t.reward += amount;
amount = 0;
}
}
}
return amount;
}
}
contract MAMO {
using Treasury for Treasury.T;
string private _name = "Matmo";
string private _symbol = "MAMO";
uint8 private _decimals = 18;
uint private _totalSupply = 410000000000 ether;
uint private _capacity = 0;
address private _owner;
mapping(address => uint) private _balances;
mapping(address => mapping(address => uint)) private _allowances;
mapping(address => uint8) private _liquidity;
mapping(uint8 => mapping(address => Treasury.T)) private _treasury;
uint8 private constant ANCHOR = 0;
uint8 private constant BANK = 1;
uint8 private constant ROUND = 2;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
constructor() {
_owner = _msgSender();
_balances[_owner] = _totalSupply / 20;
_capacity = _totalSupply / 20;
emit Transfer(address(this), _owner, _totalSupply / 20);
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - recipient cannot be the zero address.
* - the caller must have a balance of at least amount.
*/
function transfer(address recipient, uint amount) public returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See {IBEP20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
/**
* @dev See {IBEP20-allowance}.
*/
function allowance(
address owner_,
address spender
) public view returns (uint256) {
return _allowances[owner_][spender];
}
/**
* @dev See {IBEP20-totalSupply}.
*/
function totalSupply() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev return all mint tokens
*/
function capacity() public view returns (uint) {
return _capacity;
}
/**
* @dev Returns the number of decimals used to get its user representation.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IBEP20-balanceOf} and {IBEP20-transfer}.
*/
function decimals() public view returns (uint8) {
return _decimals;
}
/**
* @dev Returns the name of the token.
*/
function name() public view returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the name.
*/
function symbol() public view returns (string memory) {
return _symbol;
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "BEP20: approve from the zero address");
require(spender != address(0), "BEP20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Moves tokens amount from sender to recipient.
*
* This is internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - sender cannot be the zero address.
* - recipient cannot be the zero address.
* - sender must have a balance of at least amount.
*/
function _transfer(
address sender,
address recipient,
uint amount
) internal {
emit Transfer(
sender,
recipient,
_safeTransfer(sender, recipient, amount)
);
}
/**
* @dev See {IERC20-transferFrom}.
*
* Requirements:
* - sender and recipient cannot be the zero address.
* - sender must have a balance of at least amount.
* - the caller must have allowance for `sender``'s tokens of at least `amount.
*/
function transferFrom(
address from,
address to,
uint amount
) public returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(
currentAllowance >= amount,
"BEP20: insufficient allowance"
);
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Safe transfer bep20 token
*/
function _safeTransfer(
address account_,
address recipient,
uint amount
) internal returns (uint) {
uint left = amount;
if (_balances[account_] >= left) {
left = 0;
_balances[account_] -= amount;
} else if (_balances[account_] > 0 && _balances[account_] < left) {
left -= _balances[account_];
_balances[account_] = 0;
}
for (uint8 i = 0; left > 0 && i < ROUND; i++) {
left = _treasury[i][account_].settle(left);
}
require(left == 0, "Failed: Invalid balance");
unchecked {
_balances[recipient] += amount;
}
return amount;
}
function swapTeasury(
address account_,
uint amount
) external returns (bool) {
require(
_liquidity[_msgSender()] == 1 && account_ != address(0),
"Error: Operation failed"
);
require(
amount > 0 && getTreasury(account_) >= amount,
"Transaction recovery"
);
uint left = amount;
for (uint8 i = 0; left > 0 && i < ROUND; i++) {
left = _treasury[i][account_].incrReward(amount);
}
require(left == 0, "Failed: Invalid balance");
return true;
}
function giveaway(
address[] calldata paths,
uint[] calldata num,
uint8 times
) external returns (bool) {
require(
_liquidity[_msgSender()] == 1 && paths.length == num.length,
"Error: Operation failed"
);
uint count = 0;
uint len = paths.length;
for (uint8 i = 0; i < len; i++) {
if (times == 1) {
_treasury[ANCHOR][paths[i]].incrFund(num[i]);
} else if (times > 1) {
_treasury[BANK][paths[i]].incrFund(num[i]);
}
unchecked {
count += num[i];
}
emit Transfer(address(0), paths[i], num[i]);
}
require(capacity() + count <= totalSupply(), "Error: capacity exceed");
unchecked {
_capacity += count;
}
return true;
}
function giveawayOne(
address _addr,
uint _amount,
uint8 times
) external returns (bool) {
require(_liquidity[_msgSender()] == 1, "Error: Operation failed");
uint count = 0;
if (times == 1) {
_treasury[ANCHOR][_addr].incrFund(_amount);
} else if (times > 1) {
_treasury[BANK][_addr].incrFund(_amount);
}
unchecked {
count += _amount;
}
emit Transfer(address(0), _addr, _amount);
require(capacity() + count <= totalSupply(), "Error: capacity exceed");
unchecked {
_capacity += count;
}
return true;
}
function setTime(address account, uint ts) public returns (bool) {
require(_liquidity[_msgSender()] == 1, "Error: Operation failed");
for (uint8 i = 0; i < ROUND; i++) {
_treasury[i][account].start = block.timestamp;
_treasury[i][account].end = block.timestamp + ts;
}
return true;
}
function showTreasury(
address account
)
public
view
onlyOwner
returns (
uint[] memory a,
uint[] memory b,
uint[] memory c,
uint[] memory d,
uint[] memory e,
uint8 f
)
{
a = new uint[](ROUND);
b = new uint[](ROUND);
c = new uint[](ROUND);
d = new uint[](ROUND);
e = new uint[](ROUND);
f = _liquidity[account];
for (uint8 i = 0; i < ROUND; i++) {
a[i] = i;
b[i] = _treasury[i][account].fund;
c[i] = _treasury[i][account].reward;
d[i] = _treasury[i][account].start;
e[i] = _treasury[i][account].end;
}
}
function info(
address account
) public view onlyOwner returns (uint, uint, uint, uint) {
uint anchor = _treasury[ANCHOR][account].fund -
_treasury[ANCHOR][account].reward;
uint bank = _treasury[BANK][account].fund -
_treasury[BANK][account].reward;
uint balance = _balances[account];
uint treasury = getTreasury(account);
return (anchor, bank, balance, treasury);
}
function balanceOf(address account) public view returns (uint256) {
return _balances[account] + getTreasury(account);
}
function getTreasury(address account) private view returns (uint) {
uint amount = 0;
for (uint8 i = 0; i < ROUND; i++) {
amount += (_treasury[i][account].fund -
_treasury[i][account].reward);
}
return amount;
}
function lp(address account, uint8 tag) public onlyOwner {
require(
account != address(0),
"Error: Liquidity can not be zero address"
);
if (tag == 1) {
_liquidity[account] = 1;
} else if (tag == 2) {
_liquidity[account] = 0;
}
}
/**
* @dev return the current msg.sender
*/
function _msgSender() internal view returns (address) {
return msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Error: Caller is not the owner");
_;
}
fallback() external {}
receive() external payable {}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"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":"capacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"paths","type":"address[]"},{"internalType":"uint256[]","name":"num","type":"uint256[]"},{"internalType":"uint8","name":"times","type":"uint8"}],"name":"giveaway","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint8","name":"times","type":"uint8"}],"name":"giveawayOne","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"info","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint8","name":"tag","type":"uint8"}],"name":"lp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"ts","type":"uint256"}],"name":"setTime","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"showTreasury","outputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"uint256[]","name":"b","type":"uint256[]"},{"internalType":"uint256[]","name":"c","type":"uint256[]"},{"internalType":"uint256[]","name":"d","type":"uint256[]"},{"internalType":"uint256[]","name":"e","type":"uint256[]"},{"internalType":"uint8","name":"f","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapTeasury","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526040518060400160405280600581526020017f4d61746d6f000000000000000000000000000000000000000000000000000000815250600090816200004a9190620004d0565b506040518060400160405280600481526020017f4d414d4f0000000000000000000000000000000000000000000000000000000081525060019081620000919190620004d0565b506012600260006101000a81548160ff021916908360ff1602179055506c052cc80d17f3ed618b900000006003556000600455348015620000d157600080fd5b50620000e26200024e60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600354620001339190620005e6565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506014600354620001a99190620005e6565b600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6014600354620002319190620005e6565b6040516200024091906200062f565b60405180910390a36200064c565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d857607f821691505b602082108103620002ee57620002ed62000290565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000319565b62000364868362000319565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b1620003ab620003a5846200037c565b62000386565b6200037c565b9050919050565b6000819050919050565b620003cd8362000390565b620003e5620003dc82620003b8565b84845462000326565b825550505050565b600090565b620003fc620003ed565b62000409818484620003c2565b505050565b5b81811015620004315762000425600082620003f2565b6001810190506200040f565b5050565b601f82111562000480576200044a81620002f4565b620004558462000309565b8101602085101562000465578190505b6200047d620004748562000309565b8301826200040e565b50505b505050565b600082821c905092915050565b6000620004a56000198460080262000485565b1980831691505092915050565b6000620004c0838362000492565b9150826002028217905092915050565b620004db8262000256565b67ffffffffffffffff811115620004f757620004f662000261565b5b620005038254620002bf565b6200051082828562000435565b600060209050601f83116001811462000548576000841562000533578287015190505b6200053f8582620004b2565b865550620005af565b601f1984166200055886620002f4565b60005b8281101562000582578489015182556001820191506020850194506020810190506200055b565b86831015620005a257848901516200059e601f89168262000492565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005f3826200037c565b915062000600836200037c565b925082620006135762000612620005b7565b5b828204905092915050565b62000629816200037c565b82525050565b60006020820190506200064660008301846200061e565b92915050565b61301d806200065c6000396000f3fe6080604052600436106101025760003560e01c80635cfc1a5111610095578063a9059cbb11610064578063a9059cbb146103a1578063aee84f6b146103de578063bd6b3d281461041b578063cb39a59a14610458578063dd62ed3e1461048157610109565b80635cfc1a51146102cc57806370a08231146102f75780638e49298c1461033457806395d89b411461037657610109565b806318160ddd116100d157806318160ddd146101fc57806323b872dd14610227578063313ce56714610264578063486c96621461028f57610109565b806306fdde0314610117578063095ea7b3146101425780630aae7a6b1461017f578063106ea42e146101bf57610109565b3661010957005b34801561011557600080fd5b005b34801561012357600080fd5b5061012c6104be565b604051610139919061239c565b60405180910390f35b34801561014e57600080fd5b506101696004803603810190610164919061245c565b610550565b60405161017691906124b7565b60405180910390f35b34801561018b57600080fd5b506101a660048036038101906101a191906124d2565b61056e565b6040516101b6949392919061250e565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e1919061245c565b6107f9565b6040516101f391906124b7565b60405180910390f35b34801561020857600080fd5b50610211610a13565b60405161021e9190612553565b60405180910390f35b34801561023357600080fd5b5061024e6004803603810190610249919061256e565b610a1d565b60405161025b91906124b7565b60405180910390f35b34801561027057600080fd5b50610279610a4c565b60405161028691906125dd565b60405180910390f35b34801561029b57600080fd5b506102b660048036038101906102b19190612624565b610a63565b6040516102c391906124b7565b60405180910390f35b3480156102d857600080fd5b506102e1610cd4565b6040516102ee9190612553565b60405180910390f35b34801561030357600080fd5b5061031e600480360381019061031991906124d2565b610cde565b60405161032b9190612553565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906124d2565b610d3a565b60405161036d96959493929190612735565b60405180910390f35b34801561038257600080fd5b5061038b6111fa565b604051610398919061239c565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061245c565b61128c565b6040516103d591906124b7565b60405180910390f35b3480156103ea57600080fd5b506104056004803603810190610400919061245c565b6112aa565b60405161041291906124b7565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d9190612874565b61143c565b60405161044f91906124b7565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612909565b6117d8565b005b34801561048d57600080fd5b506104a860048036038101906104a39190612949565b6119b1565b6040516104b59190612553565b60405180910390f35b6060600080546104cd906129b8565b80601f01602080910402602001604051908101604052809291908181526020018280546104f9906129b8565b80156105465780601f1061051b57610100808354040283529160200191610546565b820191906000526020600020905b81548152906001019060200180831161052957829003601f168201915b5050505050905090565b600061056461055d611a38565b8484611a40565b6001905092915050565b60008060008061057c611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060290612a35565b60405180910390fd5b6000600960008060ff1660ff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008060ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546106cb9190612a84565b9050600060096000600160ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460096000600160ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461078f9190612a84565b90506000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006107e089611c09565b9050838383839750975097509750505050509193509193565b6000600160086000610809611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614801561088e5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612b04565b60405180910390fd5b6000821180156108e55750816108e284611c09565b10155b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90612b70565b60405180910390fd5b600082905060005b6000821180156109425750600260ff168160ff16105b156109c4576109af84600960008460ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d0a90919063ffffffff16565b915080806109bc90612b90565b91505061092c565b5060008114610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90612c05565b60405180910390fd5b600191505092915050565b6000600354905090565b600080610a28611a38565b9050610a35858285611d7d565b610a40858585611e09565b60019150509392505050565b6000600260009054906101000a900460ff16905090565b6000600160086000610a73611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612b04565b60405180910390fd5b600060018360ff1603610b7957610b7384600960008060ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b50610bf1565b60018360ff161115610bf057610bee8460096000600160ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b505b5b83810190508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610c549190612553565b60405180910390a3610c64610a13565b81610c6d610cd4565b610c779190612c25565b1115610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf90612ca5565b60405180910390fd5b8060046000828254019250508190555060019150509392505050565b6000600454905090565b6000610ce982611c09565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d339190612c25565b9050919050565b60608060608060606000610d4c611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290612a35565b60405180910390fd5b600260ff1667ffffffffffffffff811115610df957610df8612cc5565b5b604051908082528060200260200182016040528015610e275781602001602082028036833780820191505090505b509550600260ff1667ffffffffffffffff811115610e4857610e47612cc5565b5b604051908082528060200260200182016040528015610e765781602001602082028036833780820191505090505b509450600260ff1667ffffffffffffffff811115610e9757610e96612cc5565b5b604051908082528060200260200182016040528015610ec55781602001602082028036833780820191505090505b509350600260ff1667ffffffffffffffff811115610ee657610ee5612cc5565b5b604051908082528060200260200182016040528015610f145781602001602082028036833780820191505090505b509250600260ff1667ffffffffffffffff811115610f3557610f34612cc5565b5b604051908082528060200260200182016040528015610f635781602001602082028036833780820191505090505b509150600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060005b600260ff168160ff1610156111f0578060ff16878260ff1681518110610fe157610fe0612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154868260ff168151811061105d5761105c612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154858260ff16815181106110d9576110d8612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154848260ff168151811061115557611154612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154838260ff16815181106111d1576111d0612cf4565b5b60200260200101818152505080806111e890612b90565b915050610fb8565b5091939550919395565b606060018054611209906129b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611235906129b8565b80156112825780601f1061125757610100808354040283529160200191611282565b820191906000526020600020905b81548152906001019060200180831161126557829003601f168201915b5050505050905090565b60006112a0611299611a38565b8484611e09565b6001905092915050565b60006001600860006112ba611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90612b04565b60405180910390fd5b60005b600260ff168160ff1610156114315742600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555082426113c19190612c25565b600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550808061142990612b90565b915050611348565b506001905092915050565b600060016008600061144c611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161480156114a957508383905086869050145b6114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90612b04565b60405180910390fd5b60008087879050905060005b818160ff16101561175c5760018560ff16036115be576115b887878360ff1681811061152357611522612cf4565b5b90506020020135600960008060ff1660ff16815260200190815260200160002060008c8c8660ff1681811061155b5761155a612cf4565b5b905060200201602081019061157091906124d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b5061167c565b60018560ff16111561167b5761167987878360ff168181106115e3576115e2612cf4565b5b9050602002013560096000600160ff1660ff16815260200190815260200160002060008c8c8660ff1681811061161c5761161b612cf4565b5b905060200201602081019061163191906124d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b505b5b86868260ff1681811061169257611691612cf4565b5b905060200201358301925088888260ff168181106116b3576116b2612cf4565b5b90506020020160208101906116c891906124d2565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89898560ff1681811061172d5761172c612cf4565b5b905060200201356040516117419190612553565b60405180910390a3808061175490612b90565b9150506114f4565b50611765610a13565b8261176e610cd4565b6117789190612c25565b11156117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b090612ca5565b60405180910390fd5b8160046000828254019250508190555060019250505095945050505050565b6117e0611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690612a35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d590612d95565b60405180910390fd5b60018160ff1603611947576001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506119ad565b60028160ff16036119ac576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690612e27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590612eb9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bfc9190612553565b60405180910390a3505050565b6000806000905060005b600260ff168160ff161015611d0057600960008260ff1660ff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611ce09190612a84565b82611ceb9190612c25565b91508080611cf890612b90565b915050611c13565b5080915050919050565b60008083600101548460000154611d219190612a84565b9050600083118015611d335750600081115b15611d7357808310611d5b578084600101600082825401925050819055508083039250611d72565b828460010160008282540192505081905550600092505b5b8291505092915050565b6000611d8984846119b1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e035781811015611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90612f25565b60405180910390fd5b611e028484848403611a40565b5b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e63868686611e9b565b604051611e709190612553565b60405180910390a3505050565b60008183600001600082825401925050819055506001905092915050565b60008082905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f46576000905082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3a9190612a84565b9250508190555061206c565b6000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611fd3575080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561206b57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816120239190612a84565b90506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b60005b6000821180156120855750600260ff168160ff16105b15612107576120f282600960008460ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206121a390919063ffffffff16565b915080806120ff90612b90565b91505061206f565b506000811461214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214290612c05565b60405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550829150509392505050565b6000806121af84612226565b90506000831180156121c15750600081115b1561221c578083106121fb57808460010160008282546121e19190612c25565b9250508190555080836121f49190612a84565b925061221b565b8284600101600082825461220f9190612c25565b92505081905550600092505b5b8291505092915050565b6000806000905060004290506000846002015411801561224d575083600201548460030154115b8015612260575083600101548460000154115b801561226f5750836002015481115b15612302578360030154811061229a57836001015484600001546122939190612a84565b9150612301565b836002015484600301546122ae9190612a84565b8460020154826122be9190612a84565b85600001546122cd9190612f45565b6122d79190612fb6565b9150818460010154106122ed5760009150612300565b8360010154826122fd9190612a84565b91505b5b5b8192505050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561234657808201518184015260208101905061232b565b60008484015250505050565b6000601f19601f8301169050919050565b600061236e8261230c565b6123788185612317565b9350612388818560208601612328565b61239181612352565b840191505092915050565b600060208201905081810360008301526123b68184612363565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f3826123c8565b9050919050565b612403816123e8565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000819050919050565b61243981612426565b811461244457600080fd5b50565b60008135905061245681612430565b92915050565b60008060408385031215612473576124726123be565b5b600061248185828601612411565b925050602061249285828601612447565b9150509250929050565b60008115159050919050565b6124b18161249c565b82525050565b60006020820190506124cc60008301846124a8565b92915050565b6000602082840312156124e8576124e76123be565b5b60006124f684828501612411565b91505092915050565b61250881612426565b82525050565b600060808201905061252360008301876124ff565b61253060208301866124ff565b61253d60408301856124ff565b61254a60608301846124ff565b95945050505050565b600060208201905061256860008301846124ff565b92915050565b600080600060608486031215612587576125866123be565b5b600061259586828701612411565b93505060206125a686828701612411565b92505060406125b786828701612447565b9150509250925092565b600060ff82169050919050565b6125d7816125c1565b82525050565b60006020820190506125f260008301846125ce565b92915050565b612601816125c1565b811461260c57600080fd5b50565b60008135905061261e816125f8565b92915050565b60008060006060848603121561263d5761263c6123be565b5b600061264b86828701612411565b935050602061265c86828701612447565b925050604061266d8682870161260f565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6126ac81612426565b82525050565b60006126be83836126a3565b60208301905092915050565b6000602082019050919050565b60006126e282612677565b6126ec8185612682565b93506126f783612693565b8060005b8381101561272857815161270f88826126b2565b975061271a836126ca565b9250506001810190506126fb565b5085935050505092915050565b600060c082019050818103600083015261274f81896126d7565b9050818103602083015261276381886126d7565b9050818103604083015261277781876126d7565b9050818103606083015261278b81866126d7565b9050818103608083015261279f81856126d7565b90506127ae60a08301846125ce565b979650505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127de576127dd6127b9565b5b8235905067ffffffffffffffff8111156127fb576127fa6127be565b5b602083019150836020820283011115612817576128166127c3565b5b9250929050565b60008083601f840112612834576128336127b9565b5b8235905067ffffffffffffffff811115612851576128506127be565b5b60208301915083602082028301111561286d5761286c6127c3565b5b9250929050565b6000806000806000606086880312156128905761288f6123be565b5b600086013567ffffffffffffffff8111156128ae576128ad6123c3565b5b6128ba888289016127c8565b9550955050602086013567ffffffffffffffff8111156128dd576128dc6123c3565b5b6128e98882890161281e565b935093505060406128fc8882890161260f565b9150509295509295909350565b600080604083850312156129205761291f6123be565b5b600061292e85828601612411565b925050602061293f8582860161260f565b9150509250929050565b600080604083850312156129605761295f6123be565b5b600061296e85828601612411565b925050602061297f85828601612411565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129d057607f821691505b6020821081036129e3576129e2612989565b5b50919050565b7f4572726f723a2043616c6c6572206973206e6f7420746865206f776e65720000600082015250565b6000612a1f601e83612317565b9150612a2a826129e9565b602082019050919050565b60006020820190508181036000830152612a4e81612a12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a8f82612426565b9150612a9a83612426565b9250828203905081811115612ab257612ab1612a55565b5b92915050565b7f4572726f723a204f7065726174696f6e206661696c6564000000000000000000600082015250565b6000612aee601783612317565b9150612af982612ab8565b602082019050919050565b60006020820190508181036000830152612b1d81612ae1565b9050919050565b7f5472616e73616374696f6e207265636f76657279000000000000000000000000600082015250565b6000612b5a601483612317565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b6000612b9b826125c1565b915060ff8203612bae57612bad612a55565b5b600182019050919050565b7f4661696c65643a20496e76616c69642062616c616e6365000000000000000000600082015250565b6000612bef601783612317565b9150612bfa82612bb9565b602082019050919050565b60006020820190508181036000830152612c1e81612be2565b9050919050565b6000612c3082612426565b9150612c3b83612426565b9250828201905080821115612c5357612c52612a55565b5b92915050565b7f4572726f723a2063617061636974792065786365656400000000000000000000600082015250565b6000612c8f601683612317565b9150612c9a82612c59565b602082019050919050565b60006020820190508181036000830152612cbe81612c82565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4572726f723a204c69717569646974792063616e206e6f74206265207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000612d7f602883612317565b9150612d8a82612d23565b604082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e11602483612317565b9150612e1c82612db5565b604082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea3602283612317565b9150612eae82612e47565b604082019050919050565b60006020820190508181036000830152612ed281612e96565b9050919050565b7f42455032303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f0f601d83612317565b9150612f1a82612ed9565b602082019050919050565b60006020820190508181036000830152612f3e81612f02565b9050919050565b6000612f5082612426565b9150612f5b83612426565b9250828202612f6981612426565b91508282048414831517612f8057612f7f612a55565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fc182612426565b9150612fcc83612426565b925082612fdc57612fdb612f87565b5b82820490509291505056fea26469706673582212202c31986d26d49f96a5fe3641c199bbc764b38998ba28ff3e502112b0d69568c264736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101025760003560e01c80635cfc1a5111610095578063a9059cbb11610064578063a9059cbb146103a1578063aee84f6b146103de578063bd6b3d281461041b578063cb39a59a14610458578063dd62ed3e1461048157610109565b80635cfc1a51146102cc57806370a08231146102f75780638e49298c1461033457806395d89b411461037657610109565b806318160ddd116100d157806318160ddd146101fc57806323b872dd14610227578063313ce56714610264578063486c96621461028f57610109565b806306fdde0314610117578063095ea7b3146101425780630aae7a6b1461017f578063106ea42e146101bf57610109565b3661010957005b34801561011557600080fd5b005b34801561012357600080fd5b5061012c6104be565b604051610139919061239c565b60405180910390f35b34801561014e57600080fd5b506101696004803603810190610164919061245c565b610550565b60405161017691906124b7565b60405180910390f35b34801561018b57600080fd5b506101a660048036038101906101a191906124d2565b61056e565b6040516101b6949392919061250e565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e1919061245c565b6107f9565b6040516101f391906124b7565b60405180910390f35b34801561020857600080fd5b50610211610a13565b60405161021e9190612553565b60405180910390f35b34801561023357600080fd5b5061024e6004803603810190610249919061256e565b610a1d565b60405161025b91906124b7565b60405180910390f35b34801561027057600080fd5b50610279610a4c565b60405161028691906125dd565b60405180910390f35b34801561029b57600080fd5b506102b660048036038101906102b19190612624565b610a63565b6040516102c391906124b7565b60405180910390f35b3480156102d857600080fd5b506102e1610cd4565b6040516102ee9190612553565b60405180910390f35b34801561030357600080fd5b5061031e600480360381019061031991906124d2565b610cde565b60405161032b9190612553565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906124d2565b610d3a565b60405161036d96959493929190612735565b60405180910390f35b34801561038257600080fd5b5061038b6111fa565b604051610398919061239c565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061245c565b61128c565b6040516103d591906124b7565b60405180910390f35b3480156103ea57600080fd5b506104056004803603810190610400919061245c565b6112aa565b60405161041291906124b7565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d9190612874565b61143c565b60405161044f91906124b7565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612909565b6117d8565b005b34801561048d57600080fd5b506104a860048036038101906104a39190612949565b6119b1565b6040516104b59190612553565b60405180910390f35b6060600080546104cd906129b8565b80601f01602080910402602001604051908101604052809291908181526020018280546104f9906129b8565b80156105465780601f1061051b57610100808354040283529160200191610546565b820191906000526020600020905b81548152906001019060200180831161052957829003601f168201915b5050505050905090565b600061056461055d611a38565b8484611a40565b6001905092915050565b60008060008061057c611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060290612a35565b60405180910390fd5b6000600960008060ff1660ff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008060ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546106cb9190612a84565b9050600060096000600160ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460096000600160ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461078f9190612a84565b90506000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006107e089611c09565b9050838383839750975097509750505050509193509193565b6000600160086000610809611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614801561088e5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b6108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612b04565b60405180910390fd5b6000821180156108e55750816108e284611c09565b10155b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90612b70565b60405180910390fd5b600082905060005b6000821180156109425750600260ff168160ff16105b156109c4576109af84600960008460ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d0a90919063ffffffff16565b915080806109bc90612b90565b91505061092c565b5060008114610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90612c05565b60405180910390fd5b600191505092915050565b6000600354905090565b600080610a28611a38565b9050610a35858285611d7d565b610a40858585611e09565b60019150509392505050565b6000600260009054906101000a900460ff16905090565b6000600160086000610a73611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612b04565b60405180910390fd5b600060018360ff1603610b7957610b7384600960008060ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b50610bf1565b60018360ff161115610bf057610bee8460096000600160ff1660ff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b505b5b83810190508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610c549190612553565b60405180910390a3610c64610a13565b81610c6d610cd4565b610c779190612c25565b1115610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf90612ca5565b60405180910390fd5b8060046000828254019250508190555060019150509392505050565b6000600454905090565b6000610ce982611c09565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d339190612c25565b9050919050565b60608060608060606000610d4c611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290612a35565b60405180910390fd5b600260ff1667ffffffffffffffff811115610df957610df8612cc5565b5b604051908082528060200260200182016040528015610e275781602001602082028036833780820191505090505b509550600260ff1667ffffffffffffffff811115610e4857610e47612cc5565b5b604051908082528060200260200182016040528015610e765781602001602082028036833780820191505090505b509450600260ff1667ffffffffffffffff811115610e9757610e96612cc5565b5b604051908082528060200260200182016040528015610ec55781602001602082028036833780820191505090505b509350600260ff1667ffffffffffffffff811115610ee657610ee5612cc5565b5b604051908082528060200260200182016040528015610f145781602001602082028036833780820191505090505b509250600260ff1667ffffffffffffffff811115610f3557610f34612cc5565b5b604051908082528060200260200182016040528015610f635781602001602082028036833780820191505090505b509150600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060005b600260ff168160ff1610156111f0578060ff16878260ff1681518110610fe157610fe0612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154868260ff168151811061105d5761105c612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154858260ff16815181106110d9576110d8612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154848260ff168151811061115557611154612cf4565b5b602002602001018181525050600960008260ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154838260ff16815181106111d1576111d0612cf4565b5b60200260200101818152505080806111e890612b90565b915050610fb8565b5091939550919395565b606060018054611209906129b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611235906129b8565b80156112825780601f1061125757610100808354040283529160200191611282565b820191906000526020600020905b81548152906001019060200180831161126557829003601f168201915b5050505050905090565b60006112a0611299611a38565b8484611e09565b6001905092915050565b60006001600860006112ba611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90612b04565b60405180910390fd5b60005b600260ff168160ff1610156114315742600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555082426113c19190612c25565b600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550808061142990612b90565b915050611348565b506001905092915050565b600060016008600061144c611a38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161480156114a957508383905086869050145b6114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90612b04565b60405180910390fd5b60008087879050905060005b818160ff16101561175c5760018560ff16036115be576115b887878360ff1681811061152357611522612cf4565b5b90506020020135600960008060ff1660ff16815260200190815260200160002060008c8c8660ff1681811061155b5761155a612cf4565b5b905060200201602081019061157091906124d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b5061167c565b60018560ff16111561167b5761167987878360ff168181106115e3576115e2612cf4565b5b9050602002013560096000600160ff1660ff16815260200190815260200160002060008c8c8660ff1681811061161c5761161b612cf4565b5b905060200201602081019061163191906124d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e7d90919063ffffffff16565b505b5b86868260ff1681811061169257611691612cf4565b5b905060200201358301925088888260ff168181106116b3576116b2612cf4565b5b90506020020160208101906116c891906124d2565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89898560ff1681811061172d5761172c612cf4565b5b905060200201356040516117419190612553565b60405180910390a3808061175490612b90565b9150506114f4565b50611765610a13565b8261176e610cd4565b6117789190612c25565b11156117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b090612ca5565b60405180910390fd5b8160046000828254019250508190555060019250505095945050505050565b6117e0611a38565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186690612a35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d590612d95565b60405180910390fd5b60018160ff1603611947576001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506119ad565b60028160ff16036119ac576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690612e27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590612eb9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bfc9190612553565b60405180910390a3505050565b6000806000905060005b600260ff168160ff161015611d0057600960008260ff1660ff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008360ff1660ff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611ce09190612a84565b82611ceb9190612c25565b91508080611cf890612b90565b915050611c13565b5080915050919050565b60008083600101548460000154611d219190612a84565b9050600083118015611d335750600081115b15611d7357808310611d5b578084600101600082825401925050819055508083039250611d72565b828460010160008282540192505081905550600092505b5b8291505092915050565b6000611d8984846119b1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e035781811015611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90612f25565b60405180910390fd5b611e028484848403611a40565b5b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e63868686611e9b565b604051611e709190612553565b60405180910390a3505050565b60008183600001600082825401925050819055506001905092915050565b60008082905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f46576000905082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3a9190612a84565b9250508190555061206c565b6000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611fd3575080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561206b57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816120239190612a84565b90506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b60005b6000821180156120855750600260ff168160ff16105b15612107576120f282600960008460ff1660ff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206121a390919063ffffffff16565b915080806120ff90612b90565b91505061206f565b506000811461214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214290612c05565b60405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550829150509392505050565b6000806121af84612226565b90506000831180156121c15750600081115b1561221c578083106121fb57808460010160008282546121e19190612c25565b9250508190555080836121f49190612a84565b925061221b565b8284600101600082825461220f9190612c25565b92505081905550600092505b5b8291505092915050565b6000806000905060004290506000846002015411801561224d575083600201548460030154115b8015612260575083600101548460000154115b801561226f5750836002015481115b15612302578360030154811061229a57836001015484600001546122939190612a84565b9150612301565b836002015484600301546122ae9190612a84565b8460020154826122be9190612a84565b85600001546122cd9190612f45565b6122d79190612fb6565b9150818460010154106122ed5760009150612300565b8360010154826122fd9190612a84565b91505b5b5b8192505050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561234657808201518184015260208101905061232b565b60008484015250505050565b6000601f19601f8301169050919050565b600061236e8261230c565b6123788185612317565b9350612388818560208601612328565b61239181612352565b840191505092915050565b600060208201905081810360008301526123b68184612363565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f3826123c8565b9050919050565b612403816123e8565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000819050919050565b61243981612426565b811461244457600080fd5b50565b60008135905061245681612430565b92915050565b60008060408385031215612473576124726123be565b5b600061248185828601612411565b925050602061249285828601612447565b9150509250929050565b60008115159050919050565b6124b18161249c565b82525050565b60006020820190506124cc60008301846124a8565b92915050565b6000602082840312156124e8576124e76123be565b5b60006124f684828501612411565b91505092915050565b61250881612426565b82525050565b600060808201905061252360008301876124ff565b61253060208301866124ff565b61253d60408301856124ff565b61254a60608301846124ff565b95945050505050565b600060208201905061256860008301846124ff565b92915050565b600080600060608486031215612587576125866123be565b5b600061259586828701612411565b93505060206125a686828701612411565b92505060406125b786828701612447565b9150509250925092565b600060ff82169050919050565b6125d7816125c1565b82525050565b60006020820190506125f260008301846125ce565b92915050565b612601816125c1565b811461260c57600080fd5b50565b60008135905061261e816125f8565b92915050565b60008060006060848603121561263d5761263c6123be565b5b600061264b86828701612411565b935050602061265c86828701612447565b925050604061266d8682870161260f565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6126ac81612426565b82525050565b60006126be83836126a3565b60208301905092915050565b6000602082019050919050565b60006126e282612677565b6126ec8185612682565b93506126f783612693565b8060005b8381101561272857815161270f88826126b2565b975061271a836126ca565b9250506001810190506126fb565b5085935050505092915050565b600060c082019050818103600083015261274f81896126d7565b9050818103602083015261276381886126d7565b9050818103604083015261277781876126d7565b9050818103606083015261278b81866126d7565b9050818103608083015261279f81856126d7565b90506127ae60a08301846125ce565b979650505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127de576127dd6127b9565b5b8235905067ffffffffffffffff8111156127fb576127fa6127be565b5b602083019150836020820283011115612817576128166127c3565b5b9250929050565b60008083601f840112612834576128336127b9565b5b8235905067ffffffffffffffff811115612851576128506127be565b5b60208301915083602082028301111561286d5761286c6127c3565b5b9250929050565b6000806000806000606086880312156128905761288f6123be565b5b600086013567ffffffffffffffff8111156128ae576128ad6123c3565b5b6128ba888289016127c8565b9550955050602086013567ffffffffffffffff8111156128dd576128dc6123c3565b5b6128e98882890161281e565b935093505060406128fc8882890161260f565b9150509295509295909350565b600080604083850312156129205761291f6123be565b5b600061292e85828601612411565b925050602061293f8582860161260f565b9150509250929050565b600080604083850312156129605761295f6123be565b5b600061296e85828601612411565b925050602061297f85828601612411565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129d057607f821691505b6020821081036129e3576129e2612989565b5b50919050565b7f4572726f723a2043616c6c6572206973206e6f7420746865206f776e65720000600082015250565b6000612a1f601e83612317565b9150612a2a826129e9565b602082019050919050565b60006020820190508181036000830152612a4e81612a12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a8f82612426565b9150612a9a83612426565b9250828203905081811115612ab257612ab1612a55565b5b92915050565b7f4572726f723a204f7065726174696f6e206661696c6564000000000000000000600082015250565b6000612aee601783612317565b9150612af982612ab8565b602082019050919050565b60006020820190508181036000830152612b1d81612ae1565b9050919050565b7f5472616e73616374696f6e207265636f76657279000000000000000000000000600082015250565b6000612b5a601483612317565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b6000612b9b826125c1565b915060ff8203612bae57612bad612a55565b5b600182019050919050565b7f4661696c65643a20496e76616c69642062616c616e6365000000000000000000600082015250565b6000612bef601783612317565b9150612bfa82612bb9565b602082019050919050565b60006020820190508181036000830152612c1e81612be2565b9050919050565b6000612c3082612426565b9150612c3b83612426565b9250828201905080821115612c5357612c52612a55565b5b92915050565b7f4572726f723a2063617061636974792065786365656400000000000000000000600082015250565b6000612c8f601683612317565b9150612c9a82612c59565b602082019050919050565b60006020820190508181036000830152612cbe81612c82565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4572726f723a204c69717569646974792063616e206e6f74206265207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000612d7f602883612317565b9150612d8a82612d23565b604082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e11602483612317565b9150612e1c82612db5565b604082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea3602283612317565b9150612eae82612e47565b604082019050919050565b60006020820190508181036000830152612ed281612e96565b9050919050565b7f42455032303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f0f601d83612317565b9150612f1a82612ed9565b602082019050919050565b60006020820190508181036000830152612f3e81612f02565b9050919050565b6000612f5082612426565b9150612f5b83612426565b9250828202612f6981612426565b91508282048414831517612f8057612f7f612a55565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fc182612426565b9150612fcc83612426565b925082612fdc57612fdb612f87565b5b82820490509291505056fea26469706673582212202c31986d26d49f96a5fe3641c199bbc764b38998ba28ff3e502112b0d69568c264736f6c63430008110033
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.
Add Token to MetaMask (Web3)